-
Notifications
You must be signed in to change notification settings - Fork 225
Rm BSIHydrogenLike, Add BSI with charge Z #2013
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
Rm BSIHydrogenLike, Add BSI with charge Z #2013
Conversation
bdab947 to
d7a9774
Compare
The `BSIHydrogenLike` model was much too narrow since it was only applicable
to hydrogenlike states, i.e. states that have charge (Z-1)+.
The following replacement was done in
F_BSI = E_i^2 / (4*Z)
Z (nuclear charge) --> Z_i (ion residual charge)
That means that in a naive way the inner electrons shield the nuclear charge
from the electron that is to be ionized.
---
Also the documentation has been refined to better describe the assumptions.
d7a9774 to
4d41698
Compare
PrometheusPi
left a comment
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.
Just some minor changes in the code but please update the comment and used schemes in all speciedDefinition.param e.g. here
| /* ionization potential in atomic units */ | ||
| const float_X iEnergy = GetIonizationEnergies<ParticleType>::type()[cs]; | ||
| /* the charge that attracts the electron that is to be ionized: | ||
| + * equals `protonNumber - #allInnerElectrons` |
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.
OPTIONAL:
perhaps just write number instead of #
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.
or no. for number of
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 would be fine too
| * of ionization energies according to strong external electric fields | ||
| * - This model accounts for naive ion charge shielding by inner electrons | ||
| * as it assumes that the charge the electron 'feels' is equal to | ||
| * `Z - #NumberOfBoundInnerShellElectrons`. |
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.
REQUIRED:
you are using both # and number - please just use number
|
@n01r What happens now to |
|
@PrometheusPi The difference lies in how the residual ion charge is determined. Just for illustration (this will also find its way into the documentation). |
ax3l
left a comment
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.
Looks good to me besides Richard comments about updating all input files in examples, too.
I think you can move BSIEffectiveZ up to the "normal" models, too.
|
@n01r Could you please add the changes. |
|
Sorry for the delay. Changes have been implemented. Please check if you're okay with them, @ax3l and @PrometheusPi . |
|
@n01r thank you for the fast reply, I will have a look at the code today |
|
@PrometheusPi looks good to me, if you are ok I can review and merge it |
|
I am fine with that. Go ahead. |
ax3l
left a comment
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.
does not compile, see comments inline
| + float_X effectiveCharge = chargeState + float_X(1.0); | ||
| /* critical field strength in atomic units */ | ||
| float_X critField = iEnergy*iEnergy / (float_X(4.0) * protonNumber); | ||
| float_X critField = iEnergy*iEnergy / (float_X(4.0) * effectiveCharge); |
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.
this should be a float_X const
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.
there is a + in front of this line
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.
oO where the hell did that come from?
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.
copied from a diff?
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.
mmh, must be it 🤕
| /* the charge that attracts the electron that is to be ionized: | ||
| + * equals `protonNumber - no. allInnerElectrons` | ||
| */ | ||
| + float_X effectiveCharge = chargeState + float_X(1.0); |
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.
- this should be a
float_X const - there is a
+in front of this line
| /* ionization potential in atomic units */ | ||
| const float_X iEnergy = GetIonizationEnergies<ParticleType>::type()[cs]; | ||
| /* the charge that attracts the electron that is to be ionized: | ||
| + * equals `protonNumber - no. allInnerElectrons` |
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.
there is a + in front if this line
| /* verify that ion is not completely ionized */ | ||
| if (chargeState < protonNumber) | ||
| { | ||
| uint32_t cs = math::float2int_rd(chargeState); |
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.
should be uint32_t const cs = ...
Move the `BSIEffectiveZ` model up from the R&D section to the usable models. Also: implement changes to comments requested in PR 2013.
a4ec604 to
d7eb57c
Compare
|
fixed the 4 lines and amended the commit |
PrometheusPi
left a comment
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.
looks good to me
Adds the following changes to the `release-0.3.0` branch: - Multiple ionizers per species: `ionizer< ... >` became a sequence of `ionizers< ... >` ComputationalRadiationPhysics#1999 - Thomas-Fermi: - fixes in domain decomposition ComputationalRadiationPhysics#2007 - fixes compile issue (missing include) ComputationalRadiationPhysics#2003 - BSI models restructured ComputationalRadiationPhysics#2013 - ADK: fix effective principal quantum number `nEff` ComputationalRadiationPhysics#2011 - multiple ionization algorithms can be applied per species, e.g. cut-off barrier suppression ionization (BSI), probabilistic field ionization (ADK) and collisional ionization ComputationalRadiationPhysics#1999 - FieldTmp: Gather support to fill GUARD ComputationalRadiationPhysics#2009 - Fix undefined device variable in tilted laser pulse ComputationalRadiationPhysics#2017 - CompileTime Accessor: Type (::type) ComputationalRadiationPhysics#1998 - TBG Macros: Outdated Comment ComputationalRadiationPhysics#2004 Increases the state of the `0.3.0` release candidate to `rc3`.
Adds the following changes to the `release-0.3.0` branch: - Multiple ionizers per species: `ionizer< ... >` became a sequence of `ionizers< ... >` ComputationalRadiationPhysics#1999 - Thomas-Fermi: - fixes in domain decomposition ComputationalRadiationPhysics#2007 - fixes compile issue (missing include) ComputationalRadiationPhysics#2003 - BSI models restructured ComputationalRadiationPhysics#2013 - ADK: fix effective principal quantum number `nEff` ComputationalRadiationPhysics#2011 - multiple ionization algorithms can be applied per species, e.g. cut-off barrier suppression ionization (BSI), probabilistic field ionization (ADK) and collisional ionization ComputationalRadiationPhysics#1999 - FieldTmp: Gather support to fill GUARD ComputationalRadiationPhysics#2009 - Fix undefined device variable in tilted laser pulse ComputationalRadiationPhysics#2017 - CompileTime Accessor: Type (::type) ComputationalRadiationPhysics#1998 - TBG Macros: Outdated Comment ComputationalRadiationPhysics#2004 Increases the state of the `0.3.0` release candidate to `rc3`.

The
BSIHydrogenLikemodel was much too narrow since it was only applicableto hydrogenlike states, i.e. states that have charge (Z-1)+.
The following replacement was done in
That means that in a naive way the inner electrons shield the nuclear charge
from the electron that is to be ionized.