Field propagator
MaxwellWeakAmpere
Advances e and b.
What it solves
FEEC discretization of the following equations:
find and such that
Time discretization:
- implicit: Crank-Nicolson (implicit mid-point)
- explicit: explicit RK methods from ButcherTableau
System size reduction via struphy.linear_algebra.schur_solver.SchurSolver.
Variables it advances
The variables this step updates over a time step dt, and the discrete spaces each one accepts.
| Name | Kind | Accepted spaces |
|---|---|---|
e | FEECVariable | Hcurl |
b | FEECVariable | Hdiv |
Options
Set these on the propagator in a parameter file, for example MaxwellWeakAmpere.Options(algo=...).
| Option | Default | Choices | Description |
|---|---|---|---|
algo | implicit | implicitexplicit | Time stepping scheme to use for the Maxwell equations. |
solver | pcg | pcgcg | Name of the symmetric iterative solver passed to inverse. |
precond | MassMatrixPreconditioner | MassMatrixPreconditionerMassMatrixDiagonalPreconditionerNone | Name of the preconditioner configuration. Currently used only for implicit time stepping. |
solver_params | None | SolverParameters | Iterative-solver controls (for example tol, maxiter, verbose, info, recycle). If None, defaults to SolverParameters(). |
butcher | None | ButcherTableau | Butcher tableau for explicit Runge-Kutta methods. Only used when algo="explicit". If None, defaults to ButcherTableau(). |
Used by
Each model splits its time step into a sequence of propagators. This one appears in 5 models, at the position shown.