Skip to content

Commit

Permalink
Merge pull request #4709 from psychocoderHPC/release-cherryPickADKBugFix
Browse files Browse the repository at this point in the history
Release cherry pick adk bug fix
  • Loading branch information
PrometheusPi authored Oct 18, 2023
2 parents b06d436 + 7a39a68 commit c317f07
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 4 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ for their contributions to this release!

**Bug Fixes:**
- PIC:
- Fix missing euler number in ADK formula #4696
- Fix incorrect assignment of Jz in 2d EmZ implementation #3892
- Fix getExternalCellsTotal() to properly account for guard cells #4030
- Fix incident field math around corners #4102
Expand Down
1 change: 1 addition & 0 deletions docs/source/models/field_ionization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ Leaving out the pre-factor distinguishes ``ADKCircPol`` from ``ADKLinPol``.
.. attention::

Be aware that :math:`Z` denotes the **residual ion charge** and not the proton number of the nucleus!
Be aware that :math:`e` in :math:`D` denotes Euler's number, not the elementary charge

In the following comparison one can see the ``ADKLinPol`` ionization rates for the transition from Carbon II to III (meaning 1+ to 2+).
For a reference the rates for Hydrogen as well as the barrier suppression field strengths :math:`F_\mathrm{BSI}` have been plotted.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright 2015-2023 Marco Garten, Jakob Trojok
/* Copyright 2015-2023 Marco Garten, Jakob Trojok, Brian Marre
*
* This file is part of PIConGPU.
*
Expand Down Expand Up @@ -93,7 +93,8 @@ namespace picongpu
/* effective principal quantum number (unitless) */
float_X const nEff = effectiveCharge / math::sqrt(float_X(2.0) * iEnergy);
/* nameless variable for convenience dFromADK*/
float_X const dBase = float_X(4.0) * util::cube(effectiveCharge) / (eInAU * util::quad(nEff));
float_X const dBase = float_X(4.0) * math::exp(1._X) * util::cube(effectiveCharge)
/ (eInAU * util::quad(nEff));
float_X const dFromADK = math::pow(dBase, nEff);

/* ionization rate (for CIRCULAR polarization)*/
Expand Down
4 changes: 2 additions & 2 deletions lib/python/picongpu/extra/utils/field_ionization.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This file is part of the PIConGPU.
Copyright 2019-2023 PIConGPU contributors
Authors: Marco Garten
Authors: Marco Garten, Brian Marre
License: GPLv3+
"""

Expand Down Expand Up @@ -93,7 +93,7 @@ def ADKRate(self,
)

nEff = np.float64(self.n_eff(Z, E_Ip))
D = ((4. * Z**3.) / (F * nEff**4.))**nEff
D = ((4. * np.exp(1.) * Z**3.) / (F * nEff**4.))**nEff

rate = (F * D**2.) / (8. * np.pi * Z) \
* np.exp(-(2. * Z**3.) / (3. * nEff**3. * F))
Expand Down

0 comments on commit c317f07

Please sign in to comment.