Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion docs/api/charge/mediums.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,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
------------------------------------

Expand All @@ -65,4 +87,4 @@ Charge Carrier Properties
:template: module.rst

tidy3d.LinearChargePerturbation
tidy3d.CustomChargePerturbation
tidy3d.CustomChargePerturbation
1 change: 1 addition & 0 deletions docs/api/spice.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ Analysis
:template: module.rst

tidy3d.IsothermalSteadyChargeDCAnalysis
tidy3d.SteadyChargeDCAnalysis
tidy3d.ChargeToleranceSpec
2 changes: 1 addition & 1 deletion tidy3d/components/spice/analysis/dc.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.",
Expand Down
4 changes: 2 additions & 2 deletions tidy3d/components/tcad/bandgap_energy.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
-------
Expand Down
28 changes: 17 additions & 11 deletions tidy3d/components/tcad/effective_DOS.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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):
Expand All @@ -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(
Expand All @@ -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(
Expand Down Expand Up @@ -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(
Expand Down
Loading