Poisson equation¶
The elliptic side of pops is a Poisson-type problem solved once per time step. Its solution, the
potential phi, is read back by the hyperbolic blocks through the aux channel, which is what closes
the coupling between transport and field. This page explains what the equation is, what its right-hand
side and boundary conditions mean, and where it sits in a step. It does not cover the solvers; for
geometric multigrid, the spectral FFT path, and the matrix-free Krylov path see the
advanced section.
What the equation is¶
The core advances a hyperbolic part U and shares an elliptic part phi. In its most general form the
elliptic equation is a screened, variable-coefficient operator:
With eps = 1 and kappa = 0 this is the plain Poisson equation Lap phi = f(U), the constant-coefficient
5-point Laplacian. The generalizations are opt-in and stay bit-identical to plain Poisson when their
coefficient is left unset. A kappa >= 0 reaction term turns it into a screened (Helmholtz) operator,
for example Debye screening with kappa = 1 / lambda_D^2. A space-varying eps(x) models a dielectric
medium, and a diagonal diag(eps_x, eps_y) an anisotropic one. A full anisotropic tensor with cross
terms A_xy, A_yx also exists; it arises from Schur condensation of a stiff Lorentz source, not from a
physical permittivity.
The operator is shared across blocks: every block contributes to the same phi, and there is one
elliptic solve per step regardless of how many blocks couple to it.
The right-hand side f(U)¶
The right-hand side f(U) is what each block contributes to the field. It is the elliptic_rhs(U)
function of a model: a pointwise formula, evaluated from the current state, that says how this block
sources the potential. The system Poisson sums the contributions of all blocks before solving.
Common choices express the physical role of the field:
Contribution |
Formula |
Meaning |
|---|---|---|
charge density |
|
electrostatic potential of a charge |
neutralizing background |
|
deviation from a fixed background |
self-gravity / plasma |
|
|
Because f is a function of the evolving state, the field is not static: it is recomputed each step from
the freshly advanced U. The sign convention matters. Self-gravity and electrostatics differ only by the
sign of the coupling, which is why one parameter selects between them.
Boundary conditions¶
The boundary conditions decide what phi means at the edge of the domain, and they constrain which
solver applies.
Periodic boundaries make the operator translation-invariant. On a periodic constant-coefficient domain
the Laplacian is diagonal in Fourier, so the spectral path solves it exactly. Periodicity also imposes a
gauge: the k = 0 mode is fixed, so phi has zero mean. The right-hand side must then also have zero
mean, otherwise the potential drifts with no steady solution.
Dirichlet boundaries pin phi to a prescribed value, for example a conductor held at a potential. A
non-aligned conductor wall (a circular electrode, a diocotron ring edge) is not a grid staircase: a
Shortley-Weller cut-cell places the Dirichlet condition at the true interface position rather than at the
nearest cell face, recovering second order where a 0/1 mask would fall to first order.
Where it sits in a step¶
The elliptic equation is the coupling seam. The hyperbolic blocks read the field, never the field
equation directly: a block sees only phi and its gradient grad_x, grad_y through the aux channel.
Drift transport reads aux in its flux (the ExB velocity is built from grad phi); a self-gravitating
fluid reads aux in its source (the force is -rho grad phi). The same spatial operator serves both,
which is the point of routing the field through aux.
Within a step the field is solved once, then re-read by aux. That single solve has a consequence for
accuracy: a Poisson solved once per step caps the global time order at one for the coupled field, whatever
high-order Runge-Kutta runs on the hyperbolic side. A Strang-split scheme that wants order two has to
re-solve the elliptic between the source half-steps, or the second half-step reads a stale phi. This
trade-off, the cost of an extra solve against the order gained, is why the solve cadence is a deliberate
choice rather than a fixed rule.