Source code for tidy3d.components.tcad.bandgap
import pydantic.v1 as pd
from tidy3d.components.base import Tidy3dBaseModel
from tidy3d.constants import PERCMCUBE, VOLT
# Band-gap narrowing models
[docs]
class SlotboomBandGapNarrowing(Tidy3dBaseModel):
"""
Parameters for the Slotboom model for band-gap narrowing.
Notes
------
The Slotboom band-gap narrowing :math:`\\Delta E_G` model is discussed in [1]_ as follows:
.. math::
\\Delta E_G = V_{1,bgn} \\left( \\ln \\left( \\frac{N_{tot}}{N_{2,bgn}} \\right)
+ \\sqrt{\\left( \\ln \\left( \\frac{N_{tot}}{N_{2,bgn}} \\right) \\right)^2 + C_{2,bgn}} \\right)
\\quad \\text{if} \\quad N_{tot} \\geq 10^{15} \\text{cm}^{-3},
\\Delta E_G = 0 \\quad \\text{if} \\quad N_{tot} < 10^{15} \\text{cm}^{-3}.
Note that :math:`N_{tot}` is the total doping as defined within a :class:`SemiconductorMedium`.
Example
-------
>>> import tidy3d as td
>>> default_Si = td.SlotboomBandGapNarrowing(
... v1=6.92 * 1e-3,
... n2=1.3e17,
... c2=0.5,
... min_N=1e15,
... )
.. [1] 'UNIFIED APPARENT BANDGAP NARROWING IN n- AND p-TYPE SILICON' Solid-State Electronics Vol. 35, No. 2, pp. 125-129, 1992"""
v1: pd.PositiveFloat = pd.Field(
...,
title=r"$V_{1,bgn}$ parameter",
description=r"$V_{1,bgn}$ parameter",
units=VOLT,
)
n2: pd.PositiveFloat = pd.Field(
...,
title=r"$N_{2,bgn}$ parameter",
description=r"$N_{2,bgn}$ parameter",
units=PERCMCUBE,
)
c2: float = pd.Field(
title=r"$C_{2,bgn}$ parameter",
description=r"$C_{2,bgn}$ parameter",
)
min_N: pd.NonNegativeFloat = pd.Field(
...,
title="Minimum total doping",
description="Bandgap narrowing is applied at location where total doping "
"is higher than 'min_N'.",
units=PERCMCUBE,
)