Skip to content

Latest commit

 

History

History
404 lines (209 loc) · 10.8 KB

File metadata and controls

404 lines (209 loc) · 10.8 KB

Scharfetter-Gummel

Bernoulli Function

This derivation is partly based on :cite:`PintoDissertation`.

Starting with

J = \alpha n + \beta \nabla{n}

where \beta is a function of x

\int_{x_0}^{x_1}{\frac{\partial x}{\beta}} = \int_{n_0}^{n_1}{\frac{\partial n}{J - \alpha n}}

For the left side, we assume a linear function:

\int_{x_0}^{x_1}{\frac{\partial x}{\beta_0 + \frac{\beta_1}{\beta_0} \frac{\left(x - x_0 \right)}{\left(x_1 - x_0 \right)} }}

where

\beta_0 = \beta \left( x_0 \right)

using :eq:`hf1`

\int_{x_0}^{x_1}{\frac{\partial x}{\beta}} &= \frac{x_1 - x_0}{\beta_1 - \beta_0} \log \frac{\beta_1}{\beta_0}
\overline{\beta} &= \frac{\beta_1 - \beta_0}{\log \frac{\beta_1}{\beta_0}}
L &= {x_1 - x_0}
\frac{L}{\overline{\beta}} &= \int_{n_0}^{n_1}{\frac{\partial n}{J - \alpha n}}

using :eq:`hf1`

\frac{L}{\overline{\beta}} &= \frac{-1}{\alpha}\log \frac{J - \alpha n_1}{J - \alpha n_0}

Then solving for J

\frac{-\alpha L}{\overline{\beta}} &= \log \frac{J - \alpha n_1}{J - \alpha n_0}
\exp \left(\frac{-\alpha L}{\overline{\beta}}\right) &= \frac{J - \alpha n_1}{J - \alpha n_0}
\exp \left(\frac{-\alpha L}{\overline{\beta}}\right) \left({J - \alpha n_0} \right) &= {J - \alpha n_1}
J \left( \exp \left(\frac{-\alpha L}{\overline{\beta}}\right) - 1 \right) &= \exp \left(-\frac{\alpha L}{\overline{\beta}}\right) {\alpha n_0} - \alpha n_1

We look for a form compatible with the Bernoulli function:

B\left( x \right) &= \frac{x}{\exp \left(x\right) - 1}
J  &= \frac{\overline{\beta}}{L}\frac{\exp \left(\frac{-\alpha L}{\overline{\beta}}\right) {\frac{\alpha L}{\overline{\beta}} n_0} - {\frac{\alpha L}{\overline{\beta}} n_1}}{\left( \exp \left(\frac{-\alpha L}{\overline{\beta}}\right) - 1 \right)}
J  &= \frac{\overline{\beta}}{L} \left(
      \frac{\exp \left(\frac{-\alpha L}{\overline{\beta}}\right) {\frac{\alpha L}{\overline{\beta}} n_0}}{\left( \exp \left(\frac{-\alpha L}{\overline{\beta}}\right) - 1 \right)}
      -\frac{{\frac{\alpha L}{\overline{\beta}} n_1}}{\left( \exp \left(\frac{-\alpha L}{\overline{\beta}}\right) - 1 \right)}
      \right)
J  &= \frac{\overline{\beta}}{L} \left(
       \frac{{\frac{\alpha L}{\overline{\beta}} n_0}}{\left( 1 - \exp \left(\frac{\alpha L}{\overline{\beta}}\right) \right)}
      -\frac{{\frac{\alpha L}{\overline{\beta}} n_1}}{\left( \exp \left(\frac{-\alpha L}{\overline{\beta}}\right) - 1 \right)}
      \right)
J  &= \frac{\overline{\beta}}{L} \left(
       \frac{{\frac{-\alpha L}{\overline{\beta}} n_1}}{\left( \exp \left(\frac{-\alpha L}{\overline{\beta}}\right) - 1 \right)}
      -\frac{{\frac{\alpha L}{\overline{\beta}} n_0}}{\left( \exp \left(\frac{\alpha L}{\overline{\beta}}\right) - 1 \right)}
      \right)

Associated this to the case of electrons

J_n  &= \frac{\overline{\beta}}{L} \left( B \left({\frac{-\alpha_n L}{\overline{\beta}} }\right) n_1  - B \left({\frac{\alpha_n L}{\overline{\beta}} }\right) n_0 \right)

For the case of holes

J_p &= \alpha_p p - \beta \nabla{p}

and using the same definition for \overline{\beta} in :eq:`hf2`.

J_p  &= \frac{-\overline{\beta}}{L} \left( B \left({\frac{-\alpha_p L}{-\overline{\beta}} }\right) p_1  - B \left({\frac{\alpha_p L}{-\overline{\beta}} }\right) p_0 \right)
J_p  &= \frac{-\overline{\beta}}{L} \left( B \left({\frac{\alpha_p L}{\overline{\beta}} }\right) p_1  - B \left({\frac{-\alpha_p L}{\overline{\beta}} }\right) p_0 \right)

Testing Limits

Using L'Hopital's Rule.

B\left(x\right) \Bigr|_{x \to 0} = \frac{1}{\exp\left(0\right)} = 1

and as expected for diffusion

J_n \Bigr|_{\alpha \to 0}  &= \frac{\overline{\beta}}{L} \left(  n_1  -  n_0 \right)
J_p \Bigr|_{\alpha \to 0}  &= -\frac{\overline{\beta}}{L} \left(  p_1  -  p_0 \right)

For drift:

B\left(\frac{\alpha L}{\overline{\beta}}\right) \Bigr|_{\alpha \to \infty} &= 0
B\left(\frac{-\alpha L}{\overline{\beta}}\right) \Bigr|_{\alpha \to \infty} &= \frac{\alpha L}{\overline{\beta}}
B\left(\frac{\alpha L}{\overline{\beta}}\right) \Bigr|_{\alpha \to -\infty} &= \frac{-\alpha L}{\overline{\beta}}
B\left(\frac{-\alpha L}{\overline{\beta}}\right) \Bigr|_{\alpha \to -\infty} &= 0
J_n \Bigr|_{\alpha \to \infty}  &= \alpha n_1
J_n \Bigr|_{\alpha \to -\infty}  &= \alpha n_0

or

J_p \Bigr|_{\alpha \to \infty}  &= \alpha p_0
J_p \Bigr|_{\alpha \to -\infty}  &= \alpha p_1

Evaluate Bernoulli

New Method

The C++ standard library provides the expm1 function

\text{expm1}(x) = \exp(x) - 1

which is more accurate than subtracting 1 from exp(x).

A sample implementation is:

def B(x):
  y = expm1(x)
  if x != y:
    b = 1.0/y
  else:
    b = 1.0 / (1. + 0.5*x)
  return b

Note that the check for x != y prevents a bad result when x == 0.

Old Method

This requires an expansion near 0 and use of :eq:`hf4`.

\begin{cases}
  x < 0 & B\left(-x\right)    = B\left(x\right) + x\\
  x < \text{lim1} & B\left(x\right) = \left({\sum_{n=1}^{N} \frac{1}{\left(n+1\right)!}x^{n})}\right)^{-1}\\
  x < \text{lim2} & B\left(x\right) = \frac{x}{\exp\left(x\right) - 1}\\
  \text{else} & B\left(x\right)      = x \exp\left(-x\right)
\end{cases}

where lim1, lim2, and N are set appropriate for continuity and accuracy.

Helpful function

To perform the integrals in the derivations of :eq:`hfjn`

\int_{x_0}^{x_1} \frac{\partial x}{a + b x}
y = a + b x
\partial y = b \partial x
\frac{1}{b} \int_{y_0}^{y_1} \frac{\partial y}{y}
\frac{1}{b} \log y \Bigr|_{y_0}^{y_1}
\frac{1}{b} \log \frac{y_1}{y_0}
\int_{x_0}^{x_1} \frac{\partial x}{a + b x} &= \frac{1}{b} \log \frac{a + b x_1}{a + b x_0}

To reduce the number of computations for :eq:`hfjn` and :eq:`hfjp`:

B\left(x\right) &= \frac{x}{\exp\left(x\right) - 1}
B\left(x\right) \exp\left(x\right) - B\left(x\right)&= x
B\left(x\right) &= B\left(x\right) \exp\left(x\right) - x
B\left(x\right) &= \frac{x}{\exp\left(x\right) - 1} \exp\left(x\right) - x
B\left(x\right) &=  \frac{x \exp\left(x\right)}{\exp\left(x\right) - 1} - x
B\left(x\right) &=  \frac{x}{1 - \exp\left(-x\right)} - x
B\left(x\right) &=  \frac{-x}{\exp\left(-x\right) - 1} - x
B\left(x\right) &= B\left(-x\right) - x
B\left(-x\right) &= B\left(x\right) + x

Driving Force

For Electrons:

J_n &= J_{drift} + J_{diffusion}
J_{diffusion} &= q \nabla \left(D_n n\right)

At equilibrium:

J_n = 0 &= J_{drift} + q D_n \nabla n + q n \nabla D_n
J_{drift} &= - q D_n \nabla n - q n \nabla  D_n

Assuming no temperature gradient:

J_{drift} &= - q D_n \nabla n
n &= N_c \gamma_n \exp \left(\frac{E_F - E_c}{k T}\right)
\nabla n &= n \left( \frac{\nabla N_c}{N_c} + \frac{\nabla \gamma_n}{\gamma_n}  - \nabla\left(\frac{E_c}{k T}\right)\right)
\nabla n &= n \left( {\nabla \log\left(N_c\right)} + {\nabla \log\left(\gamma_n\right)}  - \nabla\left(\frac{E_c}{k T}\right)\right)
J_{drift} &= - q D_n  n \left( {\nabla \log\left(N_c\right)} + {\nabla \log\left(\gamma_n\right)}  - \nabla\left(\frac{E_c}{k T}\right)\right)
J_{drift} &= q D_n  n \left( \nabla\left(\frac{E_c}{k T}\right) - {\nabla \log\left(N_c \gamma_n \right)}\right)

Then in general:

J_n &= q D_n  n \left( \nabla\left(\frac{E_c}{k T}\right) - {\nabla \log\left(N_c \gamma_n \right)}\right) + q D_n \nabla n + q n \nabla D_n
J_n &= q D_n  n \left( \nabla\left(\frac{E_c}{k T}\right) - {\nabla \log\left(N_c \gamma_n \right)} + \frac{\nabla D_n}{D_n}\right) + q D_n \nabla n
D_n &= \frac{k T \mu_n}{q}
J_n &= {k T \mu_n}  n \left( \nabla\left(\frac{E_c}{k T}\right) - {\nabla \log\left(N_c \gamma_n \right)} + \frac{\nabla T}{T}\right) + {k T \mu_n} \nabla n
\frac{J_n}{k \mu_n} &= {T} \left( \nabla\left(\frac{E_c}{k T}\right) - {\nabla \log\left(N_c \gamma_n \right)} + \frac{\nabla T}{T}\right) n + {T} \nabla n

Using:

\alpha_n &= {T} \left( \nabla\left(\frac{E_c}{k T}\right) - {\nabla \log\left(N_c \gamma_n \right)} + \frac{\nabla T}{T}\right)

and assuming that the derivatives from x_0 to x_1 are constant:

\alpha_n &= \frac{\alpha_{n_1} - \alpha_{n_0}}{L}

where

\alpha_{n_i} &= {\overline{T}} \left( \frac{E_{c_{i}}}{k T_i} - {\log\left(N_{c_{i}} \gamma_{n_{i}} \right)} + \frac{T_i}{\overline{T}}\right)
\overline{T} &= \frac{T_1 + T_0}{2}
\beta &= T

using :eq:`hf2`

\overline{\beta} &= \frac{T_1 - T_0}{\log \frac{T_1}{T_0}}

can be shown to be

\overline{\beta} &= \frac{T_0}{B\left(\log\frac{T_1}{T_0}\right)}

For Holes:

J_{drift} &= q D_p \nabla p
p &= N_v \gamma_p \exp \left(\frac{E_v - E_F}{k T}\right)
\nabla p &= p \left( \frac{\nabla N_v}{N_v} + \frac{\nabla \gamma_p}{\gamma_p}  + \nabla\left(\frac{E_v}{k T}\right)\right)
\nabla p &= p \left( {\nabla \log\left(N_v\right)} + {\nabla \log\left(\gamma_p\right)}  + \nabla\left(\frac{E_v}{k T}\right)\right)
J_{drift} &= q D_p  p \left( {\nabla \log\left(N_v\right)} + {\nabla \log\left(\gamma_p\right)}  + \nabla\left(\frac{E_v}{k T}\right)\right)
J_{drift} &= q D_p  p \left( \nabla\left(\frac{E_v}{k T}\right) + {\nabla \log\left(N_v \gamma_p \right)}\right)

Then in general:

J_p &= q D_p  p \left( \nabla\left(\frac{E_v}{k T}\right) + {\nabla \log\left(N_v \gamma_p \right)}\right) - q D_p \nabla p - q p \nabla D_p
J_p &= q D_p  p \left( \nabla\left(\frac{E_v}{k T}\right) + {\nabla \log\left(N_v \gamma_p \right)} - \frac{\nabla D_p}{D_p}\right) - q D_p \nabla p
D_p &= \frac{k T \mu_p}{q}
J_p &= {k T \mu_p}  p \left( \nabla\left(\frac{E_v}{k T}\right) + {\nabla \log\left(N_v \gamma_p \right)} - \frac{\nabla T}{T}\right) - {k T \mu_p} \nabla p
\frac{J_p}{k \mu_p} &= {T} \left( \nabla\left(\frac{E_v}{k T}\right) + {\nabla \log\left(N_v \gamma_p \right)} - \frac{\nabla T}{T}\right) p - {T} \nabla p

Then :eq:`hfbeta` is used to calculate \overline{\beta} and :eq:`hftave` is used to calculate \overline{T}.

\alpha_{p_i} &= {\overline{T}} \left( \frac{E_{v_{i}}}{k T_i} + {\log\left(N_{v_{i}} \gamma_{p_{i}} \right)} - \frac{T_i}{\overline{T}}\right)

Temperature:

For the case of carrier temperatures, then T_n and T_p are substituted into \overline{\beta} and T as appropriate.