Field propagator
ShearAlfvenPropagator
Advances u and b.
What it solves
FEEC discretization of the following equations:
find and such that
Time discretization:
- implicit: Crank-Nicolson (implicit mid-point)
- explicit: explicit RK methods from ButcherTableau
System size reduction via struphy.linear_algebra.schur_solver.SchurSolver.
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 ShearAlfvenPropagator.Options(u_space=...).
| Option | Default | Choices | Description |
|---|---|---|---|
u_space | Hdiv | HcurlHdivH1vec | FEEC space used for the velocity variable. |
algo | implicit | implicitexplicit | Time stepping algorithm. |
solver | pcg | pcgcg | Symmetric iterative solver used by implicit or explicit operators. |
precond | MassMatrixPreconditioner | MassMatrixPreconditionerMassMatrixDiagonalPreconditionerNone | Preconditioner for the mass-matrix block. |
solver_params | None | SolverParameters | Solver controls; defaults to SolverParameters(). |
butcher | None | ButcherTableau | Explicit Runge-Kutta tableau when algo="explicit". |
Used by
Each model splits its time step into a sequence of propagators. This one appears in 4 models, at the position shown.