Field propagator

MagnetosonicUniform

Advances n, u and p.

What it solves

FEEC discretization of the following equations:

find such that

time_discret: Crank-Nicolson (implicit mid-point). System size reduction via struphy.linear_algebra.schur_solver.SchurSolver:

where is a weighted mass matrix in 2-space, the weight being the MHD equilibirum density . Furthermore, is the basis projection operator given by :

The solution of the above system is based on the Schur complement.

Decoupled density update:

Variables it advances

The variables this step updates over a time step dt, and the discrete spaces each one accepts.

NameKindAccepted spaces
nFEECVariableL2
uFEECVariableHcurlHdivH1vec
pFEECVariableL2

Options

Set these on the propagator in a parameter file, for example MagnetosonicUniform.Options(solver=...).

OptionDefaultChoicesDescription
solverpbicgstabpbicgstabbicgstabgmresIterative solver used by SchurSolver.
precondMassMatrixPreconditionerMassMatrixPreconditionerMassMatrixDiagonalPreconditionerNonePreconditioner applied to the M2n block.
solver_paramsNoneSolverParametersIterative-solver controls. If None, defaults to SolverParameters().

Used by

Each model splits its time step into a sequence of propagators. This one appears in 1 model, at the position shown.