Commit f2d12a42 authored by Paul Schütze's avatar Paul Schütze
Browse files

Merge branch 'srh_temperature' into 'master'

Recombination: add Temperature Scaling of SRH Lifetime

See merge request allpix-squared/allpix-squared!681
parents 072f1973 65609806
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -289,7 +289,7 @@ The lifetime is calculated using the Shockley-Read-Hall relation as given by~\ci
    \tau(N) = \frac{\tau_0}{1 + \frac{N}{N_{d0}}}
\end{equation}
where $\tau_0$ and $N_{d0}$ are reference lifetime and doping concentration, for electrons and holes respectively.
The parameter values implemented in \apsq are taken from~\cite{fossum} as:
The parameter values implemented in \apsq are taken from~\cite{fossum-lee} and the Synopsys Sentaurus TCAD software manual as:
\begin{equation*}
    \begin{split}
        \tau_{0,e} &= \SI{1e-5}{s} \\
@@ -297,11 +297,17 @@ The parameter values implemented in \apsq are taken from~\cite{fossum} as:
    \end{split}
    \qquad
    \begin{split}
        \tau_{0,e} &= \SI{4.0e-4}{s} \\
        N_{d0,e}   &= \SI{7.1e15}{\per \cubic \cm} \\
        \tau_{0,h} &= \SI{4.0e-4}{s} \\
        N_{d0,h}   &= \SI{7.1e15}{\per \cubic \cm} \\
    \end{split}
\end{equation*}

The temperature dependence of the Shockley-Read-Hall lifetime is scaled following the low-temperature approximation model presented in~\cite{schenk} as:

\begin{equation}
    \tau(N, T) = \tau(N) \left( \frac{\SI{300}{K}}{T} \right)^{3/2}
\end{equation}

This model can be selected in the configuration file via the parameter \parameter{recombination_model = "srh"}.

\subsection{Auger Recombination}
+24 −0
Original line number Diff line number Diff line
@@ -526,6 +526,30 @@ month={Aug},
  author = "Jerry G. Fossum",
}

@article{FOSSUM1983569,
	title = {Carrier recombination and lifetime in highly doped silicon},
	journal = {Solid-State Electronics},
	volume = {26},
	number = {6},
	pages = {569-576},
	year = {1983},
	issn = {0038-1101},
	doi = {https://doi.org/10.1016/0038-1101(83)90173-9},
	author = {J.G. Fossum and R.P. Mertens and D.S. Lee and J.F. Nijs},
}
@article{schenk,
  title = {A model for the field and temperature dependence of Shockley-Read-Hall lifetimes in silicon},
  journal = {Solid-State Electronics},
  volume = {35},
  number = {11},
  pages = {1585-1596},
  year = {1992},
  issn = {0038-1101},
  doi = {https://doi.org/10.1016/0038-1101(92)90184-E},
  url = {https://www.sciencedirect.com/science/article/pii/003811019290184E},
  author = {A. Schenk},
}

@article{haug,
  title = "Auger coefficients for highly doped and highly excited semiconductors",
  journal = "Solid State Communications",
+1 −5
Original line number Diff line number Diff line
@@ -562,11 +562,7 @@ void GenericPropagationModule::initialize() {
    mobility_ = Mobility(config_, detector->hasDopingProfile());

    // Prepare recombination model
    try {
        recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector->hasDopingProfile());
    } catch(ModelError& e) {
        throw InvalidValueError(config_, "recombination_model", e.what());
    }
    recombination_ = Recombination(config_, detector->hasDopingProfile());
}

void GenericPropagationModule::run(Event* event) {
+1 −1
Original line number Diff line number Diff line
@@ -31,4 +31,4 @@ propagate_electrons = false
propagate_holes = true
recombination_model = "srh_auger"

#PASS Recombined 6 charges during transport
#PASS Recombined 4 charges during transport
+1 −5
Original line number Diff line number Diff line
@@ -84,11 +84,7 @@ void ProjectionPropagationModule::initialize() {
    }

    // Prepare recombination model
    try {
        recombination_ = Recombination(config_.get<std::string>("recombination_model"), detector_->hasDopingProfile());
    } catch(ModelError& e) {
        throw InvalidValueError(config_, "recombination_model", e.what());
    }
    recombination_ = Recombination(config_, detector_->hasDopingProfile());

    if(detector_->hasMagneticField() && !config_.get<bool>("ignore_magnetic_field")) {
        throw ModuleError("This module should not be used with magnetic fields. Add the option 'ignore_magnetic_field' to "
Loading