-
Notifications
You must be signed in to change notification settings - Fork 178
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
Add strang implicit spectral em redo #5027
base: development
Are you sure you want to change the base?
Add strang implicit spectral em redo #5027
Conversation
import sys | ||
|
||
import numpy as np | ||
import yt |
Check notice
Code scanning / CodeQL
Unused import Note
|
||
import numpy as np | ||
import yt | ||
from scipy.constants import e, epsilon_0 |
Check notice
Code scanning / CodeQL
Unused import Note
Import of 'epsilon_0' is not used.
/** | ||
* \brief Time-biasing parameter for fields used on RHS to advance system | ||
*/ | ||
amrex::Real m_theta = 0.5; |
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.
@dpgrote Is m_theta used?
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.
I've removed references to theta.
This implements use of the PSATD field advance coupled with the implicit solver, using a Strang split advance.
This requires the input parameter psatd.update_with_rho = 0.
With psatd.periodic_single_box_fft = 1, exact energy conservation is obtained. Otherwise good conservation is seen, but not exact (will depend on parameters).
Convergence is found for wpedt <= 1.9 (compared to wpedt < 0.25 for FDTD).
This PR replaces PR #4662.
A task for a future PR would be to implement specialized source free spectral advance routines (as noted in source comments).