Field propagator

CurlCurlSolve

Advances e.

What it solves

Weak discretization of the curl-curl problem.

Find such that

where are real-valued and is a scalar. Boundary terms from integration by parts are assumed to vanish. The equation is discretized as

where and are WeightedMassOperators and is the vector of coefficients of the projection of into the discrete space .

Variables it advances

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

NameKindAccepted spaces
eFEECVariableHcurl

Options

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

OptionDefaultChoicesDescription
sigma1floatCoefficient multiplying the stabilization/mass contribution on the left-hand side.
stab_matM1M1IdStabilization operator used in the term weighted by sigma.
diffusion_matM2M2Diffusion metric in the bilinear form curl.T @ diffusion_mat @ curl. You can pass the name of a pre-built operator in mass_ops or a custom WeightedMassOperator compatible with the codomain of curl.
x0NoneStencilVectorInitial guess for the iterative linear solver.
solverpcgpcgcgName of the symmetric iterative solver passed to inverse.
precondMassMatrixPreconditionerMassMatrixPreconditionerMassMatrixDiagonalPreconditionerNoneName of the preconditioner configuration. Currently this class sets pc=None internally, so this option is reserved for compatibility and future extensions.
solver_paramsNoneSolverParametersIterative-solver controls (for example tol, maxiter, verbose, info, recycle). If None, defaults to SolverParameters().

Used by

No model in the catalogue currently composes this propagator — it is available for building new models.