Skip to content

Commit

Permalink
IPD Ionization before the filling of the rate cache
Browse files Browse the repository at this point in the history
this avoids very high to ADK rates due to BSI unbound states being still
present

ci: picongpu
  • Loading branch information
BrianMarre committed Nov 8, 2024
1 parent dc4f494 commit fe87026
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions include/picongpu/simulation/stage/AtomicPhysics.x.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -464,10 +464,7 @@ namespace picongpu::simulation::stage
do
{
resetFoundUnboundIon();
picongpu::atomicPhysics::IPDModel::
template calculateIPDInput<T_numberAtomicPhysicsIonSpecies, IPDIonSpecies, IPDElectronSpecies>(
mappingDesc,
currentStep);
calculateIPDInput(mappingDesc, currentStep);
picongpu::atomicPhysics::IPDModel::template applyIPDIonization<AtomicPhysicsIonSpecies>(
mappingDesc,
currentStep);
Expand Down Expand Up @@ -541,7 +538,7 @@ namespace picongpu::simulation::stage
resetElectronEnergyHistogram();
debugForceConstantElectronTemperature(currentStep);
binElectronsToEnergyHistogram(mappingDesc);
calculateIPDInput(mappingDesc, currentStep);
doIPDIonization(mappingDesc, currentStep, deviceLocalReduce);
resetTimeStep(mappingDesc);
resetRateCache();
checkPresence(mappingDesc);
Expand Down Expand Up @@ -584,10 +581,12 @@ namespace picongpu::simulation::stage
recordChanges(mappingDesc);
updateElectrons(mappingDesc, currentStep);
updateElectricField(mappingDesc);
doIPDIonization(mappingDesc, currentStep, deviceLocalReduce);
updateTimeRemaining(mappingDesc);
isSubSteppingComplete = isSubSteppingFinished(mappingDesc, deviceLocalReduce);
} // end atomicPhysics sub-stepping loop

// ensure no unbound states are visible to the rest of the loop
doIPDIonization(mappingDesc, currentStep, deviceLocalReduce);
}
};

Expand Down

0 comments on commit fe87026

Please sign in to comment.