Centralize Recombination Models
This is a follow-up MR to !450 (merged) and implements the same strategy of a central model facility to lifetime/recombination calculations. Right now, available models are:
- Shockley-Read-Hall
- Auger
- Combination of the above
- None
The latter is the default set in the modules. It always returns true
when asked whether the carrier is alive or not. By using this, we can get rid of some additional checks such as has_doping_profile_
everywhere in the propagation modules.
I also documented the models with references in the user manual and added module tests to try and trick the simulation into a weird state. This also fixes the discussion point in #196 (closed)
Also here the question would be whether this should be more central, like in the manual within Extending the simulation chain? Then one could here refer to this part and stay with the fact that recombination is implemented and which parameter to use.
Only remaining discussion point I have: right now the class is called Recombination
but its operator()
that we use for querying returns true
for "alive" and false
for "recombined" which is documented that way but feels a bit odd. Opinions?