Field propagator

ImplicitDiffusion

Advances phi.

What it solves

Weak, implicit discretization of the diffusion (or heat) equation (can be used as a Poisson solver too).

Find such that

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

where and are WeightedMassOperators and are artificial parameters that can be tuned to change the model (see Notes).

Variables it advances

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

NameKindAccepted spaces
phiFEECVariableH1

Options

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

OptionDefaultChoicesDescription
sigma_11floatCoefficient multiplying the stabilization/mass contribution on the left-hand side. With divide_by_dt=True it is interpreted as sigma_1 / dt in the assembled linear system.
sigma_20floatCoefficient multiplying the previous solution contribution stab_mat * phi^n on the right-hand side. With divide_by_dt=True it is interpreted as sigma_2 / dt.
sigma_31floatCoefficient multiplying the source terms rho on the right-hand side. With divide_by_dt=True it is interpreted as sigma_3 / dt.
divide_by_dtFalseboolIf True, divide sigma_1, sigma_2 and sigma_3 by the time step passed to __call__(dt) before assembling the system.
stab_matM0M0M0adIdStabilization operator used in the term weighted by sigma_1 and sigma_2.
diffusion_matM1M1M1perpDiffusion metric in the bilinear form grad.T @ diffusion_mat @ grad. You can pass the name of a pre-built operator in mass_ops or a custom WeightedMassOperator compatible with the codomain of grad.
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().
filter_paramsNonedictIf not None, specifies a filter to the accumulation of a specific variable. Keyed by the pic_variable of the corresponding ParticlesToGrid source in rho.

Used by

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