Physics model and equations
dkx solves a radially local, steady-state drift-kinetic problem on a single flux surface. This page summarizes the governing model, the main approximations, and how the physics terms map onto the discretized operators documented in Drift-kinetic equation and system of equations, Geometry models and loading, and Numerics and algorithms. For full derivations and code-location detail, see Physics reference: the radially local drift-kinetic model and Source-code map.
Model overview
dkx evolves the non-adiabatic perturbation \(f_{s1}\) about a Maxwellian background \(f_{s0}\) on a single flux surface:
In normalized variables, the linearized drift-kinetic equation (DKE) can be written as
where the operator \(\mathcal{L}_s\) includes streaming, mirror force, \(E\times B\) drifts, magnetic drifts, energy/pitch-angle drift terms, and the linearized collision operator. The source \(S_s\) contains thermodynamic drives, the inductive electric field, and the RHSMode-specific forcing used in transport matrix calculations. [1]
Background distribution and normalized variables
The code uses the normalized variables
with a background state
or, when the flux-surface-varying potential is included,
The normalization conventions used for hats and dimensionless drives are summarized in
Normalizations and units. These conventions matter directly for the coefficients assembled by
the consolidated dkx.drift_kinetic.KineticOperator and the diagnostics
written by dkx.writer.
Geometry and guiding-center drifts
The guiding-center drifts can be expressed (in physical variables) as
and the \(E\times B\) drift as
SFINCS evaluates the geometric coefficients using Boozer-like straight-field-line
coordinates (especially for geometryScheme=11/12), and the discrete operator
uses those coefficients to build the drift terms in the DKE. [2]
Collision operators
SFINCS Fortran v3 supports two collision models, and dkx adds a third:
Pitch-angle scattering (PAS) (
collisionOperator = 1): a diagonal-in-\(L\) operator used for reduced models and benchmark suites.Full linearized Fokker–Planck (Landau) (
collisionOperator = 0): implemented via Rosenbluth potentials and dense coupling in the speed coordinate. This is the default for high-fidelity multispecies studies.Improved Sugama model operator (
collisionOperator = 3): the momentum- and energy-conserving improved linearized model operator of Sugama et al. (2019), a dkx research extension beyond Fortran v3 that remains accurate into the highly collisional regime.
The linearized FP operator is the most accurate model for neoclassical transport in SFINCS and is the basis for the collision-driven preconditioners used in dkx. [1]
Constraint closure and source/sink terms
The discrete linear system is closed by auxiliary constraints. In the common linear formulation these are equivalent to enforcing
with optional quasineutrality and gauge conditions when \(\Phi_1\) is solved:
These conditions remove nullspaces associated with conservation laws and determine the algebraic branch selected by the solve.
Phi1 and quasineutrality
When includePhi1 = .true., SFINCS solves for the flux-surface variation of the
electrostatic potential \(\Phi_1(\theta,\zeta)\) via a quasineutrality constraint.
The resulting potential modifies the kinetic equation and the collision operator
through poloidal density variations. This physics is especially important for impurity
transport and flows in stellarators. [3]
Transport coefficients
Transport-matrix modes (RHSMode=2/3) solve the same linearized DKE with multiple
right-hand sides and postprocess the solutions into particle/heat fluxes and FSAB
flows. These coefficients are the basis for neoclassical transport predictions and
bootstrap current calculations in SFINCS. [1]
The main moments of interest are built from velocity-space and flux-surface integrals, schematically
dkx evaluates these moments in dkx.moments (with
geometry-derived scalars in dkx.magnetic_geometry).
Trajectory-model knobs
The physical model is intentionally configurable. The most important switches are:
magneticDriftSchemefor magnetic-drift terms,useDKESExBDriftfor DKES-like vs full \(E\times B\) advection,includeXDotTermand the corresponding \(\dot \xi\) electric-field term,collisionOperatorfor PAS vs full FP,includePhi1/includePhi1InKineticEquation/includePhi1InCollisionOperatorfor flux-surface-varying electrostatic physics.
The detailed switch-to-equation map is given in Drift-kinetic equation and system of equations.
Implementation notes
Term-by-term input switches are documented in Drift-kinetic equation and system of equations.
Discretization details (Legendre modes, \(x\) grid, angular finite differences) are summarized in Method overview and Numerics and algorithms.
Normalizations for all hat variables are listed in Normalizations and units.
Source-file locations for the main operators are listed in Source-code map.