-
Notifications
You must be signed in to change notification settings - Fork 63
Add effective DOS and energy band gap model #2673
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: marc/non_isothermal
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewing changes made in this pull request
Example | ||
------- | ||
>>> # Parameters for Silicon (Si) | ||
>>> si_model = VarshniBandGap( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: Class name in example is 'VarshniBandGap' but actual class is 'VarshniEnergyBandGap'
>>> si_model = VarshniBandGap( | |
>>> si_model = VarshniEnergyBandGap( |
def get_effective_DOS(self, T: float): | ||
if T <= 0: | ||
raise DataError( | ||
f"Incorrect temperature value ({T}) for the effectve density of states calculation." |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
syntax: Typo in error message: 'effectve' should be 'effective'
f"Incorrect temperature value ({T}) for the effectve density of states calculation." | |
f"Incorrect temperature value ({T}) for the effective density of states calculation." |
..., | ||
title="Longitudinal effective mass", | ||
description="Effective mass of the carriers in the transverse direction", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
syntax: Copy-paste error in title: 'Longitudinal effective mass' should be 'Transverse effective mass'
..., | |
title="Longitudinal effective mass", | |
description="Effective mass of the carriers in the transverse direction", | |
..., | |
title="Transverse effective mass", | |
description="Effective mass of the carriers in the transverse direction", |
|
||
|
||
class DualValleyEffectiveDOS(EffectiveDOS): | ||
"""Effective density of states model that assumes combibation of light holes and heavy holes with isotropic effective masses. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
syntax: Typo in docstring: 'combibation' should be 'combination'
"""Effective density of states model that assumes combibation of light holes and heavy holes with isotropic effective masses. | |
"""Effective density of states model that assumes combination of light holes and heavy holes with isotropic effective masses. |
Refactors semiconductor material modeling by introducing modular DOS and band gap models, replacing hardcoded values with configurable model classes.
tidy3d/__init__.py
includingConstantEffectiveDOS
,IsotropicEffectiveDOS
,MultiValleyEffectiveDOS
, and various energy band gap modelsSemiconductorMedium
incomponents/material/tcad/charge.py
to use model-based implementations forN_c
,N_v
, andE_g
parameterscSi
material properties inmaterial_library/material_library.py
to use new model classes while preserving existing valuestest_heat_charge.py
to use the new model classes instead of hardcoded valuesGreptile Summary
This PR introduces a significant architectural improvement to the semiconductor material modeling system in Tidy3D. It replaces hardcoded material parameters with a flexible, model-based approach for calculating Density of States (DOS) and energy band gaps. The changes enable more sophisticated physics modeling while maintaining backward compatibility.
Key changes:
The change maintains existing numerical values for silicon (e.g., N_c=2.86e19, N_v=3.1e19, E_g=1.11) while providing infrastructure for more complex physics in the future. This is particularly relevant for the non-isothermal branch it's targeting, as temperature-dependent calculations will be crucial.
PR Description Notes:
Confidence score: 4 /5
7 files reviewed, 4 comments
Edit PR Review Bot Settings | Greptile