-
Notifications
You must be signed in to change notification settings - Fork 64
Adding DistributedGeneration to Charge #2781
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
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.
5 files reviewed, 5 comments
ff181b7
to
5efccf7
Compare
Diff CoverageDiff: origin/develop...HEAD, staged and unstaged changes
Summary
|
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.
That was fast! Just one quick comment on frontend, will take a look at backend next.
fff7fad
to
e7c0c1e
Compare
@momchil-flex, feel free to have another look to the new tests and validators. If nothing else pops up this is ready |
eaa9a0c
to
6519a66
Compare
6519a66
to
d1d8002
Compare
d1d8002
to
845426c
Compare
Greptile Summary
Updated On: 2025-09-01 07:23:28 UTC
This PR adds distributed generation capabilities to the charge simulation framework by introducing the
DistributedGeneration
class. The change enables modeling of spatially-varying generation rates in semiconductor devices, which is essential for simulating photodiodes, solar cells, and other optoelectronic components where optical absorption creates electron-hole pairs throughout the device volume.The implementation follows established patterns in the codebase:
DistributedGeneration
class is defined ingeneration_recombination.py
that accepts aSpatialDataArray
for the generation rateRecombinationModelType
union intypes.py
__init__.py
fileThis extends the existing recombination model framework (Auger, Radiative, Shockley-Reed-Hall) to also support generation processes, providing a complete picture of carrier dynamics in semiconductor devices. The use of
SpatialDataArray
is consistent with how other spatially-varying properties are handled throughout the framework.Important Files Changed
Click to expand
tidy3d/components/tcad/generation_recombination.py
DistributedGeneration
class but contains typo, missing import, and incomplete docstringtidy3d/components/tcad/types.py
DistributedGeneration
to import and union typetidy3d/__init__.py
tests/test_components/test_heat_charge.py
docs/api/charge/mediums.rst
Confidence score: 3/5
tidy3d/components/tcad/generation_recombination.py
which has multiple issues requiring fixesSequence Diagram
Context used:
Rule - Do not use markdown formatting in exception or warning messages; use single quotes to highlight variable names and code. (link)
Rule - Keep docstrings and comments synchronized with code changes to ensure they are always accurate and not misleading. (link)
Rule - Ensure all parameters in a function's signature are documented in its docstring. (link)