Skip to content

Commit 6d3483f

Browse files
committed
Adding direct btbt by Hurkx
1 parent 5c073c6 commit 6d3483f

File tree

4 files changed

+58
-1
lines changed

4 files changed

+58
-1
lines changed

docs/api/charge/mediums.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Generation Recombination
3434
tidy3d.ShockleyReedHallRecombination
3535
tidy3d.FossumCarrierLifetime
3636
tidy3d.DistributedGeneration
37+
tidy3d.HurkxDirectBandToBandTunneling
3738

3839

3940
Doping

tidy3d/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@
8383
HeatFluxBC,
8484
HeatFromElectricSource,
8585
HeatSource,
86+
HurkxDirectBandToBandTunneling,
8687
InsulatingBC,
8788
IsotropicEffectiveDOS,
8889
MultiValleyEffectiveDOS,
@@ -603,6 +604,7 @@ def set_logging_level(level: str) -> None:
603604
"HeatSource",
604605
"HeuristicPECStaircasing",
605606
"HuraySurfaceRoughness",
607+
"HurkxDirectBandToBandTunneling",
606608
"IndexPerturbation",
607609
"IndexedDataArray",
608610
"IndexedFieldVoltageDataArray",

tidy3d/components/tcad/generation_recombination.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,3 +223,52 @@ def check_spatialdataarray_dimensions(cls, values):
223223
raise ValueError("SpatialDataArray must be at least 2D.")
224224

225225
return values
226+
227+
228+
class HurkxDirectBandToBandTunneling(Tidy3dBaseModel):
229+
"""
230+
This class defines a direct band-to-band tunneling recombination model based on the Hurkx model
231+
as described in [1]_.
232+
233+
Notes
234+
-----
235+
236+
The direct band-to-band tunneling recombination rate ``R_{BTBT}`` is primarily defined by the
237+
material's bandgap energy :math:`E_g` and the electric field :math:`F`.
238+
239+
.. math::
240+
241+
R^{BTBT} = A \\cdot \frac{n \\cdot p - n_i^2}{(n + n_i) \\cdot (p + n_i)} \\cdot \\left( \frac{|\\mathbf{E}|}{E_0} \right)^{\\sigma} \\cdot \\exp \\left( -\frac{B}{|\\mathbf{E}|} \\cdot \\left( \frac{E_g}{E_{g,300}} \right)^{3/2} \right )
242+
243+
where :math:`A`, :math:`B`, :math:`E_0`, and :math:`\\sigma` are material-dependent parameters.
244+
245+
References
246+
----------
247+
.. [1] Palankovski, Vassil, and Rüdiger Quay. Analysis and simulation of heterostructure devices. Springer Science & Business Media, 2004.
248+
"""
249+
250+
A: float = pd.Field(
251+
4e14,
252+
title="Parameter A",
253+
description="Parameter A in the direct BTBT Hurkx model.",
254+
units="1/(cm^3 s)",
255+
)
256+
B: float = pd.Field(
257+
1.9e6,
258+
title="Parameter B",
259+
description="Parameter B in the direct BTBT Hurkx model.",
260+
units="V/cm",
261+
)
262+
E_0: float = pd.Field(
263+
1,
264+
title="Reference electric field E_0",
265+
description="Reference electric field E_0 in the direct BTBT Hurkx model.",
266+
units="V/cm",
267+
)
268+
sigma: float = pd.Field(
269+
...,
270+
title="Exponent parameter",
271+
description="Exponent sigma in the direct BTBT Hurkx model. For direct "
272+
"semiconductors sigma is typically 2.0, while for indirect "
273+
"semiconductors sigma is typically 2.5.",
274+
)

tidy3d/components/tcad/types.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
from tidy3d.components.tcad.generation_recombination import (
2525
AugerRecombination,
2626
DistributedGeneration,
27+
HurkxDirectBandToBandTunneling,
2728
RadiativeRecombination,
2829
ShockleyReedHallRecombination,
2930
)
@@ -46,7 +47,11 @@
4647
EnergyBandGapModelType = Union[ConstantEnergyBandGap, VarshniEnergyBandGap]
4748
MobilityModelType = Union[CaugheyThomasMobility, ConstantMobilityModel]
4849
RecombinationModelType = Union[
49-
AugerRecombination, DistributedGeneration, RadiativeRecombination, ShockleyReedHallRecombination
50+
AugerRecombination,
51+
DistributedGeneration,
52+
RadiativeRecombination,
53+
ShockleyReedHallRecombination,
54+
HurkxDirectBandToBandTunneling,
5055
]
5156
BandGapNarrowingModelType = Union[SlotboomBandGapNarrowing]
5257

0 commit comments

Comments
 (0)