Operators And Terms
This page documents the implemented operator set in SPECTRAX-GK and ties each term to its runtime parameters and source files.
State And Coupled Variable
For each species \(s\), SPECTRAX-GK evolves Laguerre-Hermite moments \(G^{(s)}_{\ell m}(k_x,k_y,z,t)\). The field-coupled variable used by the linear operator is
with \(J_\ell^B = J_\ell + J_{\ell-1}\).
In the explicit-time reference-compatible path, streaming is applied to the GX-compatible streamed variable built from the same field terms before the Hermite ladder is taken.
Source mapping:
src/spectraxgk/linear.pysrc/spectraxgk/terms/fields.pysrc/spectraxgk/terms/assembly.py
Implemented Linear Operator
The assembled RHS is
Every term has a matching multiplicative weight in TermConfig and
RuntimeTermsConfig.
Gyroaverage And Bessel Factors
The Laguerre gyroaverage coefficients are
Nonlinear electromagnetic terms additionally use \(J_0(\alpha)\) and \(J_1(\alpha)\) on the quadrature grid.
Source mapping:
src/spectraxgk/gyroaverage.pysrc/spectraxgk/terms/nonlinear.py
Streaming
The Hermite ladder streaming term is
where \(X\) denotes either \(H\) or the benchmark-compatible streamed variable, depending on the solver path.
Controls:
LinearParams.kpar_scaleRuntimeTermsConfig.streamingboundary/link metadata from the geometry/grid
Mirror
The mirror term uses \(b'(z)\) and couples both Laguerre and Hermite indices:
Curvature And Grad-B
The drift terms are
Controls:
LinearParams.omega_d_scaleRuntimeTermsConfig.curvatureRuntimeTermsConfig.gradb
Diamagnetic Drive
The diamagnetic drive acts through density and temperature-gradient couplings in the low Hermite moments. In code it drives:
m=0through density and perpendicular-energy combinations,m=2through temperature-gradient coupling,m=1andm=3for electromagneticA_parallelterms when enabled.
Controls:
LinearParams.omega_star_scaleLinearParams.R_over_LnLinearParams.R_over_LTiRuntimeTermsConfig.diamagnetic
Collisions
The implemented collisional model is a Lenard-Bernstein-style diagonal damping plus conservation-restoring low-order moment corrections.
Base damping:
where lb_lam is the cached Hermite/Laguerre collision eigenvalue.
The code then reconstructs low moments:
and a temperature-like correction \(\bar{T}\) from m=0 and m=2.
These are added back only into the m=0,1,2 channels.
Controls:
RuntimePhysicsConfig.collisionsRuntimeTermsConfig.collisionsRuntimeSpeciesConfig.nuRuntimeCollisionConfig.nu_hermiteRuntimeCollisionConfig.nu_laguerre
Hypercollisions
SPECTRAX-GK implements three Hermite/Laguerre hypercollision branches and an optional \(|k_z|\)-scaled branch:
Controls:
RuntimePhysicsConfig.hypercollisionsRuntimeTermsConfig.hypercollisionsRuntimeCollisionConfig.nu_hyperRuntimeCollisionConfig.nu_hyper_lRuntimeCollisionConfig.nu_hyper_mRuntimeCollisionConfig.nu_hyper_lmRuntimeCollisionConfig.p_hyperRuntimeCollisionConfig.p_hyper_lRuntimeCollisionConfig.p_hyper_mRuntimeCollisionConfig.p_hyper_lmRuntimeCollisionConfig.hypercollisions_constRuntimeCollisionConfig.hypercollisions_kz
Hyperdiffusion And End Damping
The perpendicular hyperdiffusion term is
masked by the dealias region.
The field-line end damping is
Controls:
RuntimeTermsConfig.hyperdiffusionRuntimeCollisionConfig.D_hyperRuntimeCollisionConfig.p_hyper_kperpRuntimeCollisionConfig.damp_ends_ampRuntimeCollisionConfig.damp_ends_widthfracRuntimeCollisionConfig.damp_ends_scale_by_dt
Nonlinear \(E \\times B\) And Flutter
The nonlinear bracket is evaluated pseudospectrally:
The electrostatic nonlinear term is
and the electromagnetic flutter contribution couples adjacent Hermite moments:
Controls:
TimeConfig.gx_real_fftTimeConfig.laguerre_nonlinear_modeTimeConfig.nonlinear_dealiasRuntimeTermsConfig.nonlinear
Source Mapping
linear term kernels:
src/spectraxgk/terms/linear_terms.pynonlinear term kernels:
src/spectraxgk/terms/nonlinear.pyassembly:
src/spectraxgk/terms/assembly.pylow-level parameter container:
src/spectraxgk/linear.pyruntime parameter surface:
src/spectraxgk/runtime_config.py
Parameter Surface
The primary parameter groups are:
RuntimePhysicsConfigRuntimeCollisionConfigRuntimeNormalizationConfigRuntimeTermsConfigLinearParams
For TOML syntax and all supported keys, see Input Files and Executable.