Skip to content

Commit 14f326d

Browse files
committed
Adding option for Fermi-Dirac statistics
1 parent 94c659a commit 14f326d

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1818
- New `LobeMeasurer` tool in the `microwave` plugin that locates lobes in antenna patterns and calculates lobe measures like half-power beamwidth and sidelobe level.
1919
- Validation step that raises a `ValueError` when no frequency-domain monitors are present, preventing invalid adjoint runs.
2020
- Metal surface roughness models: modified Hammerstad, Huray Snowball, and Cannonball-Huray.
21+
- Support for Fermi-Dirac statistics in Charge solver. This option can be activated when defining the analysis type `IsothermalSteadyChargeDCAnalysis` with `fermi_dirac=True`. This option will provide more accurate results in simulations where very high doping may lead the pseudo-Fermi energy levels to approach either the conduction or the valence energy levels.
2122

2223
### Changed
2324

tests/test_components/test_heat_charge.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -962,6 +962,7 @@ def charge_tolerance(self):
962962
return td.IsothermalSteadyChargeDCAnalysis(
963963
temperature=300,
964964
tolerance_settings=td.ChargeToleranceSpec(rel_tol=1e5, abs_tol=1e3, max_iters=400),
965+
fermi_dirac=True,
965966
)
966967

967968
@pytest.fixture(scope="class")

tidy3d/components/spice/analysis/dc.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ class ChargeToleranceSpec(Tidy3dBaseModel):
3939
"or when the tolerance criteria has been met.",
4040
)
4141

42+
ramp_up_iters: pd.PositiveInt = pd.Field(
43+
default=5,
44+
title="Ramp-up iterations.",
45+
description="In order to help in start up, quantities such as doping "
46+
"are ramped up until they reach their specified value. This parameter "
47+
"determines how many of this iterations it takes to reach full values.",
48+
)
49+
4250

4351
class IsothermalSteadyChargeDCAnalysis(Tidy3dBaseModel):
4452
"""
@@ -65,3 +73,12 @@ class IsothermalSteadyChargeDCAnalysis(Tidy3dBaseModel):
6573
"at `convergence_dv` intervals until the required bias is reached. This is, therefore, a "
6674
"convergence parameter in DC computations.",
6775
)
76+
77+
fermi_dirac: bool = pd.Field(
78+
False,
79+
title="Fermi-Dirac statistics",
80+
description="Determines whether Fermi-Dirac statistics are used. When False, "
81+
"Boltzmann statistics will be used. This can provide more accurate results in situations "
82+
"where very high doping may lead the pseudo-Fermi energy level to approach "
83+
"either the conduction or valence energy bands.",
84+
)

0 commit comments

Comments
 (0)