Skip to content

Centralize Recombination Models

Simon Spannagel requested to merge factorize_recombination into master

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?

Edited by Simon Spannagel

Merge request reports