Field propagator
ShearAlfvenCurrentCoupling5D
Advances u and b.
What it solves
FEEC discretization of the following equations:
find and such that
time_discret: Crank-Nicolson (implicit mid-point). System size reduction via struphy.linear_algebra.schur_solver.SchurSolver:
where
\mathcal{T}^2 = \hat \Pi \left[\frac{\tilde{\mathbf B}^2}{\sqrt{g} \times \vec \Lambda^2\right] and
is a struphy.feec.mass.WeightedMassOperators being weighted with , the MHD equilibirum density.
Variables it advances
The variables this step updates over a time step dt, and the discrete spaces each one accepts.
| Name | Kind | Accepted spaces |
|---|---|---|
u | FEECVariable | HcurlHdivH1vec |
b | FEECVariable | Hdiv |
Options
Set these on the propagator in a parameter file, for example ShearAlfvenCurrentCoupling5D.Options(ep_scale=...).
| Option | Default | Choices | Description |
|---|---|---|---|
ep_scale | 1 | float | Scaling factor for particle accumulation terms. |
u_space | Hdiv | HcurlHdivH1vec | FEEC space used for velocity variable u. |
algo | implicit | implicitexplicit | Time stepping algorithm. |
solver | pcg | pcgcg | Symmetric iterative solver. |
precond | MassMatrixDiagonalPreconditioner | MassMatrixPreconditionerMassMatrixDiagonalPreconditionerNone | Preconditioner for mass-matrix block. |
solver_params | None | SolverParameters | Solver controls. |
filter_params | None | FilterParameters | Particle-to-grid filtering parameters. |
butcher | None | ButcherTableau | Explicit Runge-Kutta tableau for algo="explicit". |
nonlinear | True | bool | If True, include nonlinear TB operator updates. |
Used by
Each model splits its time step into a sequence of propagators. This one appears in 1 model, at the position shown.