Coupling propagator

EfieldWeightsCoupling

Advances e and ions.

What it solves

Solves the following substep

which after discretization and in curvilinear coordinates reads

This is solved using the Crank-Nicolson method

where

based on the struphy.linear_algebra.schur_solver.SchurSolver.

The accumulation matrix and vector assembled in struphy.pic.accumulation.particles_to_grid.Accumulator are

Variables it advances

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

NameKindAccepted spaces
eFEECVariableHcurl
ionsPICVariableParticles6DDeltaFParticles6D

Options

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

OptionDefaultChoicesDescription
alpha1floatCoupling scaling factor used in the electric-field equation.
kappa1floatCoupling scaling factor used in the particle-weight update.
solverpcgpcgcgSymmetric iterative solver used by SchurSolver.
precondMassMatrixPreconditionerMassMatrixPreconditionerMassMatrixDiagonalPreconditionerNonePreconditioner applied to the electric-field mass matrix block.
solver_paramsNoneSolverParametersIterative-solver controls. If None, defaults to SolverParameters().

Used by

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