tidy3d.SemiconductorMedium#

class SemiconductorMedium[source]#

Bases: AbstractChargeMedium

This class is used to define semiconductors.

Parameters:

Notes

Semiconductors are associated with Charge simulations. During these simulations the Drift-Diffusion (DD) equations will be solved in semiconductors. In what follows, a description of the assumptions taken and its limitations is put forward.

The iso-thermal DD equations are summarized here

\[\begin{equation} - \nabla \cdot \left( \varepsilon_0 \varepsilon_r \nabla \psi \right) = q \left( p - n + N_d^+ - N_a^- \right) \end{equation}\]
\[\begin{equation} q \frac{\partial n}{\partial t} = \nabla \cdot \mathbf{J_n} - qR \end{equation}\]
\[\begin{equation} q \frac{\partial p}{\partial t} = -\nabla \cdot \mathbf{J_p} - qR \end{equation}\]

As well as iso-thermal, the system is considered to be at \(T=300\). This restriction will be removed in future releases.

The above system requires the definition of the flux functions (free carrier current density), \(\mathbf{J_n}\) and \(\mathbf{J_p}\). We consider the usual form

\[\begin{equation} \mathbf{J_n} = q \mu_n \mathbf{F_{n}} + q D_n \nabla n \end{equation}\]
\[\begin{equation} \mathbf{J_p} = q \mu_p \mathbf{F_{p}} - q D_p \nabla p \end{equation}\]

where we simplify the effective field defined in [1] to

\[\begin{equation} \mathbf{F_{n,p}} = \nabla \psi \end{equation}\]

i.e., we are not considering the effect of band-gap narrowing and degeneracy on the effective electric field \(\mathbf{F_{n,p}}\). This is a good approximation for non-degenerate semiconductors.

Let’s explore how material properties are defined as class parameters or other classes.

Symbol

Parameter Name

Description

\(N_a\)

N_a

Ionized acceptors density

\(N_d\)

N_d

Ionized donors density

\(N_c\)

N_c

Effective density of states in the conduction band.

\(N_v\)

N_v

Effective density of states in valence band.

\(R\)

R

Generation-Recombination term.

\(E_g\)

E_g

Bandgap Energy.

\(\Delta E_g\)

delta_E_g

Bandgap Narrowing.

\(\sigma\)

conductivity

Electrical conductivity.

\(\varepsilon_r\)

permittivity

Relative permittivity.

\(q\)

tidy3d.constants.Q_e

Fundamental electron charge.

Example

>>> import tidy3d as td
>>> default_Si = td.SemiconductorMedium(
...     N_c=td.ConstantEffectiveDOS(N=2.86e19),
...     N_v=td.ConstantEffectiveDOS(N=3.1e19),
...     E_g=td.ConstantEnergyBandGap(eg=1.11),
...     mobility_n=td.CaugheyThomasMobility(
...         mu_min=52.2,
...         mu=1471.0,
...         ref_N=9.68e16,
...         exp_N=0.68,
...         exp_1=-0.57,
...         exp_2=-2.33,
...         exp_3=2.4,
...         exp_4=-0.146,
...     ),
...     mobility_p=td.CaugheyThomasMobility(
...         mu_min=44.9,
...         mu=470.5,
...         ref_N=2.23e17,
...         exp_N=0.719,
...         exp_1=-0.57,
...         exp_2=-2.33,
...         exp_3=2.4,
...         exp_4=-0.146,
...     ),
...     R=([
...         td.ShockleyReedHallRecombination(
...             tau_n=3.3e-6,
...             tau_p=4e-6
...         ),
...         td.RadiativeRecombination(
...             r_const=1.6e-14
...         ),
...         td.AugerRecombination(
...             c_n=2.8e-31,
...             c_p=9.9e-32
...         ),
...     ]),
...     delta_E_g=td.SlotboomBandGapNarrowing(
...         v1=6.92 * 1e-3,
...         n2=1.3e17,
...         c2=0.5,
...         min_N=1e15,
...     ),
...     N_a=[td.ConstantDoping(concentration=1e15)],
...     N_d=[td.ConstantDoping(concentration=1e15)]
... )

Warning

Current limitations of the formulation include:

  • Boltzmann statistics are supported

  • Iso-thermal equations with \(T=300K\)

  • Steady state only

  • Dopants are considered to be fully ionized

Note

  • Both \(N_a\) and \(N_d\) can be either a positive number or an xarray.DataArray.

  • Default values for parameters and models are those appropriate for Silicon.

  • The current implementation is a good approximation for non-degenerate semiconductors.

Attributes

Methods

check_eg_uses_model(val, values)

Issue deprecation warning if float is provided

check_na_uses_model(val, values)

Issue deprecation warning if float is provided

check_nc_uses_model(val, values)

Issue deprecation warning if float is provided

check_nd_uses_model(val, values)

Issue deprecation warning if float is provided

check_nv_uses_model(val, values)

Issue deprecation warning if float is provided

Inherited Common Usage

N_c#
N_v#
E_g#
mobility_n#
mobility_p#
R#
delta_E_g#
N_a#
N_d#
classmethod check_nc_uses_model(val, values)[source]#

Issue deprecation warning if float is provided

classmethod check_nv_uses_model(val, values)[source]#

Issue deprecation warning if float is provided

classmethod check_eg_uses_model(val, values)[source]#

Issue deprecation warning if float is provided

classmethod check_nd_uses_model(val, values)[source]#

Issue deprecation warning if float is provided

classmethod check_na_uses_model(val, values)[source]#

Issue deprecation warning if float is provided

__hash__()#

Hash method.