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.
| Name | Kind | Accepted spaces |
|---|---|---|
e | FEECVariable | Hcurl |
ions | PICVariable | Particles6DDeltaFParticles6D |
Options
Set these on the propagator in a parameter file, for example EfieldWeightsCoupling.Options(alpha=...).
| Option | Default | Choices | Description |
|---|---|---|---|
alpha | 1 | float | Coupling scaling factor used in the electric-field equation. |
kappa | 1 | float | Coupling scaling factor used in the particle-weight update. |
solver | pcg | pcgcg | Symmetric iterative solver used by SchurSolver. |
precond | MassMatrixPreconditioner | MassMatrixPreconditionerMassMatrixDiagonalPreconditionerNone | Preconditioner applied to the electric-field mass matrix block. |
solver_params | None | SolverParameters | Iterative-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.