Skip to content
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

Add IsotropicChargeDriftModel and add more materials #431

Merged
merged 5 commits into from
Nov 14, 2024

Conversation

Padniuk
Copy link
Contributor

@Padniuk Padniuk commented Nov 11, 2024

This model was called as IsotropicMobilityChargeDriftModel because it uses identity-like mobility tensor:

$$v_{i}^{e,h}=\mu_{ij}^{e,h}\cdot E_{j}^{e,h} = \mu^{e,h}\cdot E_{i}^{e,h}$$

The semiconductor should have material properties μ_e and μ_h. Like in example:

    μ_e = 1000u"cm^2/V/s",
    μ_h = 1000u"cm^2/V/s"

The usage examples are the following:

    sim.detector = SolidStateDetector(sim.detector, IsotropicChargeDriftModel{T}(1, 1)) # defaul units are m^2/V/s
    sim.detector = SolidStateDetector(sim.detector, IsotropicChargeDriftModel{T}(100u"cm^2/V/s", 1400u"cm^2/V/s"))
    sim.detector = SolidStateDetector(sim.detector, IsotropicChargeDriftModel("<path_to_config_file>"))
    sim.detector = SolidStateDetector(sim.detector, IsotropicChargeDriftModel()) # use default config in examples/example_config_files/IsotropicChargeDriftModel/

Additionally two new materials were added: $CsPbBr_{3}$ and lead:

abstract type CsPbBr3 <: AbstractDriftMaterial end
Symbol(::Type{CsPbBr3}) = :CsPbBr3
material_properties[:CsPbBr3] = (
    name = "CsPbBr3",
    E_ionisation = 6.9u"eV",
    ϵ_r = 16.46,
    ρ = 4.73u"g*cm^-3"
)

material_properties[:Pb] = (
    name = "Lead",
    ϵ_r = 1,
    ρ = 11.35u"g*cm^-3"
)

Copy link
Collaborator

@fhagemann fhagemann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This, in principle, looks good to me. I will have a detailed look st this later.
Could you maybe separate your first commit into two (one introducing the model, the other one adding new materials)?

Copy link
Collaborator

@fhagemann fhagemann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me.
I will spend some time to write tests for this, but afteerwards, this should be good to go.

@fhagemann fhagemann linked an issue Nov 13, 2024 that may be closed by this pull request
@fhagemann fhagemann force-pushed the main branch 2 times, most recently from d062dcc to a9bd9b4 Compare November 13, 2024 14:29
@fhagemann
Copy link
Collaborator

Sorry for all this force pushing, but the tests I added should also be good to go now.
I would wait until the tests pass and then merge ASAP.

@fhagemann fhagemann changed the title Add IsotropicChargeDriftModel Add IsotropicChargeDriftModel and add more materials Nov 13, 2024
@fhagemann fhagemann merged commit 7857125 into JuliaPhysics:main Nov 14, 2024
9 checks passed
@fhagemann
Copy link
Collaborator

@Padniuk Thanks for the PR!

We will probably leave this on main for some time before releasing it for some test period. If you already want to use it now, you could load SolidStateDetectors using

]add SolidStateDetectors#main

@fhagemann fhagemann added enhancement Improvement of existing features convenience Improve user-friendliness new feature Add new feature and removed new feature Add new feature labels Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
convenience Improve user-friendliness enhancement Improvement of existing features
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implementation of new material for semiconductor
3 participants