diff --git a/docs/api/charge/mediums.rst b/docs/api/charge/mediums.rst index 4f58081733..93169b306a 100644 --- a/docs/api/charge/mediums.rst +++ b/docs/api/charge/mediums.rst @@ -59,6 +59,28 @@ Bandgap tidy3d.SlotboomBandGapNarrowing +Effective Density Of States (DOS) +^^^^^^^^ + +.. autosummary:: + :toctree: ../_autosummary/ + :template: module.rst + + tidy3d.ConstantEffectiveDOS + tidy3d.IsotropicEffectiveDOS + tidy3d.MultiValleyEffectiveDOS + tidy3d.DualValleyEffectiveDOS + +Energy Bandgap +^^^^^^^^ + +.. autosummary:: + :toctree: ../_autosummary/ + :template: module.rst + + tidy3d.ConstantEnergyBandGap + tidy3d.VarshniEnergyBandGap + Charge Carrier Properties ------------------------------------ @@ -67,4 +89,4 @@ Charge Carrier Properties :template: module.rst tidy3d.LinearChargePerturbation - tidy3d.CustomChargePerturbation \ No newline at end of file + tidy3d.CustomChargePerturbation diff --git a/docs/api/spice.rst b/docs/api/spice.rst index fc7e20f24e..cc97ffdf24 100644 --- a/docs/api/spice.rst +++ b/docs/api/spice.rst @@ -27,4 +27,5 @@ Analysis tidy3d.AbstractSSACAnalysis tidy3d.SSACAnalysis tidy3d.IsothermalSSACAnalysis + tidy3d.SteadyChargeDCAnalysis tidy3d.ChargeToleranceSpec diff --git a/tidy3d/components/spice/analysis/dc.py b/tidy3d/components/spice/analysis/dc.py index 1818c43ab2..ec3afc44c9 100644 --- a/tidy3d/components/spice/analysis/dc.py +++ b/tidy3d/components/spice/analysis/dc.py @@ -72,7 +72,7 @@ class SteadyChargeDCAnalysis(Tidy3dBaseModel): fermi_dirac: bool = pd.Field( False, title="Fermi-Dirac statistics", - description="Determines whether Fermi-Dirac statistics are used. When False, " + description="Determines whether Fermi-Dirac statistics are used. When ``False``, " "Boltzmann statistics will be used. This can provide more accurate results in situations " "where very high doping may lead the pseudo-Fermi energy level to approach " "either the conduction or valence energy bands.", diff --git a/tidy3d/components/tcad/bandgap_energy.py b/tidy3d/components/tcad/bandgap_energy.py index 23bcbd6612..450966dc08 100644 --- a/tidy3d/components/tcad/bandgap_energy.py +++ b/tidy3d/components/tcad/bandgap_energy.py @@ -25,9 +25,9 @@ class VarshniEnergyBandGap(Tidy3dBaseModel): ----- The model implements the following formula: - .. math:: + .. math:: - E_g(T) = E_g(0) - \\frac{\\alpha T^2}{T + \\beta}$ + E_g(T) = E_g(0) - \\frac{\\alpha T^2}{T + \\beta} Example ------- diff --git a/tidy3d/components/tcad/effective_DOS.py b/tidy3d/components/tcad/effective_DOS.py index 15c8356a4a..a60396a7df 100644 --- a/tidy3d/components/tcad/effective_DOS.py +++ b/tidy3d/components/tcad/effective_DOS.py @@ -6,7 +6,7 @@ import pydantic.v1 as pd from tidy3d.components.base import Tidy3dBaseModel -from tidy3d.constants import HBAR, K_B, M_E_EV +from tidy3d.constants import HBAR, K_B, M_E_EV, PERCMCUBE from tidy3d.exceptions import DataError um_3_to_cm_3 = 1e12 # conversion factor from micron^(-3) to cm^(-3) @@ -33,7 +33,7 @@ class ConstantEffectiveDOS(EffectiveDOS): """Constant effective density of states model.""" N: pd.PositiveFloat = pd.Field( - ..., title="Effective DOS", description="Effective density of states", units="cm^(-3)" + ..., title="Effective DOS", description="Effective density of states", units=PERCMCUBE ) def calc_eff_dos(self, T: float): @@ -44,11 +44,13 @@ class IsotropicEffectiveDOS(EffectiveDOS): """Effective density of states model that assumes single valley and isotropic effective mass. The model assumes the standard equation for the 3D semiconductor with parabolic energy dispersion: + Notes + ----- + .. math:: - \\begin{equation} - \\mathbf{N_eff} = 2 * (\\frac{m_eff * m_e * k_B T}{2 \\pi \\hbar^2})^(3/2) - \\end{equation} + \\mathbf{N_eff} = 2 * (\\frac{m_eff * m_e * k_B T}{2 \\pi \\hbar^2})^(3/2) + """ m_eff: pd.PositiveFloat = pd.Field( @@ -65,11 +67,13 @@ class MultiValleyEffectiveDOS(EffectiveDOS): """Effective density of states model that assumes multiple equivalent valleys and anisotropic effective mass. The model assumes the standard equation for the 3D semiconductor with parabolic energy dispersion: + Notes + ----- + .. math:: - \\begin{equation} - \\mathbf{N_eff} = 2 * N_valley * (m_{eff_long} * m_{eff_trans} * m_{eff_trans})^(1/2) *(\\frac{m_e * k_B * T}{2 \\pi * \\hbar^2})^(3/2) - \\end{equation} + N_{\\text{eff}} = 2 N_{\\text{valley}} \\left( m_{\\text{eff,long}} m_{\\text{eff,trans}}^2 \\right)^{1/2} \\left( \\frac{m_e k_B T}{2 \\pi \\hbar^2} \\right)^{3/2} + """ m_eff_long: pd.PositiveFloat = pd.Field( @@ -101,11 +105,13 @@ class DualValleyEffectiveDOS(EffectiveDOS): """Effective density of states model that assumes combination of light holes and heavy holes with isotropic effective masses. The model assumes the standard equation for the 3D semiconductor with parabolic energy dispersion: + Notes + ----- + .. math:: - \\begin{equation} - \\mathbf{N_eff} = 2 * ( {\\frac{m_{eff_lh} * m_e * k_B * T}{2 \\pi \\hbar^2})^(3/2) + (\\frac{m_{eff_hh} * m_e * k_B * T}{2 \\pi \\hbar^2})^(3/2) ) - \\end{equation} + N_{eff} = 2 \\left( \\frac{m_{\\text{eff, lh}} m_e k_B T}{2 \\pi \\hbar^2} \\right)^{3/2} + 2 \\left( \\frac{m_{\\text{eff, hh}} m_e k_B T}{2 \\pi \\hbar^2} \\right)^{3/2} + """ m_eff_lh: pd.PositiveFloat = pd.Field(