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.

NameKindAccepted spaces
eFEECVariableHcurl
bFEECVariableHdiv

Options

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

OptionDefaultChoicesDescription
algoimplicitimplicitexplicitTime stepping scheme to use for the Maxwell equations.
solverpcgpcgcgName of the symmetric iterative solver passed to inverse.
precondMassMatrixPreconditionerMassMatrixPreconditionerMassMatrixDiagonalPreconditionerNoneName of the preconditioner configuration. Currently used only for implicit time stepping.
solver_paramsNoneSolverParametersIterative-solver controls (for example tol, maxiter, verbose, info, recycle). If None, defaults to SolverParameters().
butcherNoneButcherTableauButcher 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.