Field propagator

VariationalMagFieldEvolve

Advances u and b.

What it solves

FEEC discretization of the following equations:

find and such that

\begin{aligned} &\int_\Omega \partial_t (\rho \mathbf u) \cdot \mathbf v\,\textrm d \mathbf x - \int_\Omega \mathbf B \cdot \nabla \times (\mathbf \tilde{B} \times \mathbf v) \,\textrm d \mathbf x = 0 \qquad \forall \, \mathbf v \in (H^1)^3\,, \\[4mm] &\partial_t \mathbf B + \nabla \cdot ( \mathbf \tilde{B} \times \mathbf u ) = 0 \,. \end{aligned}

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

On the logical domain:

It is discretized as

\begin{align} &\mathbb M^v[\hat{\rho}_h^{n}] \frac{ \mathbf u^{n+1}-\mathbf u^n}{\Delta t} - (\mathbb C \hat{\Pi}^{1}[B_h^{n+1}} \cdot \vec{\boldsymbol \Lambda}^v])^\top \mathbb M^2 B^{n+\frac{1}{2}} \big) = 0 ~ , \\[2mm] &\frac{\mathbf b^{n+1}- \mathbf b^n}{\Delta t} + \mathbb C \hat{\Pi}^{1}[\hat{B_h^{n}} \cdot \vec{\boldsymbol \Lambda}^v]] \mathbf u^{n+1/2} = 0 ~ , \end{align}

where 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
uFEECVariableH1vec
bFEECVariableHdiv

Options

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

OptionDefaultChoicesDescription
modelfullfullfull_plinearMagnetic-field evolution model variant.
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 1 model, at the position shown.