Field propagator
Magnetosonic
Advances n, u and p.
What it solves
FEEC discretization of the following equations:
find such that
Time discretization: Crank-Nicolson (implicit mid-point).
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 |
|---|---|---|
n | FEECVariable | L2 |
u | FEECVariable | HcurlHdivH1vec |
p | FEECVariable | L2 |
Options
Set these on the propagator in a parameter file, for example Magnetosonic.Options(u_space=...).
| Option | Default | Choices | Description |
|---|---|---|---|
u_space | Hdiv | HcurlHdivH1vec | FEEC space used for the velocity variable u. |
solver | pbicgstab | pbicgstabbicgstabgmres | Iterative solver used by SchurSolver. |
precond | MassMatrixPreconditioner | MassMatrixPreconditionerMassMatrixDiagonalPreconditionerNone | Preconditioner applied to the mass matrix block associated with u_space. |
solver_params | None | SolverParameters | Iterative-solver controls. If None, defaults to SolverParameters(). |
Used by
Each model splits its time step into a sequence of propagators. This one appears in 4 models, at the position shown.