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.
| Name | Kind | Accepted spaces |
|---|---|---|
u | FEECVariable | H1vec |
b | FEECVariable | Hdiv |
Options
Set these on the propagator in a parameter file, for example VariationalMagFieldEvolve.Options(model=...).
| Option | Default | Choices | Description |
|---|---|---|---|
model | full | fullfull_plinear | Magnetic-field evolution model variant. |
solver | pcg | pcgcg | Linear solver for implicit substeps. |
precond | MassMatrixPreconditioner | MassMatrixPreconditionerMassMatrixDiagonalPreconditionerNone | Preconditioner used in linear solves. |
solver_params | None | SolverParameters | Linear-solver controls. |
nonlin_solver | None | NonlinearSolverParameters | Nonlinear 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.