-
Notifications
You must be signed in to change notification settings - Fork 218
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
Fix infinite ADK rates #5206
base: dev
Are you sure you want to change the base?
Fix infinite ADK rates #5206
Conversation
731f98c
to
fe87026
Compare
d612faf
to
81972cd
Compare
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); |
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 the mean we execute the IPD ionization twice per pic time step? Because we call this already in line 540.
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.
yes, that is intended and necessary.
The second call of doIPDIonization
is necessary here since we need to make sure that we do not pass an unbound state with a too low charge state to the pusher and we need to call doIPDIonization
again at the beginning of the next AtomicPhyiscs step since the we updated the field in between causing a possible change result of the call.
Also note calling doIPDIonization
twice on the same particle set with an unchanged E-Field does not change particle set anymore after the first call.
previously did not consider excitation in the ionization energy calcualtion in the ApplyIPDIonization kernel ci: picongpu
this avoids very high to ADK rates due to BSI unbound states being still present ci: picongpu
81972cd
to
9edf73f
Compare
fixes an infinite loop in the AtomicPhysics FLYonPIC stage due to a numerical underflow of the atomicPhysics timestep due to very high ADK rates of BSI unbound states still being present, by moving the Removal of IPD unbound states before the filling of the rate cache.