2.1.2 The Drift-Diffusion Equations

The current continuity equations relate the electron (hole) current density \(J_{n(p)}(x)\) to the generation (\(G(x)\)) and recombination (\(R(x)\)) rates. In steady-state (\(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} SimSS}}\)), one has

\begin{equation} \label{eq_cont} \frac{\partial J_n(x)}{\partial x} = -\frac{\partial J_p(x)}{\partial x} = -q(G(x)-R(x)), \end{equation}
3

whereas \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} ZimT}}\) solves the transient equations

\begin{equation} \label{eq_contn_transient} \frac{\partial n(x)}{\partial t} - \frac{1}{q}\frac{\partial J_n(x)}{\partial x} = G(x)-R(x), \end{equation}
4

and

\begin{equation} \label{eq_contp_transient} \frac{\partial p(x)}{\partial t} + \frac{1}{q}\frac{\partial J_p(x)}{\partial x} = G(x)-R(x). \end{equation}
5

The flow of current is driven by gradients in the carrier densities and the potential as described by the drift-diffusion equations. Provided there are no heterojunctions—so the conduction and valence band edges and the effective densities of states remain constant—then one has for electrons

\begin{equation} \label{Eq_dd_elec} J_n(x) = -q n(x) \mu _n(x) \frac{\partial V(x)}{\partial x} + kT \mu _n(x) \frac{\partial n(x)}{\partial x}, \end{equation}
6

and for holes, one has

\begin{equation} \label{Eq_dd_holes} J_p(x) = -q p(x) \mu _p(x) \frac{\partial V(x)}{\partial x} - kT \mu _p(x) \frac{\partial p(x)}{\partial x}. \end{equation}
7

In the case of a heterojunction, the accompanying changes in the band edges and the effective densities of states modify the drift-diffusion equations. This can be accounted for by replacing the potential \(V(x)\) in Eqs (??) and (??) with generalised potentials \(V_{gn}(x)\) and \(V_{gp}(x)\) for electrons and holes, respectively. This is detailed in section 2.3.

The total current density is then given by

\begin{equation} \label{eq_total_J} J(x)=J_n(x) + J_p(x) + J_D(x) + J_{\rm nion}(x) + J_{\rm pion}(x), \end{equation}
8

where \(J_D(x)\) is the displacement current, and \(J_{\rm n(p)ion}(x)\) are the negative (positive) ion currents. In steady-state, the last three terms in Eq. (??) are zero. 1 The movement of ions is treated in section 2.7.

Both \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} SimSS}}\) and \(\mathtt{\require{color}{\color[rgb]{0.000000000000000,0.500000000000000,0.500000000000000} ZimT}}\) iteratively solve a set of discretised equations: the Poisson equation and the continuity equations are discretised and solved iteratively. These discretised equations can be found in Ref.  [ 1 ] : In the transient case, these take the form of Eqs (6.1-72, 73, and 74), where the transient equations correspond to Eqs (6.4-32) and (6.4.33) 2 in Ref.  [ 1 ] ). In order to improve the convergence behaviour, these equations are linearised, see Ref.  [ 3 ] for further details.

The discretization of the drift-diffusion equations requires the use of the Bernoulli function, [ 1 ]

\begin{equation} \label{Eq_B_full} B(x) = \frac{x}{e^x -1}. \end{equation}
9

This function is used in every grid point and in every loop, so a fast implementation of this function is of the essence. Moreover, simply using the function as defined in Eq. (??) creates a problem if \(x=0\). To avoid these issues, we use Taylor expansions around \(x=0\) and only use the full expression for very large absolute \(x\)—which is quite rare. Figure 2.2 shows the exact and approximated Bernoulli function and the error of this approximation. As can be seen, the absolute error is smaller than \(3.5 \times 10^{-4}\), which translates into a relative error of less than \(8\times 10^{-4}\).

\includegraphics[width=15cm]{figs/Bernoulli.svg}
Figure 2.2 The (a) approximated and exact Bernoulli functions, and (b) the error.
  1. We assume that ions cannot enter or leave the device.
  2. This equation in Ref.  [ 1 ] contains a typo: in the right-hand-side of the equation, \(n_{i,j,m}\) should be \(p_{i,j,m}\).