From 109dae2880fff7eb244f20948916aa33fa79a4ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damiano=20Franz=C3=B2?= Date: Wed, 24 Sep 2025 11:05:43 +0200 Subject: [PATCH 1/2] Fix(docs): Add missing classes in docs and fix formatting errors --- docs/api/charge/mediums.rst | 24 ++++++++++++++++++- docs/api/spice.rst | 1 + tidy3d/components/spice/analysis/dc.py | 2 +- tidy3d/components/tcad/bandgap_energy.py | 4 ++-- tidy3d/components/tcad/effective_DOS.py | 30 ++++++++++++++---------- 5 files changed, 45 insertions(+), 16 deletions(-) diff --git a/docs/api/charge/mediums.rst b/docs/api/charge/mediums.rst index 542bc38a63..584c58d7e7 100644 --- a/docs/api/charge/mediums.rst +++ b/docs/api/charge/mediums.rst @@ -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 ------------------------------------ @@ -65,4 +87,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 9b425bb495..f8e4da526c 100644 --- a/docs/api/spice.rst +++ b/docs/api/spice.rst @@ -22,4 +22,5 @@ Analysis :template: module.rst tidy3d.IsothermalSteadyChargeDCAnalysis + 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 56d26a99ee..bd757078ed 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: - .. math:: + Notes + ----- + + .. math:: + + \\mathbf{N_eff} = 2 * (\\frac{m_eff * m_e * k_B T}{2 \\pi \\hbar^2})^(3/2) - \\begin{equation} - \\mathbf{N_eff} = 2 * (\\frac{m_eff * m_e * k_B T}{2 \\pi \\hbar^2})^(3/2) - \\end{equation} """ 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( From 5a11c5e79e83aee5502474b24cdf7823c364216e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damiano=20Franz=C3=B2?= Date: Wed, 24 Sep 2025 11:12:13 +0200 Subject: [PATCH 2/2] Fix tab --- tidy3d/components/tcad/effective_DOS.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tidy3d/components/tcad/effective_DOS.py b/tidy3d/components/tcad/effective_DOS.py index bd757078ed..2056e907e1 100644 --- a/tidy3d/components/tcad/effective_DOS.py +++ b/tidy3d/components/tcad/effective_DOS.py @@ -47,7 +47,7 @@ class IsotropicEffectiveDOS(EffectiveDOS): Notes ----- - .. math:: + .. math:: \\mathbf{N_eff} = 2 * (\\frac{m_eff * m_e * k_B T}{2 \\pi \\hbar^2})^(3/2)