Coupling propagator

PressureCoupling6D

Advances u and energetic_ions.

What it solves

FEEC discretization of the following equations:

find and such that

time_discret: Crank-Nicolson (implicit mid-point). 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
uFEECVariableHcurlHdivH1vec
energetic_ionsPICVariableParticles6D

Options

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

OptionDefaultChoicesDescription
ep_scale1floatScaling factor applied to energetic-particle pressure coupling terms.
u_spaceHdivHcurlHdivH1vecFEEC space used for the unknown u variable.
solverpcgpcgcgSymmetric iterative solver used by SchurSolver.
precondMassMatrixPreconditionerMassMatrixPreconditionerMassMatrixDiagonalPreconditionerNonePreconditioner applied to the mass matrix block for u.
solver_paramsNoneSolverParametersIterative-solver controls. If None, defaults to SolverParameters().
filter_paramsNoneFilterParametersParticle-to-grid filtering parameters used by the accumulator. If None, defaults to FilterParameters().
use_perp_modelTrueboolIf True, use the perpendicular pressure-coupling model; otherwise use the full-model kernels.

Used by

Each model splits its time step into a sequence of propagators. This one appears in 1 model, at the position shown.