Skip to content

Commit d7929e1

Browse files
authored
Merge pull request ComputationalRadiationPhysics#5412 from BrianMarre/topic-fixBSIscreenedCharge
fix screened charge in BSI and ADK
2 parents 565d661 + 91b1464 commit d7929e1

File tree

4 files changed

+11
-9
lines changed

4 files changed

+11
-9
lines changed

include/picongpu/particles/atomicPhysics/debug/TestRateCalculation.hpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,9 @@ namespace picongpu::particles::atomicPhysics::debug
126126
S_ChargeStateBox chargeStateHostBox = chargeStateBuffer->getHostDataBox();
127127
// ionizationEnergy = 100 eV, screened charge = 5 e
128128
auto tupleChargeState_1 = std::make_tuple(u8(0u), 100._X, 5._X);
129+
// ionizationEnergy = 5 eV, screened charge = 5 e
129130
auto tupleChargeState_2 = std::make_tuple(u8(1u), 5._X, 5._X);
131+
// ionizationEnergy = 100 eV, screened charge = 5 e
130132
auto tupleChargeState_3 = std::make_tuple(u8(2u), 100._X, 5._X);
131133

132134
chargeStateHostBox.store(u8(0u), tupleChargeState_1);
@@ -138,9 +140,9 @@ namespace picongpu::particles::atomicPhysics::debug
138140
/// atomic states, @attention caution all atomic state must differ in configNumber
139141
S_AtomicStateBox atomicStateHostBox = atomicStateBuffer->getHostDataBox();
140142

141-
// 1:(1,1,0,0,0,0,1,0,1,0) lowerStateBoundFree
143+
// 1:(1,1,0,0,0,0,1,0,1,0) lowerStateBoundFree, exictationEnergy = 0 eV(ground state)
142144
auto tupleAtomicState_bf_1 = std::make_tuple(static_cast<uint64_t>(243754u), 0._X);
143-
// 2:(1,1,0,0,0,0,1,0,0,0) upperStateBoundFree, excitationEnergyDifference = 5 eV
145+
// 2:(1,1,0,0,0,0,1,0,0,0) upperStateBoundFree, excitationEnergy = 5 eV
144146
auto tupleAtomicState_bf_2 = std::make_tuple(static_cast<uint64_t>(9379u), 5._X);
145147
// 3:(1,1,0,0,0,0,0,0,0,0) upperStateBoundFree, excitationEnergyDifference = 5 eV
146148
auto tupleAtomicState_bf_3 = std::make_tuple(static_cast<uint64_t>(4u), 5._X);
@@ -406,10 +408,10 @@ namespace picongpu::particles::atomicPhysics::debug
406408
bool testADKIonizationRate() const
407409
{
408410
// unit: 1/s
409-
float_64 const correctRate = 6.391666527e+9 * 1 / 3.3e-17;
411+
float_64 const correctRate = 1.823335012e+10 * 1. / 3.3e-17;
410412

411413
// unit: unit_eField
412-
float_X const eFieldNorm = 0.0126 * sim.atomicUnit.eField() / sim.unit.eField();
414+
float_X const eFieldNorm = 0.03 * sim.atomicUnit.eField() / sim.unit.eField();
413415

414416
// unit: eV
415417
float_X const ipd = 0._X;

include/picongpu/particles/atomicPhysics/ionizationPotentialDepression/kernel/ApplyIPDIonization.kernel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ namespace picongpu::particles::atomicPhysics::ionizationPotentialDepression::ker
195195
float_X const eFieldNormCell = pmacc::math::l2norm(eFieldCache(localCellIndex));
196196

197197
float_X const eFieldNormAU = sim.pic.conv().eField2auEField(eFieldNormCell);
198-
float_X const screenedCharge = chargeStateBox.screenedCharge(currentChargeState) - 1._X;
198+
float_X const screenedCharge = chargeStateBox.screenedCharge(currentChargeState);
199199

200200
// eV
201201
ipd += BarrierSupressionIonization::getIPD(screenedCharge, eFieldNormAU);

include/picongpu/particles/atomicPhysics/rateCalculation/BoundFreeFieldTransitionRates.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ namespace picongpu::particles::atomicPhysics::rateCalculation
117117
using S_ConfigNumber = typename T_AtomicStateDataBox::ConfigNumber;
118118
uint8_t const lowerStateChargeState = S_ConfigNumber::getChargeState(lowerStateConfigNumber);
119119

120-
return chargeStateDataBox.screenedCharge(lowerStateChargeState) - 1._X;
120+
return chargeStateDataBox.screenedCharge(lowerStateChargeState);
121121
}
122122

123123
/** actual rate rateFormula

lib/python/picongpu/extra/utils/FLYonPICRateCalculationReference/calculatorMain.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@
3737
upperStateLevelVectorBoundFree = (1, 1, 0, 0, 0, 0, 1, 0, 0, 0)
3838

3939
# bound-free field transition data
40-
# screened Charge lower state - 1
41-
screenedCharge = 4
40+
# screened Charge lower state
41+
screenedCharge = 5
4242
# in eV
4343
Hartree = 27.211386245981
4444
# in Hartree
4545
ionizationEnergy_ADK = 5.0 / Hartree
4646
# in atomic_unit["electric field"] ~ 5.1422e11 V/m
47-
fieldStrength = 0.0126
47+
fieldStrength = 0.03
4848

4949
# bound-bound transition data
5050
# eV

0 commit comments

Comments
 (0)