Field propagator

VariationalDensityEvolve

Advances rho and u.

What it solves

FEEC discretization of the following equations:

find and such that

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

In the case of linear model, the second equation is not updated.

On the logical domain:

where depends on the chosen model. It is discretized as

where denotes the vector representing the linear form , that is the vector with components

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

Variables it advances

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

NameKindAccepted spaces
rhoFEECVariableL2
uFEECVariableH1vec

Options

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

OptionDefaultChoicesDescription
modelbarotropicpressurelessbarotropicfullfull_pfull_qlineardeltaflinear_qdeltaf_qDensity/thermodynamic model variant.
gamma1.66667floatAdiabatic index.
solverpcgpcgcgLinear solver for implicit substeps.
precondMassMatrixPreconditionerMassMatrixPreconditionerMassMatrixDiagonalPreconditionerNonePreconditioner used in linear solves.
solver_paramsNoneSolverParametersLinear-solver controls.
nonlin_solverNoneNonlinearSolverParametersNonlinear iteration controls.

Used by

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