allow dt update based on particle CFL for theta implicit solver. #6428
+48
−47
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the ability to dynamically limit the time step based on the particle CFL when using the theta implicit EM solver, which treats light waves implicitly. This would be a one line PR if it wasn't for one subtlety described below.
The call to
UpdateDtFromParticleSpeeds()in theWarpX::Evolve()routine occurs prior to the call toOneStep(). For many of the time-advance methods, including the implicit ones,OneStep()first performs collisions and then the PIC advance. However, to be meaningful, the call toUpdateDtFromParticleSpeeds()should occur just before the PIC advance. This PR swaps the order of calls insideOneStep()for the implicit methods to do the PIC advance before collisions. This ordering is actually more common in my experience, and I wonder if the ordering should be swapped for other time-advance methods as well. @roelof-groenewald @ax3l @RemiLehe