Skip to content
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

Open
wants to merge 8 commits into
base: development
Choose a base branch
from

Conversation

dpgrote
Copy link
Member

@dpgrote dpgrote commented Jul 3, 2024

This implements use of the PSATD field advance coupled with the implicit solver, using a Strang split advance.

  • Advect Maxwell using PSATD with no J, ½ step
  • Advance particles along with dE/dt = -J implicitly, full step, iterating
  • Advect Maxwell using PSATD with no J, ½ step

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).

@dpgrote dpgrote added component: spectral Spectral solvers (PSATD, IGF) component: implicit solvers Anything related to implicit solvers labels Jul 3, 2024
import sys

import numpy as np
import yt

Check notice

Code scanning / CodeQL

Unused import Note

Import of 'yt' is not used.

import numpy as np
import yt
from scipy.constants import e, epsilon_0

Check notice

Code scanning / CodeQL

Unused import Note

Import of 'e' is not used.
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;
Copy link
Contributor

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?

Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: implicit solvers Anything related to implicit solvers component: spectral Spectral solvers (PSATD, IGF)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants