Coupling propagator
CurrentCoupling6DCurrent
Advances ions and u.
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.
| Name | Kind | Accepted spaces |
|---|---|---|
ions | PICVariable | Particles6D |
u | FEECVariable | HcurlHdivH1vec |
Options
Set these on the propagator in a parameter file, for example CurrentCoupling6DCurrent.Options(u_space=...).
| Option | Default | Choices | Description |
|---|---|---|---|
u_space | Hdiv | HcurlHdivH1vec | FEEC space used for the unknown u variable. |
solver | pcg | pcgcg | Symmetric iterative solver used by SchurSolver. |
precond | MassMatrixPreconditioner | MassMatrixPreconditionerMassMatrixDiagonalPreconditionerNone | Preconditioner applied to the FEEC mass matrix block. |
solver_params | None | SolverParameters | Iterative-solver controls. If None, defaults to SolverParameters(). |
filter_params | None | FilterParameters | Particle-to-grid filtering parameters used by the accumulator. |
boundary_cut | (0.0, 0.0, 0.0) | tuple | Boundary clipping parameters forwarded to accumulation/pushing kernels. |
Used by
Each model splits its time step into a sequence of propagators. This one appears in 1 model, at the position shown.