Field propagator

VariationalQBEvolve

Advances q, u and b.

What it solves

FEEC discretization of the following equations:

find , and such that

Where (resp. ) is either (resp. ) for full-f models, (resp. ) for linear models or (resp. ) for models.

On the logical domain:

It is discretized as

with

where weights in the the struphy.feec.basis_projection_ops.BasisProjectionOperator and the struphy.feec.mass.WeightedMassOperator are given by

and is struphy.feec.basis_projection_ops.BasisProjectionOperators.

Variables it advances

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

NameKindAccepted spaces
qFEECVariableL2
uFEECVariableH1vec
bFEECVariableHdiv

Options

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

OptionDefaultChoicesDescription
modelfull_qfull_qlinear_qdeltaf_qCoupled q-B evolution model variant.
gamma1.66667floatAdiabatic index.
solverpcgpcgcgLinear solver for implicit substeps.
precondMassMatrixPreconditionerMassMatrixPreconditionerMassMatrixDiagonalPreconditionerNonePreconditioner used in linear solves.
solver_paramsNoneSolverParametersLinear-solver controls.
nonlin_solverNoneNonlinearSolverParametersNonlinear/Picard iteration controls.

Used by

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