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 IsotropicMobilityChargeDriftModel #421

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Padniuk
Copy link

@Padniuk Padniuk commented Oct 17, 2024

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

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

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

    ...
    μ_e = 1350u"cm^2/V/s",
    μ_h = 120u"cm^2/V/s"

The usage example is the following:

μ_e = sim.detector.semiconductor.material.μ_e
μ_h = sim.detector.semiconductor.material.μ_h

sim.detector = SolidStateDetector(sim.detector, IsotropicMobilityChargeDriftModel{T}(μ_e,μ_h))

I did not implement overload for configs or other type of args for the model, cause it is not needed for now.

@oschulz
Copy link
Member

oschulz commented Oct 17, 2024

@fhagemann can we add a short test for this to CI without adding to much testing time?

@fhagemann
Copy link
Collaborator

fhagemann commented Oct 17, 2024

@Padniuk do not worry about the failing tests: these are because the tests are running on julia-1.11 instead of julia-1.10. There is a PR addressing this already: #419

Downgrade fails because some package versions are not allowed by julia-1.11 anymore.
The x86 tests fail because Geant4 does not run on 32bit.

@fhagemann
Copy link
Collaborator

  • I would maybe opt for a shorter name, something like IsotropicChargeDriftModel?
  • Am I correct in assuming that you don't expect any saturation at higher electric fields?
    If yes, does it make sense to build a model based on the Vl methods in ADLChargeDriftModel, just without the drift anisotropy (bascially getVe(...) = Vl(...) and getVh(...) = Vl(...))?
  • For ADLChargeDriftModel, we are reading parameters from a configuration file (see examples/example_config_files/ADLChargeDriftModel). I guess the mobility values in CdZnTe are temperature-dependent, so it would probably be best to feed these values via a configuration file as well or in code as you proposed:
    sim.detector = SolidStateDetector(sim.detector, IsotropicChargeDriftModel{T}(1350u"cm^2/(V*s)", 120u"cm^2/(V*s)"))

@Padniuk
Copy link
Author

Padniuk commented Oct 17, 2024

@oschulz

  • Yes, that name suits better
  • The question is not easy. I use this model for temperatures 293K and voltages around 500V, or it is better to say, voltages with order around 500V. For such purposes, model shows realistic results. Of course, this model does not cover full temperature and electric field value ranges. It was implemented just to add the easiest description of semiconductor drift.
  • Yes, such functionality can be implemented

@fhagemann
Copy link
Collaborator

Do you wanna add this or should I push changes to your PR?

@Padniuk
Copy link
Author

Padniuk commented Oct 17, 2024

I will add these changes but a little bit later.

@fhagemann
Copy link
Collaborator

Alright, thanks and no rush! :)

@fhagemann
Copy link
Collaborator

The tests should not fail anymore with the next commit you push (#424)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants