ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
orb5x Namespace Reference

Public C++ interface of the ORB5X gyrokinetic application. More...

Namespaces

namespace  epilogue
 Free-function compatibility wrappers for the run epilogue.
 
namespace  pputil
 Free-function compatibility wrappers for Pputil.
 
namespace  profiler
 Profiling facilities implemented by the profiler module.
 
namespace  QuadtreeConstants
 One-based row identifiers inherited from the Fortran particle buffer.
 
namespace  readinput
 Compatibility call surface for the input-reader module.
 
namespace  spclibs
 

Classes

class  AntennaModule
 Builds and advances the externally imposed antenna potential. More...
 
struct  AntennaVariables
 Spectral and radial definition of an externally imposed field antenna. More...
 
class  BackgroundModule
 Initializes equilibrium distribution functions used by marker loading and pushing. More...
 
struct  BasicVariables
 Top-level run control shared by initialization and the time loop. More...
 
struct  BcpartReducer
 Kokkos reduction value for inner/outer radial particle losses. More...
 
class  BSpline
 Evaluates the one-dimensional basis functions used by the solver. More...
 
struct  BSplineEval
 Values and absolute grid indices of one one-dimensional basis evaluation. More...
 
struct  BSplineEval3D
 Tensor-product basis data for the \((s,\chi,\varphi)\) field grid. More...
 
class  BSplinesBasis
 B-spline basis module for the solver. More...
 
struct  BumpontailFeq
 Parameters of the energetic-particle bump-on-tail distribution. More...
 
struct  CdtFeq
 Parameters of the experimental Claudio Di Troya equilibrium distribution. More...
 
class  CollisionsModule
 Applies linearized and nonlinear Langevin representations of the Landau collision operator. More...
 
struct  CollisionsVariables
 Grid and cadence shared by the selected Monte-Carlo collision model. More...
 
class  ComIsland
 Shared B-spline storage for prescribed magnetic-island fields. More...
 
struct  ContiEq
 Matrix numbers contributing to the electron continuity equation. More...
 
class  ControlAll
 Coordinate the complete lifetime of an ORB5X simulation. More...
 
struct  Diag3dParameters
 Configuration used to initialize distributed three-dimensional output. More...
 
class  DiagnosticBSpline
 Writes mode-resolved B-spline fields and kinetic moments to HDF5. More...
 
class  Diagnostics
 Owns diagnostic accumulation, MPI reduction, normalization, and HDF5 output. More...
 
struct  DiagnosticsVariables
 Derived work arrays used by distribution and moment diagnostics. More...
 
struct  DiagVariables
 User-selected diagnostic cadence, grids, windows, and run counters. More...
 
class  EfluidModule
 Advances the reduced FLU-ORB electron density, parallel flow, pressure, and Ohm response. More...
 
class  Epilogue
 Coordinates collective run termination and resource teardown. More...
 
class  Equil
 Owns the axisymmetric magnetic equilibrium, flux coordinates, and species background profiles used throughout ORB5X. More...
 
struct  EquilVariables
 Magnetic-equilibrium inputs and geometry-derived normalization data. More...
 
class  FFTWrapper
 Host FFTW transforms and Kokkos/FFTW layout conversion. More...
 
class  FieldsModule
 Coordinates charge/current deposition, spectral filtering, field solves, and interpolation. More...
 
struct  FieldsVariables
 Field mesh, Fourier filtering, and background-electric-field state. More...
 
struct  FieldType
 Storage and per-species access metadata for one scalar field. More...
 
struct  FilterSaw
 Toroidal-mode-dependent poloidal filters for sawtooth studies. More...
 
class  FourierFilter
 Fourier filter for field-aligned modes. More...
 
class  GyrodensityCorrect
 Placeholder interface for the finite-Larmor-radius density correction. More...
 
class  Gyropoints
 Generates equally spaced quadrature points on a marker gyro-orbit. More...
 
struct  InitializeGene
 Geometry of the GENE-compatible initial perturbation. More...
 
struct  InitializeLigka
 Mode numbers and envelope for the LIGKA-L5 perturbation initializer. More...
 
struct  InitializeSaw
 Radial support and analysis step for the SAW perturbation initializer. More...
 
struct  InitializeWeights
 Spectral envelope used to initialize a potential perturbation. More...
 
class  InterfaceSolverInOrb5
 Interface for solver integration in ORB5X. More...
 
class  IslandModule
 Builds and evaluates a prescribed static helical magnetic-island perturbation. More...
 
struct  IslandsVariables
 Parameters for the prescribed helical magnetic-island perturbation. More...
 
class  LarmorModule
 Generate and manage gyroaveraging points around particle guiding centers. More...
 
struct  MarkerType
 Per-species storage for finite-Larmor-radius quadrature points. More...
 
class  MassMatrix
 Constructs small element-local B-spline overlap operators. More...
 
struct  MatArray
 Sparse associative equivalent of the Fortran two-dimensional matrix array. More...
 
class  MathUtil
 Provides solver quadrature, indexing, RNG, and radial-boundary transforms. More...
 
struct  MatPropertyTemplate
 Mode-independent construction policy for one matrix number. More...
 
class  MatrixCoeff
 Evaluate weak-form coefficients for ORB5X field matrices. More...
 
class  Moments
 Deposits gyrokinetic and drift-kinetic velocity moments for spectral diagnostics. More...
 
struct  Moments3DClass
 Metadata identifying one configured three-dimensional particle moment. More...
 
struct  NoiseControlInt
 Pivot workspace for one moment-conservation linear system. More...
 
struct  NoiseControlMatrix
 Per-species normal equations for moment-conserving source corrections. More...
 
struct  NumericalF0
 Tabulated numerical equilibrium distribution on (psi,u,ze). More...
 
struct  OhmEq
 Electrostatic-potential matrix numbers in the Ohm equation. More...
 
class  OneStep
 Executes one four-stage, operator-split gyrokinetic timestep. More...
 
struct  PackSendBufferFunctor
 Kokkos-compatible real-attribute packing functor. More...
 
struct  PairHash
 Hashes (global toroidal mode, matrix number) keys. More...
 
struct  ParallelVariables
 MPI topology, communicator ownership, and host-thread settings. More...
 
class  ParMove
 Migrate complete marker records between toroidal spatial subdomains. More...
 
class  PartFieldsModule
 Deposits particle moments to the field grid and gathers spline fields back to particle positions. More...
 
class  ParticleModule
 Own particle state and orchestrate marker loading, push, migration, and deposition. More...
 
struct  ParticleParallelFunctor
 Adapt an arbitrary particle operation to a Kokkos range kernel. More...
 
class  Pdespline
 Shared B-spline quadrature, projection, rebasing, and boundary support. More...
 
struct  PointerMarkers
 Owning double-precision marker matrix [particle][property]. More...
 
struct  PointerMarkersI8
 Owning signed 64-bit marker-property matrix, primarily particle IDs. More...
 
struct  PointerMarkersLogic
 Owning logical marker-property matrix. More...
 
struct  PointerMarkersR4
 Owning single-precision diagnostic marker matrix. More...
 
struct  PointerQuadtree
 Per-species work storage for phase-space quadtree smoothing. More...
 
class  Pputil
 Process topology, collective communication, guard exchange, and timing. More...
 
struct  PressEq
 Electrostatic-potential matrix numbers in the pressure equation. More...
 
class  ProfilesWrapper
 Wrapper for profile and geometry functions used by solver. More...
 
class  ProfileUpdate
 Accumulates time-windowed distribution moments for collisional profile evolution. More...
 
struct  PszsGrid
 One coordinate axis of a phase-space zonal-structure grid. More...
 
class  PszsModule
 Reconstructs phase-space zonal structures with tensor-product B-splines. More...
 
struct  PszsVariables
 Per-species B-spline representation for PSZS diagnostics. More...
 
class  Quadtree
 Applies local velocity-space smoothing to marker weights. More...
 
struct  QuadtreeBox
 Axis-aligned leaf or internal node in \((v_\parallel,v_\perp)\). More...
 
struct  QuadtreeSmooth
 Controls phase-space quadtree smoothing for one species. More...
 
class  RandomColl
 Supplies reproducible MPI-aware random streams for collisions and sources. More...
 
class  RandomGenerator
 Deterministic ORB5 pseudo-random stream and seed jump operations. More...
 
class  ReadInput
 Read, validate, report, and persist ORB5-compatible input namelists. More...
 
struct  SlowingdownFeq
 Parameters and derived scales of slowing-down distributions. More...
 
class  SolverBoundaryConditions
 Applies the radial/poloidal boundary constraints used by field solves. More...
 
class  SolverModule
 Main solver module for matrix assembly and solving Handles LHS matrix assembly, RHS assembly, and backsolving. More...
 
struct  SolverVariables
 Numerical and physical choices for quasineutrality and Ampere solves. More...
 
class  SortingClass
 Build and apply spatial permutations for marker-data locality. More...
 
struct  SortingVariables
 Marker binning configuration for locality-oriented Kokkos sorting. More...
 
class  SourcesModule
 Applies profile heating, noise control, imposed flow, and edge-buffer source operators. More...
 
struct  SpeciesVariables
 Complete physical, loading, source, and push state for one species. More...
 
struct  UnpackReceiveBufferFunctor
 Kokkos-compatible real-attribute receive-unpacking functor. More...
 
class  Util
 Small host-side numerical, interpolation, fitting, and I/O utilities. More...
 
class  Vis3d
 Builds and writes distributed curvilinear diagnostic meshes. More...
 
struct  Zbmat
 One complex field matrix and its boundary/factorization metadata. More...
 

Typedefs

using Complex = std::complex< Real >
 Complex simulation scalar with Real components.
 
using CoordFunc = std::function< void(Real s, Real chi, Real &phi, Real &x, Real &y, Real &z)>
 Coordinate transform from ORB5 coordinates to visualization space.
 
using fftw_complex_type = fftw_complex
 FFTW double-precision complex storage used by the compatibility routines.
 
using fftw_plan_type = fftw_plan
 Opaque FFTW plan handle; caller-created plans must be passed to destroy_plan().
 
using FieldFunc = std::function< void(Real x, Real y, Real z, Real &field)>
 Scalar-field sampler evaluated on the diagnostic coordinate grid.
 
using Int4 = int32_t
 Signed integer type with exactly 32 bits.
 
using Int8 = int64_t
 Signed integer type with exactly 64 bits, used for marker counts.
 
using Real = double
 Default floating-point type for normalized physics and numerics.
 
using Real32 = float
 Explicit IEEE-like single-precision storage type.
 
using Real64 = double
 Explicit IEEE-like double-precision storage type.
 

Enumerations

enum class  CopyFields : int { PH1 = 0 , PH2 = 1 }
 Destination component for a split-potential field copy. More...
 
enum class  CreateRhs : int { PHI = 0 , APA = 1 }
 Field equation for which a right-hand side is assembled. More...
 
enum class  Diag3d : int { POT = 0 , DEN = 1 , MOMENT = 2 }
 Top-level family of three-dimensional diagnostics. More...
 
enum class  Diag3dDen : int { RHO = 0 , CURR = 1 }
 Deposited source written by the 3-D density diagnostic. More...
 
enum class  GetPotDisp : int {
  PHI = 0 , PH1 = 1 , PH2 = 2 , APA = 3 ,
  ASY = 4 , RHO = 5 , RHM = 6 , CUR = 7 ,
  EFN = 8 , EFP = 9 , EFU = 10 , AHA = 11
}
 Field or source quantity reconstructed by get_pot_disp diagnostics. More...
 
enum class  NSel3dDiag { DIAG_REAL = 0 , DIAG_RHS_F = 1 }
 Representation written by the single-field 3-D diagnostic. More...
 
enum class  NSelAmpere { ELECTROSTATIC = 0 , EM_GYROAPAR = 1 , EM_APAR = 2 }
 Electromagnetic content of the parallel Ampere solve. More...
 
enum class  NSelAntenna {
  ANT_OFF = 0 , ANT_RHO = 1 , ANT_JPAR = 2 , ANT_PHI = 3 ,
  ANT_APAR = 4
}
 Field source driven by the numerical antenna. More...
 
enum class  NSelAntennaRadialProfile { ANT_POLYNOMIAL = 0 , ANT_SIN = 1 , ANT_GAUSS = 2 , ANT_INTERP = 3 }
 Radial envelope of the numerical antenna. More...
 
enum class  NSelBacksolve { PHI = 0 , MASS = 1 , APAR = 2 , MOM = 3 }
 Quantity reconstructed by a field backsolve. More...
 
enum class  NSelBeamType { X_MODE = 0 , O_MODE = 1 }
 Electromagnetic polarization of the ECRH beam. More...
 
enum class  NSelBsplinesBasis { BSPLINES_ORIGINAL = 0 , BSPLINES_DEBOOR = 1 }
 Implementation used to evaluate the B-spline basis. More...
 
enum class  NSelBufferType { NO_BUFFER = 0 , NAIVE_KROOK_BUFFER = 1 , KROOK_CONS_BUFFER = 2 , COLLISION_BUFFER = 3 }
 Outer radial buffer operator. More...
 
enum class  NSelCollisions {
  NO_COLL = 0 , SELF_COLL_L = 1 , MULTI_COLL_L = 2 , SELF_COLL_NL = 3 ,
  MULTI_COLL_NL = 4
}
 Monte-Carlo collision operator. More...
 
enum class  NSelControlVariate { NO_CV = 0 , CORRECT_CURRENT = 1 }
 Current control-variate correction strategy. More...
 
enum class  NSelDftMethod { DFT_PPTRANSP = 0 , DFT_LOCAL = 1 }
 Toroidal discrete-Fourier-transform implementation. More...
 
enum class  NSelEfluid { NO_EFLUID = 0 , EFLUID_MHD = 1 , EFLUID_DEBUG = 2 }
 Electron-fluid closure model. More...
 
enum class  NSelElectronValues {
  ELECTRON_VALUES_ORB5 = 0 , ELECTRON_VALUES_LX_N = 1 , ELECTRON_VALUES_LX_BETA = 2 , ELECTRON_VALUES_T_N = 3 ,
  ELECTRON_VALUES_T_BETA = 4
}
 Input quantities from which electron normalization is inferred. More...
 
enum class  NSelF0 {
  MAXWELLIAN = 0 , BUMPONTAIL = 1 , SLOWINGDOWN = 2 , CDT = 3 ,
  CDTN = 4 , NUM_F0 = 5 , SLOWINGDOWN_BUMP = 6 , SLOWINGDOWN_PITCH = 7 ,
  SLOWINGDOWN_PITCH_G_BREF = 8 , SLOWINGDOWN_PITCH_O = 9 , SLOWINGDOWN_PITCH_O_NOCHI = 10 , BUMPONTAIL_O = 11 ,
  BUMPONTAIL_O_NOCHI = 12 , BUMPONTAIL_G_BREF = 13
}
 Equilibrium distribution function represented by a species. More...
 
enum class  NSelFilter {
  FILT_N = 0 , FILT_MN = 1 , FILT_MN_ONLY_FULL = 2 , FILT_SAW = 3 ,
  FILT_MN_N0M0 = 4
}
 Angular Fourier-mode filtering policy. More...
 
enum class  NSelFixedSourceType { SOURCE_BASIC = 0 , SOURCE_ECRH = 1 }
 Fixed heating/source operator. More...
 
enum class  NSelFixFields { NO_FIX_FIELDS = 0 , FIX_FIELDS_S2 = 1 , FIX_FIELDS_SIN2_CHI = 2 , FIX_FIELDS_SIN2_PHI = 3 }
 Analytic test pattern used to replace evolved fields. More...
 
enum class  NSelGBref { G_B0 = 0 , G_BMIN = 1 , G_BMAX = 2 }
 Magnetic-field value used to normalize energetic distributions. More...
 
enum class  NSelGetField { GET_FIELD_BY_PART = 0 , GET_FIELD_BY_CELL = 1 }
 Grid-to-particle field-interpolation kernel organization. More...
 
enum class  NSelGradp { GRAD_POL = 0 , GRAD_POL_CORR = 1 }
 Pressure-gradient discretization. More...
 
enum class  NSelGyr { ADAPT = 0 , FIXED = 1 , DK = 2 , ADAPT_NAVG = 3 }
 Gyroaveraging-point selection strategy. More...
 
enum class  NSelHeatsourceRadial { RADIAL_CODE = 0 , RADIAL_FILE = 1 }
 Source of the radial heat-deposition profile. More...
 
enum class  NSelHybridModel { NO_HYBRID_MODEL = 0 , HYBRID_MODEL_UPGRADE = 1 , STANDARD_HYBRID_MODEL = 2 }
 Kinetic trapped/passing hybrid model. More...
 
enum class  NSelInitPert {
  PERT_NOISE = 0 , PERT_MODE_UNCORRECTED = 1 , PERT_MODE = 2 , PERT_MODE_TAE = 3 ,
  PERT_MODE_SAW = 4 , PERT_D_COS = 5 , PERT_D_SIN = 6 , PERT_RH_COS = 7 ,
  PERT_RH_SIN = 8 , PERT_RH_SIN_B = 9 , PERT_TANH_SIN = 10 , PERT_GENE = 11 ,
  PERT_GENE_VPLL = 12 , PERT_POTENTIAL = 13 , PERT_RH_VPLL = 14 , PERT_COLL_II_1 = 15 ,
  PERT_COLL_II_2 = 16 , PERT_COLL_II_3 = 17 , PERT_COLL_II_4 = 18 , PERT_SINGLEPART = 19 ,
  PERT_LIGKA5 = 20 , PERT_LIGKA5_AUTO = 21 , PERT_GAUSS_LIST = 22
}
 Initial marker-weight or potential perturbation. More...
 
enum class  NSelInnerBc { NO_INNER_BC = 0 , DIRICHLET_INNER_BC = 1 , UNICITY_INNER_BC = 2 }
 Boundary condition at the magnetic axis. More...
 
enum class  NSelIonValues {
  ION_VALUES_ORB5 = 0 , ION_VALUES_TAU_FPART = 1 , ION_VALUES_TAU_N = 2 , ION_VALUES_T_N = 3 ,
  ION_VALUES_T_FPART = 4
}
 Input quantities from which main-ion normalization is inferred. More...
 
enum class  NSelLoadphi { UNIFORM = 0 , HAMMERSLEY = 1 }
 Toroidal-angle marker-loading sequence. More...
 
enum class  NSelLoadSpace { SPACE_GAUSSIAN = 0 , SPACE_ALPHAB = 1 }
 Electron configuration-space loading density. More...
 
enum class  NSelLoadV { LOAD_V2 = 0 , LOAD_V3 = 1 , LOAD_V2_NO_T = 2 }
 Velocity-space marker-loading density. More...
 
enum class  NSelMatrixType { NSEL_GBMAT = 0 , NSEL_PBMAT = 1 }
 LAPACK storage/factorization selected for one field matrix. More...
 
enum class  NSelNoiseFilter { SHIFTED = 0 , ANTI_ALIGNED = 1 }
 Phase relation of the deposition noise-filter stencil. More...
 
enum class  NSelNormalizeDensity { ANNUAR = 0 , FULL = 1 , FREE = 2 , TAE = 3 }
 Volume convention used to normalize species density. More...
 
enum class  NSelPoisson { LWA = 0 , ARBITRARY = 1 , PADE = 2 }
 Gyrokinetic polarization model in quasineutrality. More...
 
enum class  NSelPotProfile {
  NO_POT = 0 , POT_BEN = 1 , POT_SHEAR = 2 , POT_PROF_FILE = 3 ,
  POT_OGYROPSI = 4 , POT_JAMIE = 5 , POT_VPROF = 6
}
 Prescribed background-potential radial profile. More...
 
enum class  NSelProfile {
  TYPE_1 = 0 , TYPE_2 = 1 , TYPE_22 = 2 , TYPE_3 = 3 ,
  TYPE_4 = 4 , INTERP_ITM = 5 , INTERP_TRANSP = 6 , TYPE_7 = 7 ,
  TYPE_8 = 8 , TYPE_9 = 9 , TYPE_10 = 10
}
 Family of radial equilibrium density/temperature/flow profiles. More...
 
enum class  NSelPszs { PSZS_OFF = 0 , PSZS_ONLINE = 1 , PSZS_OFFLINE = 2 }
 Phase-space zonal-structure execution mode. More...
 
enum class  NSelPszsType { PSZS_W = 0 , PSZS_F0 = 1 }
 Distribution quantity projected by PSZS. More...
 
enum class  NSelPtransp { PTRANSP_SERIAL = 0 , PTRANSP_PARALLEL = 1 }
 Particle transport between toroidal spatial domains. More...
 
enum class  NSelPullback { NO_PULLBACK = 0 , PULLBACK_DA_DT_0 = 1 , PULLBACK_OHM = 2 }
 Electromagnetic pullback formulation. More...
 
enum class  NSelPush {
  PUSH_FULL = 0 , NO_PUSH = 1 , PUSH_UNPERT = 2 , PUSH_FULL_TEST = 3 ,
  PUSH_UNPERT_TEST = 4
}
 Marker trajectory, weight, and deposition evolution mode. More...
 
enum class  NSelQProfile { INTERP = 0 , QUADRATIC = 1 , QCOEF = 2 }
 Source of the equilibrium safety-factor profile. More...
 
enum class  NSelQuasineutral { QN_FREE = 0 , QN_SET_NE = 1 , QN_SET_N1 = 2 , QN_SET_NL = 3 }
 Quasineutral-density closure imposed during normalization. More...
 
enum class  NSelSetrho { SETRHO_BY_PART = 0 , SETRHO_BY_CELL = 1 , SETRHO_BY_COLOR = 2 , SETRHO_BY_COLOR_BUF = 3 }
 Particle-to-grid charge-deposition kernel organization. More...
 
enum class  NSelSolve { POISSON = 0 , AMPERE = 1 , DENS1 = 2 , MOM = 3 }
 Field-system right-hand side/solve operation. More...
 
enum class  NSelSolverMatrixType { GBMAT = 0 , PBMAT = 1 }
 Storage format of the radial solver matrix. More...
 
enum class  NSelSortCache { SORT_CACHE_OFF = 0 , SORT_CACHE_ON = 1 }
 Guiding-centre sorting for memory locality. More...
 
enum class  NSelSourceDiagnostics { NC = 0 , HEATING = 1 , BUFFER = 2 }
 Source family represented by source-control diagnostics. More...
 
enum class  NSelStrong {
  STRONG_EXPECTED = 0 , STRONG_UE2_S2 = 1 , STRONG_UE2_SIN2_CHI = 2 , STRONG_UE2_S2_SIN2_CHI = 3 ,
  STRONG_UEPHI_SIN2_CHI = 4
}
 Analytic strong-form test field. More...
 
enum class  NSelTestpart { NO_TESTPART = 0 , READ_TESTPART = 1 , FIRSTS_TESTPART = 2 }
 Test-particle initialization and selection policy. More...
 
enum class  NSelTilt { NO_TILT = 0 , RANDOM_TILT = 1 }
 Gyroangle rotation applied to gyroaveraging points. More...
 
enum class  NSelTimeIntegrator { RK4 = 0 , GL4 = 1 }
 Global time-integration scheme. More...
 
enum class  NSelVparallelI { MHD = 0 , ADHOC = 1 }
 Model used for the equilibrium ion parallel velocity. More...
 
enum class  NSelVparConstantInF0 {
  DH0 = 0 , DVPAR1 = 1 , NO_F0_CONSTANT = 2 , DH0_CORR = 3 ,
  DVPAR1_CORR = 4
}
 Prescription for the parallel invariant used in df0/dt. More...
 
enum class  NSelWhichAttribute { CHARGE = 0 , CURRENT = 1 }
 Particle attribute deposited into a field right-hand side. More...
 
enum class  NSelWhichMat { T = 0 , T_TRANSP = 1 , T_INV = 2 }
 Algebraic transform requested from a solver matrix. More...
 
enum class  ParallelMomentum { P_PARALLEL = 0 , V_PARALLEL = 1 , MIXED = 2 }
 Parallel phase-space momentum coordinate. More...
 
enum class  ParallelMomentumType { P_PARALLEL = 0 , V_PARALLEL = 1 , MIXED = 2 }
 Momentum coordinate requested by particle-property calculations. More...
 

Functions

void allocate_matrix (int globalk, int matnum, int kl, int ku, int n)
 Allocate numerical band storage for a registered matrix.
 
void backsolve_rhs_f (Kokkos::View< Complex * > &rhs_f, int globalk, int matnum)
 -— Free functions matching Fortran solver_mpi.F90 subroutines -—
 
void bsolve (const Zbmat &mat, Complex *rhs, int nrhs=1)
 Overwrite rhs with solutions of the factorized system \(A X=B\).
 
void bspl2fft_2d (const Kokkos::View< Real ** > &bspl_data, Kokkos::View< Complex ** > &fft_data, int nchi, int nphi)
 Compute an unnormalized full complex FFT of one real surface.
 
void bspl2fft_3d (const Kokkos::View< Real *** > &bspl_data, Kokkos::View< Complex ** > &fft_data, int ns, int nchi, int nphi, int neq_f, const Kokkos::View< int *** > *filter=nullptr, const Kokkos::View< Real * > *fftminv=nullptr, const Kokkos::View< int ** > *mmin_f=nullptr, const Kokkos::View< int ** > *mmax_f=nullptr)
 Transform radial real-space surfaces to packed Fourier coefficients.
 
void cleanup_globals ()
 Release modules and all Kokkos-owning global state.
 
void count_leaving_markers (Kokkos::View< Real *, Kokkos::LayoutStride > pos, Kokkos::View< int * > scount, Real lsd_inv, int nsd, int me_sd, int np)
 Histogram outgoing markers by destination subdomain on device.
 
void defmat_disp ()
 Define required matrix-number slots from the configured physics model.
 
void destroy_plan (fftw_plan plan)
 Release a caller-owned FFTW plan.
 
void execute_backward (fftw_plan plan)
 Execute a backward plan on the buffers supplied when it was created.
 
void execute_forward (fftw_plan plan)
 Execute a forward plan on the buffers supplied when it was created.
 
void factorize_matrix (Zbmat &mat, int nmat=-1, int matnum=-1, const char *context="")
 Factorize mat in place using Cholesky or pivoted band LU.
 
void fft2bspl_2d (const Kokkos::View< Complex ** > &fft_data, Kokkos::View< Real ** > &bspl_data, int nchi, int nphi)
 Compute the normalized real inverse of a full two-dimensional spectrum.
 
void fft2bspl_3d (const Kokkos::View< Complex ** > &fft_data, Kokkos::View< Real *** > &bspl_data, int ns, int nchi, int nphi, int neq_f, const Kokkos::View< int ** > *mmin_f=nullptr, const Kokkos::View< int ** > *mmax_f=nullptr)
 Reconstruct real-space radial surfaces from packed Fourier modes.
 
void fftw_cleanup ()
 Compatibility cleanup hook retained for translated solver call sites.
 
void fill_leaving_marker_holes (Kokkos::View< Real *, Kokkos::LayoutStride > pos, Kokkos::View< int * > cursor, Kokkos::View< int * > iphole, Real lsd_inv, int nsd, int me_sd, int np)
 Place each outgoing marker's index into its destination's region of iphole, sorted by destination.
 
Zbmat * get_matrix (int globalk, int matnum)
 Return or lazily create metadata for one mode/matrix pair.
 
void init_1d_backward (int n, fftw_plan &plan_backward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized one-dimensional backward transform plan.
 
void init_1d_forward (int n, fftw_plan &plan_forward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized one-dimensional forward transform plan.
 
void init_2d_backward (int nchi, int nphi, fftw_plan &plan_backward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized backward FFT over (chi,phi).
 
void init_2d_forward (int nchi, int nphi, fftw_plan &plan_forward, fftw_complex *in, fftw_complex *out)
 Create an unnormalized forward FFT over (chi,phi).
 
void init_globals ()
 Allocate process-wide state after Kokkos::initialize().
 
void init_solver_data ()
 Clear and initialize matrix-number bookkeeping.
 
void interpos_smooth (const std::vector< Real > &xin, const std::vector< Real > &yin, std::vector< Real > &yout, std::vector< Real > &youtp)
 Smooth sampled data with a natural cubic spline and evaluate its derivative.
 
void printmat ()
 Print the configured matrix-number registry on the reporting rank.
 
void set_global_variables ()
 Derive cached selectors, species ratios, and auxiliary dimensions.
 
void setmat (bool lapl_boundary_terms)
 Assign mode-independent storage, factorization, and boundary policies.
 
void updtmat (Zbmat &mat, int row, int col, Complex val)
 Accumulate a value into a logical complex band-matrix element.
 
void vmx (const Zbmat &mat, const Kokkos::View< Complex * > &x, Kokkos::View< Complex * > &y)
 Compute \(y=A x\) with the unfactorized logical band matrix.
 

Variables

constexpr int ABSDF_DIA = 2
 Phase-space integral of absolute delta f.
 
constexpr int ABSDF_IN_DIA = 10
 Absolute delta f inside the diagnostic volume.
 
constexpr int ABSDF_OUT_DIA = 13
 Absolute delta f outside the diagnostic volume.
 
constexpr int ABSG_DIA = 22
 Sum of absolute marker sampling distribution g.
 
constexpr int ABSPWEIGHT_DIA = 17
 Sum of absolute second/background weights.
 
constexpr int ALP_PIC = 2
 Marker loading/Jacobian factor alpha slot.
 
AntennaVariables * antenna
 Externally imposed antenna configuration.
 
constexpr int APA_2D_DIA = 2
 Global parallel-vector-potential spectrum.
 
constexpr int APA_2D_LOC_DIA = 3
 Radially local parallel-vector-potential spectrum.
 
BasicVariables * basic
 Run-control and top-level input state.
 
constexpr int BUFFER_DENS_DIA = 8
 Buffer density contribution.
 
constexpr int BUFFER_ENERGY_DIA = 9
 Buffer energy contribution.
 
constexpr int BUFFER_VPLL_DIA = 11
 Buffer parallel-momentum contribution.
 
constexpr int BUFFER_ZF_DIA = 10
 Buffer zonal-flow contribution.
 
constexpr int CGRAINED_PIC = 6
 Coarse-grained marker-state flag slot.
 
constexpr int CHI_DIA = 1
 Poloidal-angle displacement component.
 
constexpr int CHI_PIC = 1
 Poloidal-angle slot in primary marker storage, radians.
 
constexpr int cke = 0
 PSZS kinetic-energy coordinate slot.
 
constexpr Real CLIGHT = 2.9979E8
 Speed of light in metres per second.
 
constexpr int cmu = 2
 PSZS magnetic-moment coordinate slot.
 
CollisionsVariables * collisions
 Collision-operator configuration.
 
constexpr int ctam = 1
 PSZS toroidal-angular-momentum coordinate slot.
 
constexpr int CUR_2D_DIA = 6
 Global parallel-current spectrum.
 
constexpr int CUR_2D_LOC_DIA = 7
 Local parallel-current spectrum.
 
constexpr int CURV_DIA = 3
 Magnetic-curvature drift contribution.
 
constexpr int DENS_WT_PIC = 2
 Density-weight slot in deposition workspace.
 
constexpr int DENSITY_LOSSES = 0
 Lost represented particle number.
 
constexpr int DF_AV_2D_DIA = 0
 Two-dimensional average of delta f.
 
constexpr int DF_VEL_2D_DIA = 1
 delta f on the two-dimensional velocity grid.
 
constexpr int DFSUM_3_DIA = 5
 Cubic signed delta f sum.
 
constexpr int DFSUM_4_DIA = 6
 Quartic delta f sum.
 
DiagVariables * diag
 User-facing diagnostic configuration and counters.
 
DiagnosticsVariables * diagnostics
 Derived diagnostic work arrays.
 
constexpr int DN_PIC = 2
 Density increment slot.
 
constexpr int DOTPZAPA_DIA = 7
 Time-derivative p_z A_parallel contribution.
 
constexpr int DV2_PIC = 1
 Squared-speed/energy increment slot.
 
constexpr int DVPAR_PIC = 0
 Parallel-momentum increment slot.
 
constexpr int EBG_DIA = 5
 Background-electric-field contribution.
 
constexpr Real ECHARGE = 1.6021765E-19
 Elementary charge magnitude in coulombs.
 
constexpr int EF1_2D_DIA = 0
 Global first electric-field spectrum.
 
constexpr int EF1_2D_LOC_DIA = 1
 Local first electric-field spectrum.
 
constexpr int EF2_2D_DIA = 4
 Global second electric-field spectrum.
 
constexpr int EF2_2D_LOC_DIA = 5
 Local second electric-field spectrum.
 
constexpr int EFLUXF0H_DIA = 0
 f0 radial heat flux in helical cells.
 
constexpr int EFLUXF0ISL_DIA = 0
 f0-weighted energy flux along perturbed magnetic field.
 
constexpr int EFLUXF0ISLH_DIA = 2
 f0 heat flux along perturbed field in helical cells.
 
constexpr int EFLUXWH_DIA = 1
 delta f radial heat flux in helical cells.
 
constexpr int EFLUXWISL_DIA = 1
 delta f-weighted energy flux along perturbed magnetic field.
 
constexpr int EFLUXWISLH_DIA = 3
 delta f heat flux along perturbed field in helical cells.
 
constexpr int EKINF0_DIA = 9
 Equilibrium-distribution kinetic energy.
 
constexpr int EKINF0_TR_DIA = 16
 Trapped-particle equilibrium kinetic energy.
 
constexpr int ENERGY_LOSSES = 1
 Lost kinetic energy.
 
constexpr int ENTROPY_DIA = 4
 Perturbed entropy measure.
 
constexpr int ENTROPY_IN_DIA = 12
 Entropy inside the diagnostic volume.
 
constexpr int ENTROPY_OUT_DIA = 15
 Entropy outside the diagnostic volume.
 
constexpr Real EPSILONO = 8.8541878E-12
 Vacuum permittivity in farads per metre.
 
EquilVariables * equil
 Magnetic-equilibrium and normalization state.
 
constexpr int ETA_DIA = 4
 Second nonsingular axis-coordinate displacement.
 
constexpr int ETRANSF0_DIA = 1
 Field-to-particle energy transfer weighted by f0.
 
constexpr int ETRANSW_DIA = 0
 Field-to-particle energy transfer weighted by delta f.
 
constexpr Real EULER = 0.5772156649015328606065120900824024310422
 Euler-Mascheroni constant.
 
constexpr int EXB_DIA = 6
 ExB drift contribution.
 
constexpr int EXBTOR_DIA = 5
 Toroidal ExB flow.
 
constexpr int F_AV_2D_DIA = 2
 Distribution zeroth moment.
 
constexpr int F_AVH_DIA = 7
 Helically binned distribution zeroth moment.
 
constexpr int F_DIA = 3
 Distribution/density zeroth moment.
 
constexpr int F_MS_DIA = 8
 Square of the mean distribution/density.
 
constexpr int F_P_DIA = 9
 Passing-particle distribution zeroth moment.
 
constexpr int F_TH_DIA = 3
 Poloidally binned distribution zeroth moment.
 
constexpr int F_TR_DIA = 13
 Trapped-particle distribution zeroth moment.
 
constexpr int F_VEL_2D_DIA = 2
 Total distribution on the velocity grid.
 
constexpr int FFINIT_PIC = 3
 Initial equilibrium-distribution value slot.
 
constexpr int FFINIT_PVOL_PIC = 0
 Initial f0 times marker phase volume.
 
constexpr int FIELD_CORR_DIA = 3
 Corrected field contribution.
 
constexpr int FIELD_DIA = 1
 Field contribution to fluctuation entropy.
 
FieldsVariables * fields
 Field-grid, filtering, and model state.
 
FieldsModule * fields_module
 Field deposition and solve service.
 
constexpr Real FIXED_POINT_RTOL = 1.0E-15
 Relative tolerance for fixed-point iteration.
 
constexpr int FLUID_1 = 0
 First electron-fluid moment slot.
 
constexpr int FLUID_2 = 1
 Second electron-fluid moment slot.
 
constexpr int FLUID_3 = 2
 Third electron-fluid moment slot.
 
constexpr int FLUID_4 = 3
 Fourth electron-fluid moment slot.
 
constexpr int FLUID_5 = 4
 Fifth electron-fluid moment slot.
 
constexpr int FLUID_6 = 5
 Sixth electron-fluid moment slot.
 
constexpr int FLUID_7 = 6
 Seventh electron-fluid moment slot.
 
constexpr int FLUX_CORR_DIA = 4
 Corrected flux contribution.
 
constexpr int FLUX_DIA = 2
 Flux contribution to fluctuation entropy.
 
constexpr int FLUX_WT_PIC = 1
 Flux-weight slot in deposition workspace.
 
constexpr int FR_DETRAP = 3
 Transition identifier for trapped-to-passing motion.
 
constexpr int FR_PASS = 1
 Passing-orbit classification identifier.
 
constexpr int FR_RETRAP = 4
 Transition identifier for passing-to-trapped motion.
 
constexpr int FR_TRAP = 2
 Trapped-orbit classification identifier.
 
constexpr const char * FRES = "orb5_res.h5"
 Main results filename.
 
constexpr const char * FRES2 = "orb5_traj.h5"
 Test-particle trajectory filename.
 
extern::H5::H5File * fresid
 Owning main-results handle, or nullptr.
 
extern::H5::H5File * fresid2
 Owning trajectory-file handle, or nullptr.
 
constexpr int FSELECT_APA = 3
 Select parallel vector potential A_parallel.
 
constexpr int FSELECT_PHI = 1
 Select fluctuating electrostatic potential phi.
 
constexpr int FSELECT_PHI0 = 2
 Select axisymmetric/background potential phi0.
 
constexpr int FSIG_AV_DIA = 5
 Time-averaged distribution-function signal.
 
constexpr int FSIG_DIA = 4
 Instantaneous distribution-function signal.
 
constexpr int FU2_AV_2D_DIA = 4
 Parallel-velocity second moment.
 
constexpr int FU_AV_2D_DIA = 3
 Parallel-velocity first moment.
 
constexpr int FVP2_AV_2D_DIA = 5
 Perpendicular-speed second moment.
 
constexpr Real GL4_A11 = 0.25
 Gauss-Legendre Butcher coefficient a11.
 
constexpr Real GL4_A12 = -0.038675134594812866
 Gauss-Legendre Butcher coefficient a12.
 
constexpr Real GL4_A21 = 0.53867513459481287
 Gauss-Legendre Butcher coefficient a21.
 
constexpr Real GL4_A22 = 0.25
 Gauss-Legendre Butcher coefficient a22.
 
constexpr Real GL4_C1 = 0.21132486540518713
 First node of two-stage fourth-order Gauss-Legendre integration.
 
constexpr Real GL4_C2 = 0.78867513459481287
 Second Gauss-Legendre time node.
 
constexpr int GRB_DIA = 2
 Grad-B drift contribution.
 
constexpr int GRP_DIA = 4
 Pressure-gradient contribution.
 
constexpr int GSUM_2_DIA = 24
 Second raw moment of g.
 
constexpr int GSUM_3_DIA = 25
 Third raw moment of g.
 
constexpr int GSUM_4_DIA = 26
 Fourth raw moment of g.
 
constexpr int GSUM_DIA = 23
 First raw moment of marker sampling distribution g.
 
constexpr int HEAT_DIA = 0
 Total radial heat flux.
 
constexpr int HEAT_DIA_NEO = 3
 Neoclassical heat-flux component.
 
constexpr int HEAT_P_DIA = 9
 Passing-particle heat flux.
 
constexpr int HEAT_P_DIA_NEO = 13
 Neoclassical passing heat flux.
 
constexpr int HEAT_TR_DIA = 10
 Trapped-particle heat flux.
 
constexpr int HEAT_TR_DIA_NEO = 14
 Neoclassical trapped heat flux.
 
constexpr int HEATING_DENS_DIA = 4
 Heating-source density contribution.
 
constexpr int HEATING_ENERGY_DIA = 5
 Heating-source energy contribution.
 
constexpr int HEATING_VPLL_DIA = 7
 Heating-source parallel-momentum contribution.
 
constexpr int HEATING_ZF_DIA = 6
 Heating-source zonal-flow contribution.
 
constexpr int ID_PIC = 0
 Globally persistent marker identifier slot.
 
constexpr int ILARM_PIC = 1
 Offset of the first gyroaveraging point.
 
constexpr Complex IMA {0.0, 1.0}
 Imaginary unit used by Fourier-space operations.
 
constexpr int INNER_EDGE = 0
 Inner-radial-boundary loss slot.
 
constexpr const char * INPUT_FILENAME = "input"
 Default namelist input filename.
 
IslandsVariables * islands
 Prescribed magnetic-island configuration.
 
constexpr int JBOOT_DIA = 6
 Bootstrap-current moment.
 
constexpr int JDOTE_DIA = 13
 Species energy transfer j dot E.
 
constexpr Real KBOLTZ = 1.3806E-23
 Boltzmann constant in joules per kelvin.
 
constexpr int KSI_DIA = 3
 First nonsingular axis-coordinate displacement.
 
constexpr int KSIETA_PIC = 0
 Low-discrepancy loading-state slot.
 
constexpr Real LNLAM = 15.0
 Reference Coulomb logarithm, dimensionless.
 
constexpr int LOSSES_MOMENTS = 3
 Number of tracked loss moments.
 
constexpr int lu_dat = 99
 Legacy generic-data unit.
 
constexpr int lu_datn = 32
 Legacy density-data unit.
 
constexpr int lu_datv = 100
 Legacy velocity-data unit.
 
constexpr int lu_debug = 13
 Legacy debug-log unit.
 
constexpr int lu_denprofs = 89
 Legacy density-profile unit.
 
constexpr int lu_f0 = 90
 Legacy numerical-f0 unit.
 
constexpr int lu_fields = 96
 Legacy saved-field unit.
 
constexpr int lu_input = 16
 Legacy Fortran unit reserved for namelist input.
 
constexpr int lu_io = 14
 Legacy general I/O unit.
 
constexpr int lu_kprofs = 88
 Legacy gradient-profile unit.
 
constexpr int lu_noh5 = 63
 Legacy non-HDF5 output unit.
 
constexpr int lu_optidat = 75
 Legacy optimized-loading data unit.
 
constexpr int lu_p1 = 81
 Legacy first potential-component unit.
 
constexpr int lu_p2 = 83
 Legacy second potential-component unit.
 
constexpr int lu_profiles = 78
 Legacy equilibrium-profile unit.
 
constexpr int lu_profs = 87
 Legacy species-profile unit.
 
constexpr int lu_pszs = 36
 Legacy PSZS-output unit.
 
constexpr int lu_res = 34
 Legacy results unit.
 
constexpr int lu_restime = 35
 Legacy restart-timing unit.
 
constexpr int lu_stop = 31
 Legacy stop/status-file unit.
 
constexpr int lu_test = 33
 Legacy test-output unit.
 
constexpr int lu_testpart = 77
 Legacy test-particle input unit.
 
constexpr int lu_tkdat = 97
 Legacy toolkit-data unit.
 
constexpr int lu_tklog = 98
 Legacy toolkit-log unit.
 
constexpr int lu_traj = 95
 Legacy trajectory-output unit.
 
constexpr int lu_version = 15
 Legacy version-file unit.
 
MatArray MATS
 Process-wide solver matrix registry, matching Fortran MATS.
 
constexpr int MAX_PIC2_C = 7
 Auxiliary marker reals with coarse-graining extras.
 
constexpr int MAX_PIC2_NC = 5
 Auxiliary marker reals without coarse-graining extras.
 
constexpr int MAX_PIC3 = 2
 Integer/flag values in tertiary marker storage.
 
constexpr int MAX_PIC4 = 1
 64-bit integer values stored per marker.
 
constexpr int MAX_WORK_C = 6
 Primary marker reals with the second weight.
 
constexpr int MAX_WORK_NC = 5
 Primary marker reals without the second weight.
 
constexpr Real MEMKSA = 9.1094E-31
 Electron mass in kilograms.
 
constexpr Real MIMKSA = 1.6726231E-27
 Reference proton/ion mass in kilograms.
 
constexpr int moments_3d_size = 8
 Number of standard 3-D moments.
 
constexpr int MOMENTUM_DIA = 2
 Total radial parallel-momentum flux.
 
constexpr int MOMENTUM_DIA_NEO = 5
 Neoclassical momentum-flux component.
 
constexpr int MPR_2D_ID_JDOTE_ES = 0
 Electrostatic j dot E transfer.
 
constexpr int MPR_2D_ID_JDOTE_ES_S1 = 1
 Electrostatic j dot E in the selected radial interval.
 
constexpr int MPR_2D_SIZE = 2
 Number of mode-particle-resonance 2-D quantities.
 
constexpr Real MU0 = 4.0 * PI * 1e-7
 Vacuum permeability in henries per metre.
 
constexpr int MU_PIC = 0
 Normalized magnetic-moment slot in auxiliary storage.
 
constexpr int N_DF_AV_2D_DIA = 1
 Marker-count-weighted average of delta f.
 
constexpr int N_VEL_2D_DIA = 0
 Marker count on the two-dimensional velocity grid.
 
constexpr int NBIN_EN = 32
 Default heating energy bins.
 
constexpr int NBIN_LAM = 64
 Default electron pitch lambda bins.
 
constexpr int NBIN_MU = 128
 Magnetic-moment bins for bounce-averaged v_parallel/B.
 
constexpr int NBIN_PSI0 = 64
 Flux bins for bounce-averaged v_parallel/B.
 
constexpr int NBIN_R = 64
 Default heating radial bins.
 
constexpr int NBIN_S = 32
 Default electron radial bins.
 
constexpr int NBIN_THETA = 64
 Default electron poloidal-angle bins.
 
constexpr int NBIN_XI = 64
 Default electron pitch-cosine xi bins.
 
constexpr int NCONTROL_DENS_DIA = 0
 Noise-control density correction.
 
constexpr int NCONTROL_ENERGY_DIA = 1
 Noise-control energy correction.
 
constexpr int NCONTROL_VPLL_DIA = 3
 Noise-control parallel-momentum correction.
 
constexpr int NCONTROL_ZF_DIA = 2
 Noise-control zonal-flow correction.
 
constexpr int ndump = 12
 Legacy unit for formatted restart dumps.
 
constexpr int ndump_bin_a = 11
 Legacy unit for binary array dumps.
 
constexpr int ndump_bin_p = 10
 Legacy unit for binary particle dumps.
 
constexpr int NLARM_PIC = 0
 Number of gyroaveraging points in Larmor metadata.
 
constexpr int NOISE_AV_DIA = 7
 Time-averaged particle-noise estimator.
 
constexpr int NOISE_DIA = 6
 Instantaneous particle-noise estimator.
 
constexpr Int8 NPTOT_PRE = 100000000
 Samples used by adiabatic-density precomputation.
 
constexpr int NUMBER_SOURCE_DIAG = 12
 Number of one-dimensional source diagnostics.
 
constexpr int NXI = 8
 Helical-angle bins in magnetic-island diagnostics.
 
constexpr int OMP_ZERO = 0
 Zero offset used by OpenMP-compatible indexing paths.
 
constexpr int OUTER_EDGE = 1
 Outer-radial-boundary loss slot.
 
constexpr int P_PIC = 5
 Background/second-weight slot when two weights are enabled.
 
constexpr int PAR_DIA = 1
 Parallel-electric-field contribution.
 
constexpr const char * PARAFRES = "orb5_res_parallel.h5"
 Parallel results filename.
 
extern::H5::H5File * parafresid
 Owning parallel-results handle, or nullptr.
 
ParallelVariables * parallel
 MPI topology and host-thread state.
 
ParMove * parmove_module
 Toroidal particle-exchange service.
 
PartFieldsModule * part_fields_module
 Marker-to-field interpolation service.
 
constexpr int PARTICLE_DIA = 1
 Total radial particle flux.
 
constexpr int PARTICLE_DIA_NEO = 4
 Neoclassical particle-flux component.
 
ParticleModule * particle_module
 Marker loading and push service.
 
constexpr int PARTICLE_P_DIA = 11
 Passing-particle particle flux.
 
constexpr int PARTICLE_P_DIA_NEO = 15
 Neoclassical passing particle flux.
 
constexpr int PARTICLE_TR_DIA = 12
 Trapped-particle particle flux.
 
constexpr int PARTICLE_TR_DIA_NEO = 16
 Neoclassical trapped particle flux.
 
constexpr int PARTQUANTS_NUMELS = 20
 Marker quantities written per test-particle record.
 
constexpr int PEKIN_DIA = 7
 Marker-weighted kinetic energy.
 
constexpr int PHASE_DF_DIA = 3
 Binned delta f.
 
constexpr int PHASE_F0_DIA = 5
 Binned equilibrium distribution.
 
constexpr int PHASE_NUMPART_DIA = 0
 Marker count in each phase-space bin.
 
constexpr int PHASE_P_DIA = 4
 Background/second-weight sum.
 
constexpr int PHASE_PVOL_DIA = 1
 Phase-space-volume sum.
 
constexpr int PHASE_W2_DIA = 6
 Squared perturbation-weight sum.
 
constexpr int PHASE_W_DIA = 2
 Perturbation-weight sum.
 
constexpr int PHI_2D_DIA = 0
 Global electrostatic-potential spectrum.
 
constexpr int PHI_2D_LOC_DIA = 1
 Radially local electrostatic-potential spectrum.
 
constexpr int PHI_DIA = 2
 Toroidal-angle displacement component.
 
constexpr int PHI_PIC = 2
 Toroidal-angle slot in primary marker storage, radians.
 
constexpr Real PI = 3.141592653589793238462643383279502884197
 Circle constant pi.
 
constexpr Real PIO2 = 1.57079632679489661923132169163975144209858
 Half pi, radians.
 
constexpr int PNUMB_DIA = 3
 Total represented particle number.
 
constexpr int PNUMB_IN_DIA = 11
 Particle number inside the diagnostic volume.
 
constexpr int PNUMB_OUT_DIA = 14
 Particle number outside the diagnostic volume.
 
constexpr int POLARISATION_TERM_DIVP0 = 9
 Divergence of equilibrium polarization P0.
 
constexpr int POLARISATION_TERM_DIVQ0 = 10
 Divergence of equilibrium polarization flux Q0.
 
constexpr int POLARISATION_TERM_P0 = 11
 Equilibrium polarization P0 term.
 
constexpr int POLARISATION_TERM_Q0 = 12
 Equilibrium polarization flux Q0 term.
 
constexpr int POLPROD_DIA = 5
 Polarization-product moment.
 
constexpr int PSI0CORR_PIC = 4
 Corrected invariant-flux coordinate slot.
 
std::vector< PszsVariables > * pszs
 Per-species phase-space zonal-structure state.
 
constexpr int PULLBACK_DIA = 8
 Pullback-transformation contribution.
 
constexpr int PVOL_PIC = 1
 Marker phase-space-volume slot.
 
constexpr int PWEIGHTSUM_2_DIA = 19
 Second raw moment of the second weight.
 
constexpr int PWEIGHTSUM_3_DIA = 20
 Third raw moment of the second weight.
 
constexpr int PWEIGHTSUM_4_DIA = 21
 Fourth raw moment of the second weight.
 
constexpr int PWEIGHTSUM_DIA = 18
 First raw moment of the second weight.
 
constexpr int QP_DIA = 4
 Parallel heat-flux moment.
 
constexpr int REV_ALP = 6
 Bit-reversed sequence for loading factor alpha.
 
constexpr int REV_ETA = 1
 Bit-reversed sequence for the second spatial coordinate.
 
constexpr int REV_KSI = 0
 Bit-reversed sequence for the first spatial coordinate.
 
constexpr int REV_V1 = 2
 Bit-reversed sequence for the first velocity coordinate.
 
constexpr int REV_V2 = 3
 Bit-reversed sequence for the second velocity coordinate.
 
constexpr int REV_V3 = 5
 Bit-reversed sequence for the third velocity coordinate.
 
constexpr int REV_W = 4
 Bit-reversed sequence for marker weights.
 
constexpr int RHO_2D_DIA = 2
 Global charge-density spectrum.
 
constexpr int RHO_2D_LOC_DIA = 3
 Local charge-density spectrum.
 
constexpr int RHOG_PIC = 2
 Normalized gyroradius in Larmor metadata.
 
constexpr int S_DIA = 0
 Radial displacement component.
 
constexpr int S_PIC = 0
 Radial-coordinate slot in primary marker storage.
 
constexpr int S_PROD_DIA = 0
 Entropy-production term.
 
constexpr int SAMP_DF_DIA = 3
 Sampled delta f.
 
constexpr int SAMP_F0_DIA = 5
 Sampled equilibrium distribution.
 
constexpr int SAMP_NUMPART_DIA = 0
 Marker count in each sampling bin.
 
constexpr int SAMP_P_DIA = 4
 Summed background/second weight.
 
constexpr int SAMP_PVOL_DIA = 1
 Summed marker phase-space volume.
 
constexpr int SAMP_W2_DIA = 6
 Summed squared perturbation weight.
 
constexpr int SAMP_W_DIA = 2
 Summed perturbation weight.
 
constexpr int SIGNAL_AV_DIA = 1
 Time-averaged total signal estimator.
 
constexpr int SIGNAL_DIA = 0
 Instantaneous total signal estimator.
 
constexpr int SIGNAL_NONZONAL_AV_DIA = 3
 Time-averaged nonzonal signal estimator.
 
constexpr int SIGNAL_NONZONAL_DIA = 2
 Instantaneous nonzonal signal estimator.
 
constexpr Real slope_line = 0.0
 Slope of the optimized-loading weight-limit line.
 
SolverVariables * solver
 Quasineutrality and Ampere solver configuration.
 
SortingVariables * sorting
 Particle binning and sorting configuration.
 
constexpr int SOURCE_3D_DN_DIA = 1
 Three-dimensional source density rate.
 
constexpr int SOURCE_3D_POWER_DIA = 0
 Three-dimensional deposited source power.
 
std::vector< SpeciesVariables > * species
 Per-species physical and numerical state.
 
constexpr Real SQRT2 = 1.41421356237309504880168872420969807856967
 Square root of two.
 
constexpr int SUMF0_DIA = 8
 Marker sum of equilibrium distribution.
 
constexpr Real T2GAUSS = 1.e4
 Number of gauss per tesla.
 
constexpr Real thresh = 23.0
 Threshold parameter of optimized marker loading.
 
constexpr int TMP_PHI_PIC = 5
 Temporary toroidal coordinate used by coarse graining.
 
constexpr int TOR_MOMENTUM_DIA = 6
 Toroidal-momentum flux.
 
constexpr int TOR_MOMENTUM_DIA_NEO = 7
 Neoclassical toroidal-momentum flux.
 
constexpr int TOR_REYNOLDS_DIA = 8
 Toroidal Reynolds-stress contribution.
 
constexpr int TOT_DIA = 0
 Total j dot E energy transfer.
 
constexpr int TRAP_PIC = 1
 Trapped/passing classification slot.
 
constexpr Real TWOPI = 6.283185307179586476925286766559005768394
 Full angular period, radians.
 
constexpr int U_DIA = 5
 Parallel-velocity displacement component.
 
constexpr int U_PIC = 3
 Normalized parallel-velocity slot.
 
constexpr int UT2_DIA = 1
 Parallel-velocity second moment.
 
constexpr int UT2_P_DIA = 7
 Passing-particle parallel-velocity second moment.
 
constexpr int UT2_TR_DIA = 11
 Trapped-particle parallel-velocity second moment.
 
constexpr int UT_DIA = 0
 Parallel-velocity first moment.
 
constexpr int UT_MS_DIA = 7
 Square of the mean parallel velocity.
 
constexpr int UT_P_DIA = 6
 Passing-particle parallel-velocity first moment.
 
constexpr int UT_TR_DIA = 10
 Trapped-particle parallel-velocity first moment.
 
constexpr int UW_PIC = 3
 Parallel-velocity-times-weight workspace slot.
 
constexpr int V_PAR2_AVH_DIA = 5
 Helically binned parallel-velocity second moment.
 
constexpr int V_PAR2_TH_DIA = 1
 Poloidally binned parallel-speed squared.
 
constexpr int V_PAR_AVH_DIA = 4
 Helically binned parallel-velocity first moment.
 
constexpr int V_PAR_TH_DIA = 0
 Poloidally binned parallel-velocity moment.
 
constexpr int V_PERP2_AVH_DIA = 6
 Helically binned perpendicular-speed second moment.
 
constexpr int V_PERP2_TH_DIA = 2
 Poloidally binned perpendicular-speed squared.
 
constexpr Real vernum = 1.0
 Legacy numeric ORB5X file/version identifier.
 
constexpr int VPLL_LOSSES = 2
 Lost parallel momentum.
 
constexpr int VPLTOR_DIA = 4
 Toroidal projection of parallel flow.
 
constexpr int VPT2_DIA = 2
 Perpendicular-speed second moment.
 
constexpr int VPT2_P_DIA = 8
 Passing-particle perpendicular-speed second moment.
 
constexpr int VPT2_TR_DIA = 12
 Trapped-particle perpendicular-speed second moment.
 
constexpr int VPT_PIC = 1
 Normalized perpendicular-speed quantity.
 
constexpr int W_AVERAGE = 0
 Mean marker weight.
 
constexpr int W_DIA = 6
 Marker-weight displacement component.
 
constexpr int W_PIC = 4
 Perturbed-distribution weight slot.
 
constexpr int W_VARIANCE = 4
 Marker-weight variance.
 
constexpr int WADI_AVERAGE = 2
 Mean adiabatic marker weight.
 
constexpr int WADI_VARIANCE = 6
 Adiabatic-weight variance.
 
constexpr Real wLimitFrac = 10.0
 Initial fractional marker-weight limit.
 
constexpr Real wLimitFracLimit = 200.0
 Maximum fractional marker-weight limit.
 
constexpr int WV_AVERAGE = 1
 Mean velocity-weighted marker weight.
 
constexpr int WV_VARIANCE = 5
 Velocity-weighted marker-weight variance.
 
constexpr int WVADI_AVERAGE = 3
 Mean velocity-weighted adiabatic weight.
 
constexpr int WVADI_VARIANCE = 7
 Velocity-weighted adiabatic-weight variance.
 

Detailed Description

Public C++ interface of the ORB5X gyrokinetic application.

Compatibility API for the former ORB5 fftw3 module.

These host-only inline functions delegate to FFTWrapper. They retain the names used by the translated solver while centralizing plan management, Kokkos host staging, Fourier packing, and normalization in one implementation. Raw FFTW plans are unnormalized and remain bound to their planning buffers.

Fortran reference
solver/fftw3.F90; transform packing is implemented by FFTWrapper and follows the field-solver layout inherited from ORB5.

Typedef Documentation

◆ Complex

using orb5x::Complex = typedef std::complex<Real>

Complex simulation scalar with Real components.

◆ CoordFunc

using orb5x::CoordFunc = typedef std::function<void(Real s, Real chi, Real& phi, Real& x, Real& y, Real& z)>

Coordinate transform from ORB5 coordinates to visualization space.

Parameters
[in]sNormalized radial coordinate.
[in]chiStraight-field-line poloidal angle, in radians.
[in,out]phiToroidal angle in radians; the transform may wrap it in place.
[out]xCartesian or visualization-space x coordinate.
[out]yCartesian or visualization-space y coordinate.
[out]zCartesian or visualization-space z coordinate.

◆ fftw_complex_type

using orb5x::fftw_complex_type = typedef fftw_complex

FFTW double-precision complex storage used by the compatibility routines.

◆ fftw_plan_type

using orb5x::fftw_plan_type = typedef fftw_plan

Opaque FFTW plan handle; caller-created plans must be passed to destroy_plan().

◆ FieldFunc

using orb5x::FieldFunc = typedef std::function<void(Real x, Real y, Real z, Real& field)>

Scalar-field sampler evaluated on the diagnostic coordinate grid.

Parameters
[in]xFirst diagnostic coordinate (normally normalized radius s).
[in]ySecond diagnostic coordinate (normally poloidal angle chi, radians).
[in]zThird diagnostic coordinate (normally toroidal angle phi, radians).
[in,out]fieldScalar value to replace with the sampled field value.
Note
The names preserve the Fortran procedure interface; current call sites pass (s,chi,phi), not the transformed Cartesian mesh coordinates.

◆ Int4

using orb5x::Int4 = typedef int32_t

Signed integer type with exactly 32 bits.

◆ Int8

using orb5x::Int8 = typedef int64_t

Signed integer type with exactly 64 bits, used for marker counts.

◆ Real

using orb5x::Real = typedef double

Default floating-point type for normalized physics and numerics.

◆ Real32

using orb5x::Real32 = typedef float

Explicit IEEE-like single-precision storage type.

◆ Real64

using orb5x::Real64 = typedef double

Explicit IEEE-like double-precision storage type.

Enumeration Type Documentation

◆ CopyFields

enum class orb5x::CopyFields : int
strong

Destination component for a split-potential field copy.

Enumerator
PH1 

Copy to the first potential component.

PH2 

Copy to the second potential component.

◆ CreateRhs

enum class orb5x::CreateRhs : int
strong

Field equation for which a right-hand side is assembled.

Enumerator
PHI 

Assemble quasineutrality right-hand side.

APA 

Assemble parallel-Ampere right-hand side.

◆ Diag3d

enum class orb5x::Diag3d : int
strong

Top-level family of three-dimensional diagnostics.

Enumerator
POT 

Field potentials.

DEN 

Deposited density/current.

MOMENT 

Kinetic moments.

◆ Diag3dDen

enum class orb5x::Diag3dDen : int
strong

Deposited source written by the 3-D density diagnostic.

Enumerator
RHO 

Charge density.

CURR 

Parallel current density.

◆ GetPotDisp

enum class orb5x::GetPotDisp : int
strong

Field or source quantity reconstructed by get_pot_disp diagnostics.

Enumerator
PHI 

Electrostatic potential.

PH1 

First split potential component.

PH2 

Second split potential component.

APA 

Parallel vector potential.

ASY 

Up-down asymmetric field component.

RHO 

Charge density.

RHM 

Subtracted/corrected charge density.

CUR 

Parallel current density.

EFN 

Normal electric-field component.

EFP 

Parallel electric-field component.

EFU 

Electric field along normalized velocity coordinate.

AHA 

Parallel-vector-potential harmonic amplitude.

◆ NSel3dDiag

enum class orb5x::NSel3dDiag
strong

Representation written by the single-field 3-D diagnostic.

Enumerator
DIAG_REAL 

Reconstructed real-space field.

DIAG_RHS_F 

Field-equation right-hand side.

◆ NSelAmpere

enum class orb5x::NSelAmpere
strong

Electromagnetic content of the parallel Ampere solve.

Enumerator
ELECTROSTATIC 

Disable A_parallel; electrostatic model.

EM_GYROAPAR 

Solve gyroaveraged A_parallel.

EM_APAR 

Solve non-gyroaveraged A_parallel.

◆ NSelAntenna

enum class orb5x::NSelAntenna
strong

Field source driven by the numerical antenna.

Enumerator
ANT_OFF 

Disable antenna forcing.

ANT_RHO 

Drive charge density.

ANT_JPAR 

Drive parallel current.

ANT_PHI 

Drive electrostatic potential.

ANT_APAR 

Drive parallel vector potential.

◆ NSelAntennaRadialProfile

Radial envelope of the numerical antenna.

Enumerator
ANT_POLYNOMIAL 

Polynomial in normalized radius.

ANT_SIN 

Sinusoidal radial envelope.

ANT_GAUSS 

Gaussian radial envelope.

ANT_INTERP 

Interpolate an envelope from file.

◆ NSelBacksolve

enum class orb5x::NSelBacksolve
strong

Quantity reconstructed by a field backsolve.

Enumerator
PHI 

Electrostatic potential.

MASS 

B-spline mass projection.

APAR 

Parallel vector potential.

MOM 

Moment coefficients.

◆ NSelBeamType

enum class orb5x::NSelBeamType
strong

Electromagnetic polarization of the ECRH beam.

Enumerator
X_MODE 

Extraordinary-mode beam.

O_MODE 

Ordinary-mode beam.

◆ NSelBsplinesBasis

enum class orb5x::NSelBsplinesBasis
strong

Implementation used to evaluate the B-spline basis.

Enumerator
BSPLINES_ORIGINAL 

Legacy ORB5 basis recursion.

BSPLINES_DEBOOR 

de Boor basis evaluation.

◆ NSelBufferType

enum class orb5x::NSelBufferType
strong

Outer radial buffer operator.

Enumerator
NO_BUFFER 

Disable the outer buffer.

NAIVE_KROOK_BUFFER 

Simple Krook relaxation.

KROOK_CONS_BUFFER 

Density-conserving Krook relaxation.

COLLISION_BUFFER 

Collisional buffer operator.

◆ NSelCollisions

enum class orb5x::NSelCollisions
strong

Monte-Carlo collision operator.

Enumerator
NO_COLL 

Collisionless evolution.

SELF_COLL_L 

Linearized same-species collisions.

MULTI_COLL_L 

Linearized multispecies collisions.

SELF_COLL_NL 

Nonlinear same-species collisions.

MULTI_COLL_NL 

Nonlinear multispecies collisions.

◆ NSelControlVariate

enum class orb5x::NSelControlVariate
strong

Current control-variate correction strategy.

Enumerator
NO_CV 

Disable control-variate correction.

CORRECT_CURRENT 

Iteratively correct deposited parallel current.

◆ NSelDftMethod

enum class orb5x::NSelDftMethod
strong

Toroidal discrete-Fourier-transform implementation.

Enumerator
DFT_PPTRANSP 

Use the distributed particle-transport transform.

DFT_LOCAL 

Use a rank-local transform.

◆ NSelEfluid

enum class orb5x::NSelEfluid
strong

Electron-fluid closure model.

Enumerator
NO_EFLUID 

Disable the electron-fluid closure.

EFLUID_MHD 

Use the MHD electron-fluid closure.

EFLUID_DEBUG 

Use diagnostic/debug closure equations.

◆ NSelElectronValues

enum class orb5x::NSelElectronValues
strong

Input quantities from which electron normalization is inferred.

Enumerator
ELECTRON_VALUES_ORB5 

Preserve legacy ORB5 inference rules.

ELECTRON_VALUES_LX_N 

Infer from box scale and density.

ELECTRON_VALUES_LX_BETA 

Infer from box scale and beta.

ELECTRON_VALUES_T_N 

Infer from temperature and density.

ELECTRON_VALUES_T_BETA 

Infer from temperature and beta.

◆ NSelF0

enum class orb5x::NSelF0
strong

Equilibrium distribution function represented by a species.

Enumerator
MAXWELLIAN 

Local/canonical Maxwellian.

BUMPONTAIL 

Bump-on-tail energetic distribution.

SLOWINGDOWN 

Isotropic slowing-down distribution.

CDT 

Claudio Di Troya distribution.

CDTN 

Normalized Claudio Di Troya variant.

NUM_F0 

Tabulated numerical distribution.

SLOWINGDOWN_BUMP 

Hybrid slowing-down/bump-on-tail distribution.

SLOWINGDOWN_PITCH 

Pitch-anisotropic slowing-down distribution.

SLOWINGDOWN_PITCH_G_BREF 

Pitch slowing-down with GYSELA reference field.

SLOWINGDOWN_PITCH_O 

Legacy ORB5 pitch slowing-down form.

SLOWINGDOWN_PITCH_O_NOCHI 

Legacy form without poloidal dependence.

BUMPONTAIL_O 

Legacy ORB5 bump-on-tail form.

BUMPONTAIL_O_NOCHI 

Legacy bump-on-tail without poloidal dependence.

BUMPONTAIL_G_BREF 

Bump-on-tail with GYSELA reference field.

◆ NSelFilter

enum class orb5x::NSelFilter
strong

Angular Fourier-mode filtering policy.

Enumerator
FILT_N 

Filter only toroidal modes.

FILT_MN 

Filter both poloidal and toroidal modes.

FILT_MN_ONLY_FULL 

Apply (m,n) filtering only to full fields.

FILT_SAW 

Apply the sawtooth-specific mode lists.

FILT_MN_N0M0 

Apply (m,n) filtering while retaining the (0,0) mode.

◆ NSelFixedSourceType

enum class orb5x::NSelFixedSourceType
strong

Fixed heating/source operator.

Enumerator
SOURCE_BASIC 

Generic prescribed heat source.

SOURCE_ECRH 

Electron-cyclotron-resonance heating source.

◆ NSelFixFields

enum class orb5x::NSelFixFields
strong

Analytic test pattern used to replace evolved fields.

Enumerator
NO_FIX_FIELDS 

Use evolved fields.

FIX_FIELDS_S2 

Replace with a quadratic radial pattern.

FIX_FIELDS_SIN2_CHI 

Replace with a squared poloidal sine pattern.

FIX_FIELDS_SIN2_PHI 

Replace with a squared toroidal sine pattern.

◆ NSelGBref

enum class orb5x::NSelGBref
strong

Magnetic-field value used to normalize energetic distributions.

Enumerator
G_B0 

Reference/on-axis field.

G_BMIN 

Minimum field on the selected surface.

G_BMAX 

Maximum field on the selected surface.

◆ NSelGetField

enum class orb5x::NSelGetField
strong

Grid-to-particle field-interpolation kernel organization.

Enumerator
GET_FIELD_BY_PART 

Parallelize directly over markers.

GET_FIELD_BY_CELL 

Parallelize over sorted spatial cells.

◆ NSelGradp

enum class orb5x::NSelGradp
strong

Pressure-gradient discretization.

Enumerator
GRAD_POL 

Standard polarization pressure gradient.

GRAD_POL_CORR 

Corrected polarization pressure gradient.

◆ NSelGyr

enum class orb5x::NSelGyr
strong

Gyroaveraging-point selection strategy.

Enumerator
ADAPT 

Adapt points to gyroradius with a fixed four-point scale.

FIXED 

Use exactly navg points.

DK 

Drift-kinetic approximation without gyroaveraging.

ADAPT_NAVG 

Adapt points using pi*navg as the scale.

◆ NSelHeatsourceRadial

enum class orb5x::NSelHeatsourceRadial
strong

Source of the radial heat-deposition profile.

Enumerator
RADIAL_CODE 

Evaluate the built-in analytic profile.

RADIAL_FILE 

Interpolate a profile from file.

◆ NSelHybridModel

enum class orb5x::NSelHybridModel
strong

Kinetic trapped/passing hybrid model.

Enumerator
NO_HYBRID_MODEL 

Deposit all kinetic marker response normally.

HYBRID_MODEL_UPGRADE 

Upgraded Idomura-style hybrid model.

STANDARD_HYBRID_MODEL 

Standard model depositing trapped-particle charge only.

◆ NSelInitPert

enum class orb5x::NSelInitPert
strong

Initial marker-weight or potential perturbation.

Enumerator
PERT_NOISE 

Uniform low-amplitude weight perturbation.

PERT_MODE_UNCORRECTED 

Uncorrected Gaussian (m,n) spectrum.

PERT_MODE 

Corrected Gaussian (m,n) spectrum.

PERT_MODE_TAE 

Toroidal-Alfven-eigenmode Gaussian perturbation.

PERT_MODE_SAW 

Shear-Alfven-wave perturbation.

PERT_D_COS 

Density perturbation proportional to cos(chi).

PERT_D_SIN 

Density perturbation proportional to sin(chi).

PERT_RH_COS 

Rosenbluth-Hinton cosine perturbation.

PERT_RH_SIN 

Rosenbluth-Hinton sine perturbation.

PERT_RH_SIN_B 

Magnetic-field-weighted RH sine perturbation.

PERT_TANH_SIN 

GAM perturbation proportional to tanh(r) sin(chi).

PERT_GENE 

GENE-compatible spatial perturbation.

PERT_GENE_VPLL 

GENE-compatible perturbation with v_parallel dependence.

PERT_POTENTIAL 

Initialize electrostatic potential directly.

PERT_RH_VPLL 

RH sinusoid with parallel-velocity dependence.

PERT_COLL_II_1 

Ion-ion collision verification case 1.

PERT_COLL_II_2 

Ion-ion collision verification case 2.

PERT_COLL_II_3 

Ion-ion collision verification case 3.

PERT_COLL_II_4 

Ion-ion collision verification case 4.

PERT_SINGLEPART 

Perturb a single test marker.

PERT_LIGKA5 

LIGKA-L5 prescribed perturbation.

PERT_LIGKA5_AUTO 

Automatically parameterized LIGKA-L5 perturbation.

PERT_GAUSS_LIST 

Sum a configured list of Gaussian perturbations.

◆ NSelInnerBc

enum class orb5x::NSelInnerBc
strong

Boundary condition at the magnetic axis.

Enumerator
NO_INNER_BC 

Do not impose an explicit axis condition.

DIRICHLET_INNER_BC 

Impose a Dirichlet value at the axis.

UNICITY_INNER_BC 

Enforce single-valuedness at the axis.

◆ NSelIonValues

enum class orb5x::NSelIonValues
strong

Input quantities from which main-ion normalization is inferred.

Enumerator
ION_VALUES_ORB5 

Preserve legacy ORB5 inference rules.

ION_VALUES_TAU_FPART 

Infer from temperature ratio and dilution.

ION_VALUES_TAU_N 

Infer from temperature ratio and density.

ION_VALUES_T_N 

Infer from physical temperature and density.

ION_VALUES_T_FPART 

Infer from physical temperature and dilution.

◆ NSelLoadphi

enum class orb5x::NSelLoadphi
strong

Toroidal-angle marker-loading sequence.

Enumerator
UNIFORM 

Uniform midpoint sequence.

HAMMERSLEY 

Low-discrepancy Hammersley sequence.

◆ NSelLoadSpace

enum class orb5x::NSelLoadSpace
strong

Electron configuration-space loading density.

Enumerator
SPACE_GAUSSIAN 

Gaussian/constant mixed radial loading.

SPACE_ALPHAB 

Loading proportional to geometric alpha_b(s,chi).

◆ NSelLoadV

enum class orb5x::NSelLoadV
strong

Velocity-space marker-loading density.

Enumerator
LOAD_V2 

Uniform sampling in squared speed.

LOAD_V3 

Uniform sampling in cubed speed.

LOAD_V2_NO_T 

Squared-speed sampling without local-temperature scaling.

◆ NSelMatrixType

enum class orb5x::NSelMatrixType
strong

LAPACK storage/factorization selected for one field matrix.

Enumerator
NSEL_GBMAT 

General complex band matrix factored by ZGBTRF.

NSEL_PBMAT 

Hermitian positive-definite band matrix factored by ZPBTRF.

◆ NSelNoiseFilter

enum class orb5x::NSelNoiseFilter
strong

Phase relation of the deposition noise-filter stencil.

Enumerator
SHIFTED 

Use the shifted stencil.

ANTI_ALIGNED 

Use the anti-aligned stencil.

◆ NSelNormalizeDensity

enum class orb5x::NSelNormalizeDensity
strong

Volume convention used to normalize species density.

Enumerator
ANNUAR 

Normalize with the simulated annular volume.

FULL 

Normalize with the full torus volume.

FREE 

Preserve the supplied normalization.

TAE 

Use the TAE benchmark normalization convention.

◆ NSelPoisson

enum class orb5x::NSelPoisson
strong

Gyrokinetic polarization model in quasineutrality.

Enumerator
LWA 

Long-wavelength approximation.

ARBITRARY 

Arbitrary-wavelength gyrokinetic polarization.

PADE 

Pade approximation to finite-Larmor-radius polarization.

◆ NSelPotProfile

enum class orb5x::NSelPotProfile
strong

Prescribed background-potential radial profile.

Enumerator
NO_POT 

No prescribed potential.

POT_BEN 

Built-in Ben profile.

POT_SHEAR 

Analytic sheared-flow profile.

POT_PROF_FILE 

Interpolate the potential from a profile file.

POT_OGYROPSI 

Legacy ORB5/GYROPSI profile.

POT_JAMIE 

Built-in Jamie profile.

POT_VPROF 

Derive potential from the velocity profile.

◆ NSelProfile

enum class orb5x::NSelProfile
strong

Family of radial equilibrium density/temperature/flow profiles.

Enumerator
TYPE_1 

Analytic profile in normalized poloidal flux.

TYPE_2 

Legacy LORB5 profile in minor radius.

TYPE_22 

Global/local profile in squared minor radius.

TYPE_3 

First Cyclone benchmark profile.

TYPE_4 

Windowed Cyclone benchmark profile.

INTERP_ITM 

Interpolate an ITM/IMAS experimental profile.

INTERP_TRANSP 

Interpolate a TRANSP profile file.

TYPE_7 

Flat-gradient MHD profile.

TYPE_8 

Solovev-equilibrium flux profile.

TYPE_9 

Exponential core, linear pedestal, constant SOL.

TYPE_10 

Parabolic deep core plus type-9 edge profile.

◆ NSelPszs

enum class orb5x::NSelPszs
strong

Phase-space zonal-structure execution mode.

Enumerator
PSZS_OFF 

Disable PSZS processing.

PSZS_ONLINE 

Accumulate PSZS during the simulation.

PSZS_OFFLINE 

Prepare/read data for offline PSZS processing.

◆ NSelPszsType

enum class orb5x::NSelPszsType
strong

Distribution quantity projected by PSZS.

Enumerator
PSZS_W 

Perturbed marker-weight contribution.

PSZS_F0 

Equilibrium-distribution contribution.

◆ NSelPtransp

enum class orb5x::NSelPtransp
strong

Particle transport between toroidal spatial domains.

Enumerator
PTRANSP_SERIAL 

Use serialized neighbor exchange.

PTRANSP_PARALLEL 

Use the parallel exchange path.

◆ NSelPullback

enum class orb5x::NSelPullback
strong

Electromagnetic pullback formulation.

Enumerator
NO_PULLBACK 

Disable pullback mitigation.

PULLBACK_DA_DT_0 

Pull back using the initial dA_parallel/dt split.

PULLBACK_OHM 

Pull back using the Ohm-law split.

◆ NSelPush

enum class orb5x::NSelPush
strong

Marker trajectory, weight, and deposition evolution mode.

Enumerator
PUSH_FULL 

Perturbed trajectories with weight evolution and deposition.

NO_PUSH 

Freeze trajectories and weights.

PUSH_UNPERT 

Unperturbed trajectories with weight evolution.

PUSH_FULL_TEST 

Perturbed test trajectories without weights/deposition.

PUSH_UNPERT_TEST 

Unperturbed test trajectories without weights/deposition.

◆ NSelQProfile

enum class orb5x::NSelQProfile
strong

Source of the equilibrium safety-factor profile.

Enumerator
INTERP 

Interpolate the loaded equilibrium profile.

QUADRATIC 

Use the analytic profile fixed by q0 and qedge.

QCOEF 

Evaluate the coefficient-based analytic profile.

◆ NSelQuasineutral

enum class orb5x::NSelQuasineutral
strong

Quasineutral-density closure imposed during normalization.

Enumerator
QN_FREE 

Keep all input densities unchanged.

QN_SET_NE 

Adjust electron density for quasineutrality.

QN_SET_N1 

Adjust the first species density.

QN_SET_NL 

Adjust the last species density.

◆ NSelSetrho

enum class orb5x::NSelSetrho
strong

Particle-to-grid charge-deposition kernel organization.

Enumerator
SETRHO_BY_PART 

Parallelize directly over markers.

SETRHO_BY_CELL 

Parallelize over spatial cells.

SETRHO_BY_COLOR 

Use conflict-free cell coloring.

SETRHO_BY_COLOR_BUF 

Use coloring with a buffered accumulator.

◆ NSelSolve

enum class orb5x::NSelSolve
strong

Field-system right-hand side/solve operation.

Enumerator
POISSON 

Quasineutrality/polarization equation.

AMPERE 

Parallel Ampere equation.

DENS1 

First density-response system.

MOM 

Moment system.

◆ NSelSolverMatrixType

enum class orb5x::NSelSolverMatrixType
strong

Storage format of the radial solver matrix.

Enumerator
GBMAT 

General band matrix.

PBMAT 

Periodic band matrix.

◆ NSelSortCache

enum class orb5x::NSelSortCache
strong

Guiding-centre sorting for memory locality.

Enumerator
SORT_CACHE_OFF 

Preserve marker order.

SORT_CACHE_ON 

Periodically reorder markers by spatial bin.

◆ NSelSourceDiagnostics

enum class orb5x::NSelSourceDiagnostics
strong

Source family represented by source-control diagnostics.

Enumerator
NC 

Noise-control/Krook source.

HEATING 

Heating source.

BUFFER 

Outer-buffer source.

◆ NSelStrong

enum class orb5x::NSelStrong
strong

Analytic strong-form test field.

Enumerator
STRONG_EXPECTED 

Evaluate the expected physical strong form.

STRONG_UE2_S2 

Quadratic radial electric-energy test.

STRONG_UE2_SIN2_CHI 

Poloidal squared-sine electric-energy test.

STRONG_UE2_S2_SIN2_CHI 

Combined radial/poloidal electric-energy test.

STRONG_UEPHI_SIN2_CHI 

Toroidal-electric-field poloidal test.

◆ NSelTestpart

enum class orb5x::NSelTestpart
strong

Test-particle initialization and selection policy.

Enumerator
NO_TESTPART 

Disable test-particle output.

READ_TESTPART 

Read explicit initial test-particle states.

FIRSTS_TESTPART 

Track the first configured markers.

◆ NSelTilt

enum class orb5x::NSelTilt
strong

Gyroangle rotation applied to gyroaveraging points.

Enumerator
NO_TILT 

Use the deterministic base gyroangle.

RANDOM_TILT 

Apply a random gyroangle offset per marker.

◆ NSelTimeIntegrator

enum class orb5x::NSelTimeIntegrator
strong

Global time-integration scheme.

Enumerator
RK4 

Explicit classical fourth-order Runge-Kutta.

GL4 

Implicit two-stage fourth-order Gauss-Legendre.

◆ NSelVparallelI

enum class orb5x::NSelVparallelI
strong

Model used for the equilibrium ion parallel velocity.

Enumerator
MHD 

Parallel velocity consistent with the MHD equilibrium.

ADHOC 

User-prescribed analytic parallel velocity.

◆ NSelVparConstantInF0

enum class orb5x::NSelVparConstantInF0
strong

Prescription for the parallel invariant used in df0/dt.

Enumerator
DH0 

Infer dv_parallel from the equilibrium Hamiltonian derivative.

DVPAR1 

Use the first-order parallel acceleration directly.

NO_F0_CONSTANT 

Keep the baseline dv_parallel without a constraint.

DH0_CORR 

Correct Hamiltonian-derived acceleration to match first order.

DVPAR1_CORR 

Correct first-order acceleration to conserve the Hamiltonian.

◆ NSelWhichAttribute

enum class orb5x::NSelWhichAttribute
strong

Particle attribute deposited into a field right-hand side.

Enumerator
CHARGE 

Charge density.

CURRENT 

Parallel current density.

◆ NSelWhichMat

enum class orb5x::NSelWhichMat
strong

Algebraic transform requested from a solver matrix.

Enumerator
T 

Matrix itself.

T_TRANSP 

Matrix transpose.

T_INV 

Matrix inverse/solve operator.

◆ ParallelMomentum

enum class orb5x::ParallelMomentum
strong

Parallel phase-space momentum coordinate.

Enumerator
P_PARALLEL 

Canonical parallel momentum.

V_PARALLEL 

Kinetic parallel velocity.

MIXED 

Mixed-variable pullback momentum.

◆ ParallelMomentumType

enum class orb5x::ParallelMomentumType
strong

Momentum coordinate requested by particle-property calculations.

Enumerator
P_PARALLEL 

Canonical parallel momentum.

V_PARALLEL 

Physical parallel velocity.

MIXED 

Mixed-variable electromagnetic coordinate.

Function Documentation

◆ allocate_matrix()

void orb5x::allocate_matrix ( int  globalk,
int  matnum,
int  kl,
int  ku,
int  n 
)

Allocate numerical band storage for a registered matrix.

Parameters
[in]globalkSigned global toroidal mode.
[in]matnumMatrix-number selector.
[in]klLower bandwidth.
[in]kuUpper bandwidth.
[in]nSquare matrix dimension.

◆ backsolve_rhs_f()

void orb5x::backsolve_rhs_f ( Kokkos::View< Complex * > &  rhs_f,
int  globalk,
int  matnum 
)

-— Free functions matching Fortran solver_mpi.F90 subroutines -—

Solve A*x=b for one toroidal mode through the global solver.

Parameters
[in,out]rhs_fFourier RHS replaced by the solution.
[in]globalkSigned global toroidal mode number.
[in]matnumFactorized field-matrix selector.
Note
Equivalent to backsolve_rhs_f in solver_mpi.F90.

◆ bsolve()

void orb5x::bsolve ( const Zbmat &  mat,
Complex *  rhs,
int  nrhs = 1 
)

Overwrite rhs with solutions of the factorized system \(A X=B\).

Parameters
[in]matPreviously factorized matrix.
[in,out]rhsColumn-major right-hand sides on input and solutions on output.
[in]nrhsNumber of right-hand-side columns.

◆ bspl2fft_2d()

void orb5x::bspl2fft_2d ( const Kokkos::View< Real ** > &  bspl_data,
Kokkos::View< Complex ** > &  fft_data,
int  nchi,
int  nphi 
)
inline

Compute an unnormalized full complex FFT of one real surface.

Parameters
[in]bspl_dataReal values [chi][phi].
[out]fft_dataFull complex spectrum [chi mode][phi mode].
[in]nchiPoloidal extent.
[in]nphiToroidal extent.

References orb5x::FFTWrapper::bspl2fft_2d().

◆ bspl2fft_3d()

void orb5x::bspl2fft_3d ( const Kokkos::View< Real *** > &  bspl_data,
Kokkos::View< Complex ** > &  fft_data,
int  ns,
int  nchi,
int  nphi,
int  neq_f,
const Kokkos::View< int *** > *  filter = nullptr,
const Kokkos::View< Real * > *  fftminv = nullptr,
const Kokkos::View< int ** > *  mmin_f = nullptr,
const Kokkos::View< int ** > *  mmax_f = nullptr 
)
inline

Transform radial real-space surfaces to packed Fourier coefficients.

Parameters
[in]bspl_dataReal coefficients [s][chi][phi].
[out]fft_dataPacked normalized coefficients [equation][phi mode].
[in]nsNumber of radial surfaces.
[in]nchiPoloidal transform extent.
[in]nphiToroidal transform extent.
[in]neq_fNumber of packed radial/poloidal equations.
[in]filterOptional mode multiplier [phi][s][wrapped m]; zero removes a mode.
[in]fftminvOptional per-toroidal-mode multiplier used with filter.
[in]mmin_fOptional first retained poloidal mode [s][phi].
[in]mmax_fCompanion upper-mode metadata enabling selected-mode packing.
Note
The result includes the factor 1/(nchi_fft*nphi_fft).
See also
FFTWrapper::bspl2fft_3d

References orb5x::FFTWrapper::bspl2fft_3d().

◆ cleanup_globals()

void orb5x::cleanup_globals ( )

Release modules and all Kokkos-owning global state.

Precondition
No outstanding kernel or MPI operation references a global view.
Postcondition
Global pointers are null and Kokkos may be finalized.

◆ count_leaving_markers()

void orb5x::count_leaving_markers ( Kokkos::View< Real *, Kokkos::LayoutStride >  pos,
Kokkos::View< int * >  scount,
Real  lsd_inv,
int  nsd,
int  me_sd,
int  np 
)

Histogram outgoing markers by destination subdomain on device.

Parameters
[in]posPeriodic ownership coordinate for each marker.
[out]scountPer-destination leaving-marker count (size nsd, must already be zeroed by the caller); scount(me_sd) is left untouched.
[in]lsd_invInverse spatial-subdomain length.
[in]nsdNumber of periodic spatial destinations.
[in]me_sdLocal spatial-domain rank (excluded from the count).
[in]npNumber of active markers.

One GPU thread per marker, atomically incrementing its destination's count – see perf/status_perf.md's rocprof round1 for why this replaced an earlier scheme that parallelized over a small fixed thread count instead of over markers.

◆ defmat_disp()

void orb5x::defmat_disp ( )

Define required matrix-number slots from the configured physics model.

◆ destroy_plan()

void orb5x::destroy_plan ( fftw_plan  plan)
inline

Release a caller-owned FFTW plan.

Parameters
[in]planPlan handle to destroy; internal cached plans must not be passed.

References orb5x::FFTWrapper::destroy_plan().

◆ execute_backward()

void orb5x::execute_backward ( fftw_plan  plan)
inline

Execute a backward plan on the buffers supplied when it was created.

Parameters
[in]planValid caller- or cache-owned FFTW plan.

References orb5x::FFTWrapper::execute_backward().

◆ execute_forward()

void orb5x::execute_forward ( fftw_plan  plan)
inline

Execute a forward plan on the buffers supplied when it was created.

Parameters
[in]planValid caller- or cache-owned FFTW plan.

References orb5x::FFTWrapper::execute_forward().

◆ factorize_matrix()

void orb5x::factorize_matrix ( Zbmat &  mat,
int  nmat = -1,
int  matnum = -1,
const char *  context = "" 
)

Factorize mat in place using Cholesky or pivoted band LU.

Optional identifiers are included in failure diagnostics.

Parameters
[in,out]matAllocated matrix overwritten by its factorization.
[in]nmatOptional global toroidal-mode identifier for diagnostics.
[in]matnumOptional matrix-number identifier for diagnostics.
[in]contextOptional caller label for diagnostics.

◆ fft2bspl_2d()

void orb5x::fft2bspl_2d ( const Kokkos::View< Complex ** > &  fft_data,
Kokkos::View< Real ** > &  bspl_data,
int  nchi,
int  nphi 
)
inline

Compute the normalized real inverse of a full two-dimensional spectrum.

Parameters
[in]fft_dataComplex spectrum [chi mode][phi mode].
[out]bspl_dataReal part of the inverse [chi][phi].
[in]nchiPoloidal extent.
[in]nphiToroidal extent.
Note
Applies 1/(nchi*nphi) after FFTW's unnormalized backward transform.

References orb5x::FFTWrapper::fft2bspl_2d().

◆ fft2bspl_3d()

void orb5x::fft2bspl_3d ( const Kokkos::View< Complex ** > &  fft_data,
Kokkos::View< Real *** > &  bspl_data,
int  ns,
int  nchi,
int  nphi,
int  neq_f,
const Kokkos::View< int ** > *  mmin_f = nullptr,
const Kokkos::View< int ** > *  mmax_f = nullptr 
)
inline

Reconstruct real-space radial surfaces from packed Fourier modes.

Parameters
[in]fft_dataPacked coefficients [equation][phi mode].
[out]bspl_dataReconstructed real values [s][chi][phi].
[in]nsNumber of radial surfaces.
[in]nchiPoloidal inverse-transform extent.
[in]nphiToroidal inverse-transform extent.
[in]neq_fNumber of packed equations.
[in]mmin_fOptional first retained poloidal mode [s][phi].
[in]mmax_fCompanion upper-mode metadata enabling selected-mode unpacking.
Note
No inverse scaling is applied because bspl2fft_3d() normalizes forward.
See also
FFTWrapper::fft2bspl_3d

References orb5x::FFTWrapper::fft2bspl_3d().

◆ fftw_cleanup()

void orb5x::fftw_cleanup ( )
inline

Compatibility cleanup hook retained for translated solver call sites.

The wrapper owns no per-call global state here, so the current implementation intentionally performs no work. Caller-owned plans still require destroy_plan(); FFTWrapper releases its internal cache at process shutdown.

◆ fill_leaving_marker_holes()

void orb5x::fill_leaving_marker_holes ( Kokkos::View< Real *, Kokkos::LayoutStride >  pos,
Kokkos::View< int * >  cursor,
Kokkos::View< int * >  iphole,
Real  lsd_inv,
int  nsd,
int  me_sd,
int  np 
)

Place each outgoing marker's index into its destination's region of iphole, sorted by destination.

Parameters
[in]posPeriodic ownership coordinate for each marker.
[in,out]cursorPer-destination write cursor (size nsd), seeded by the caller with each destination's starting offset into iphole (typically sdispl); left advanced past the last written slot per destination on return.
[out]ipholeLocal marker indices ordered by destination.
[in]lsd_invInverse spatial-subdomain length.
[in]nsdNumber of periodic spatial destinations.
[in]me_sdLocal spatial-domain rank (excluded).
[in]npNumber of active markers.

One GPU thread per marker, atomically claiming its slot in cursor(idest). Entirely device-resident – no host copy of pos.

◆ get_matrix()

Zbmat * orb5x::get_matrix ( int  globalk,
int  matnum 
)

Return or lazily create metadata for one mode/matrix pair.

Parameters
[in]globalkSigned global toroidal Fourier mode.
[in]matnumMatrix-number selector from MATS.
Returns
Non-owning pointer valid until the registry is cleared.

◆ init_1d_backward()

void orb5x::init_1d_backward ( int  n,
fftw_plan &  plan_backward,
fftw_complex *  in,
fftw_complex *  out 
)
inline

Create an unnormalized one-dimensional backward transform plan.

Parameters
[in]nTransform length.
[out]plan_backwardPlan handle owned by the caller.
[in,out]inHost input buffer of at least n complex values.
[out]outHost output buffer of at least n complex values.

References orb5x::FFTWrapper::init_1d_backward().

◆ init_1d_forward()

void orb5x::init_1d_forward ( int  n,
fftw_plan &  plan_forward,
fftw_complex *  in,
fftw_complex *  out 
)
inline

Create an unnormalized one-dimensional forward transform plan.

Parameters
[in]nTransform length.
[out]plan_forwardPlan handle owned by the caller.
[in,out]inHost input buffer of at least n complex values.
[out]outHost output buffer of at least n complex values.

References orb5x::FFTWrapper::init_1d_forward().

◆ init_2d_backward()

void orb5x::init_2d_backward ( int  nchi,
int  nphi,
fftw_plan &  plan_backward,
fftw_complex *  in,
fftw_complex *  out 
)
inline

Create an unnormalized backward FFT over (chi,phi).

Parameters
[in]nchiPoloidal transform extent.
[in]nphiToroidal transform extent and fastest flattened dimension.
[out]plan_backwardPlan handle owned by the caller.
[in,out]inHost input buffer of at least nchi*nphi values.
[out]outHost output buffer of at least nchi*nphi values.

References orb5x::FFTWrapper::init_2d_backward().

◆ init_2d_forward()

void orb5x::init_2d_forward ( int  nchi,
int  nphi,
fftw_plan &  plan_forward,
fftw_complex *  in,
fftw_complex *  out 
)
inline

Create an unnormalized forward FFT over (chi,phi).

Parameters
[in]nchiPoloidal transform extent.
[in]nphiToroidal transform extent and fastest flattened dimension.
[out]plan_forwardPlan handle owned by the caller.
[in,out]inHost input buffer of at least nchi*nphi values.
[out]outHost output buffer of at least nchi*nphi values.

References orb5x::FFTWrapper::init_2d_forward().

◆ init_globals()

void orb5x::init_globals ( )

Allocate process-wide state after Kokkos::initialize().

Postcondition
Global state and module pointers declared here are non-null.

◆ init_solver_data()

void orb5x::init_solver_data ( )

Clear and initialize matrix-number bookkeeping.

◆ interpos_smooth()

void orb5x::interpos_smooth ( const std::vector< Real > &  xin,
const std::vector< Real > &  yin,
std::vector< Real > &  yout,
std::vector< Real > &  youtp 
)

Smooth sampled data with a natural cubic spline and evaluate its derivative.

This convenience path evaluates on the input coordinates and uses the historical default tension -1. Nearly duplicate coordinates separated by no more than \(10^{-5}\) of the mean spacing are coalesced before fitting. The returned derivative has units of yin divided by units of xin.

Parameters
[in]xinMonotonically increasing sample coordinates.
[in]yinSample values; must have the same length as xin.
[out]youtSmoothed values evaluated at every coordinate in xin.
[out]youtpFirst derivative of the smoothed spline at every coordinate in xin.
Exceptions
std::runtime_errorif the LAPACK positive-definite band factorization or solve fails.
Note
With fewer than two usable samples, both output arrays are resized and filled with zero.
Fortran reference
interpos_source.F90: interpos_def with tension=-1 and xout=xin, together with interpos_yinpp and interpos_interp.

◆ printmat()

void orb5x::printmat ( )

Print the configured matrix-number registry on the reporting rank.

◆ set_global_variables()

void orb5x::set_global_variables ( )

Derive cached selectors, species ratios, and auxiliary dimensions.

Precondition
Input is loaded and per-species storage is allocated.

◆ setmat()

void orb5x::setmat ( bool  lapl_boundary_terms)

Assign mode-independent storage, factorization, and boundary policies.

Parameters
[in]lapl_boundary_termsWhether Laplacian matrices include explicit boundary terms.

◆ updtmat()

void orb5x::updtmat ( Zbmat &  mat,
int  row,
int  col,
Complex  val 
)

Accumulate a value into a logical complex band-matrix element.

Parameters
[in,out]matDestination matrix.
[in]rowZero-based logical row.
[in]colZero-based logical column.
[in]valComplex increment.

◆ vmx()

void orb5x::vmx ( const Zbmat &  mat,
const Kokkos::View< Complex * > &  x,
Kokkos::View< Complex * > &  y 
)

Compute \(y=A x\) with the unfactorized logical band matrix.

Parameters
[in]matUnfactorized logical matrix.
[in]xComplex input vector of matrix rank.
[out]yComplex output vector of matrix rank.
Warning
Explicit boundary_terms are not applied here; fields.cpp adds them separately, matching fields.F90.

Variable Documentation

◆ ABSDF_DIA

constexpr int orb5x::ABSDF_DIA = 2
constexpr

Phase-space integral of absolute delta f.

◆ ABSDF_IN_DIA

constexpr int orb5x::ABSDF_IN_DIA = 10
constexpr

Absolute delta f inside the diagnostic volume.

◆ ABSDF_OUT_DIA

constexpr int orb5x::ABSDF_OUT_DIA = 13
constexpr

Absolute delta f outside the diagnostic volume.

◆ ABSG_DIA

constexpr int orb5x::ABSG_DIA = 22
constexpr

Sum of absolute marker sampling distribution g.

◆ ABSPWEIGHT_DIA

constexpr int orb5x::ABSPWEIGHT_DIA = 17
constexpr

Sum of absolute second/background weights.

◆ ALP_PIC

constexpr int orb5x::ALP_PIC = 2
constexpr

Marker loading/Jacobian factor alpha slot.

◆ antenna

AntennaVariables* orb5x::antenna
extern

Externally imposed antenna configuration.

◆ APA_2D_DIA

constexpr int orb5x::APA_2D_DIA = 2
constexpr

Global parallel-vector-potential spectrum.

◆ APA_2D_LOC_DIA

constexpr int orb5x::APA_2D_LOC_DIA = 3
constexpr

Radially local parallel-vector-potential spectrum.

◆ basic

BasicVariables* orb5x::basic
extern

Run-control and top-level input state.

◆ BUFFER_DENS_DIA

constexpr int orb5x::BUFFER_DENS_DIA = 8
constexpr

Buffer density contribution.

◆ BUFFER_ENERGY_DIA

constexpr int orb5x::BUFFER_ENERGY_DIA = 9
constexpr

Buffer energy contribution.

◆ BUFFER_VPLL_DIA

constexpr int orb5x::BUFFER_VPLL_DIA = 11
constexpr

Buffer parallel-momentum contribution.

◆ BUFFER_ZF_DIA

constexpr int orb5x::BUFFER_ZF_DIA = 10
constexpr

Buffer zonal-flow contribution.

◆ CGRAINED_PIC

constexpr int orb5x::CGRAINED_PIC = 6
constexpr

Coarse-grained marker-state flag slot.

◆ CHI_DIA

constexpr int orb5x::CHI_DIA = 1
constexpr

Poloidal-angle displacement component.

◆ CHI_PIC

constexpr int orb5x::CHI_PIC = 1
constexpr

Poloidal-angle slot in primary marker storage, radians.

◆ cke

constexpr int orb5x::cke = 0
constexpr

PSZS kinetic-energy coordinate slot.

◆ CLIGHT

constexpr Real orb5x::CLIGHT = 2.9979E8
constexpr

Speed of light in metres per second.

◆ cmu

constexpr int orb5x::cmu = 2
constexpr

PSZS magnetic-moment coordinate slot.

◆ collisions

CollisionsVariables* orb5x::collisions
extern

Collision-operator configuration.

◆ ctam

constexpr int orb5x::ctam = 1
constexpr

PSZS toroidal-angular-momentum coordinate slot.

◆ CUR_2D_DIA

constexpr int orb5x::CUR_2D_DIA = 6
constexpr

Global parallel-current spectrum.

◆ CUR_2D_LOC_DIA

constexpr int orb5x::CUR_2D_LOC_DIA = 7
constexpr

Local parallel-current spectrum.

◆ CURV_DIA

constexpr int orb5x::CURV_DIA = 3
constexpr

Magnetic-curvature drift contribution.

◆ DENS_WT_PIC

constexpr int orb5x::DENS_WT_PIC = 2
constexpr

Density-weight slot in deposition workspace.

◆ DENSITY_LOSSES

constexpr int orb5x::DENSITY_LOSSES = 0
constexpr

Lost represented particle number.

◆ DF_AV_2D_DIA

constexpr int orb5x::DF_AV_2D_DIA = 0
constexpr

Two-dimensional average of delta f.

◆ DF_VEL_2D_DIA

constexpr int orb5x::DF_VEL_2D_DIA = 1
constexpr

delta f on the two-dimensional velocity grid.

◆ DFSUM_3_DIA

constexpr int orb5x::DFSUM_3_DIA = 5
constexpr

Cubic signed delta f sum.

◆ DFSUM_4_DIA

constexpr int orb5x::DFSUM_4_DIA = 6
constexpr

Quartic delta f sum.

◆ diag

DiagVariables* orb5x::diag
extern

User-facing diagnostic configuration and counters.

◆ diagnostics

DiagnosticsVariables* orb5x::diagnostics
extern

Derived diagnostic work arrays.

◆ DN_PIC

constexpr int orb5x::DN_PIC = 2
constexpr

Density increment slot.

◆ DOTPZAPA_DIA

constexpr int orb5x::DOTPZAPA_DIA = 7
constexpr

Time-derivative p_z A_parallel contribution.

◆ DV2_PIC

constexpr int orb5x::DV2_PIC = 1
constexpr

Squared-speed/energy increment slot.

◆ DVPAR_PIC

constexpr int orb5x::DVPAR_PIC = 0
constexpr

Parallel-momentum increment slot.

◆ EBG_DIA

constexpr int orb5x::EBG_DIA = 5
constexpr

Background-electric-field contribution.

◆ ECHARGE

constexpr Real orb5x::ECHARGE = 1.6021765E-19
constexpr

Elementary charge magnitude in coulombs.

◆ EF1_2D_DIA

constexpr int orb5x::EF1_2D_DIA = 0
constexpr

Global first electric-field spectrum.

◆ EF1_2D_LOC_DIA

constexpr int orb5x::EF1_2D_LOC_DIA = 1
constexpr

Local first electric-field spectrum.

◆ EF2_2D_DIA

constexpr int orb5x::EF2_2D_DIA = 4
constexpr

Global second electric-field spectrum.

◆ EF2_2D_LOC_DIA

constexpr int orb5x::EF2_2D_LOC_DIA = 5
constexpr

Local second electric-field spectrum.

◆ EFLUXF0H_DIA

constexpr int orb5x::EFLUXF0H_DIA = 0
constexpr

f0 radial heat flux in helical cells.

◆ EFLUXF0ISL_DIA

constexpr int orb5x::EFLUXF0ISL_DIA = 0
constexpr

f0-weighted energy flux along perturbed magnetic field.

◆ EFLUXF0ISLH_DIA

constexpr int orb5x::EFLUXF0ISLH_DIA = 2
constexpr

f0 heat flux along perturbed field in helical cells.

◆ EFLUXWH_DIA

constexpr int orb5x::EFLUXWH_DIA = 1
constexpr

delta f radial heat flux in helical cells.

◆ EFLUXWISL_DIA

constexpr int orb5x::EFLUXWISL_DIA = 1
constexpr

delta f-weighted energy flux along perturbed magnetic field.

◆ EFLUXWISLH_DIA

constexpr int orb5x::EFLUXWISLH_DIA = 3
constexpr

delta f heat flux along perturbed field in helical cells.

◆ EKINF0_DIA

constexpr int orb5x::EKINF0_DIA = 9
constexpr

Equilibrium-distribution kinetic energy.

◆ EKINF0_TR_DIA

constexpr int orb5x::EKINF0_TR_DIA = 16
constexpr

Trapped-particle equilibrium kinetic energy.

◆ ENERGY_LOSSES

constexpr int orb5x::ENERGY_LOSSES = 1
constexpr

Lost kinetic energy.

◆ ENTROPY_DIA

constexpr int orb5x::ENTROPY_DIA = 4
constexpr

Perturbed entropy measure.

◆ ENTROPY_IN_DIA

constexpr int orb5x::ENTROPY_IN_DIA = 12
constexpr

Entropy inside the diagnostic volume.

◆ ENTROPY_OUT_DIA

constexpr int orb5x::ENTROPY_OUT_DIA = 15
constexpr

Entropy outside the diagnostic volume.

◆ EPSILONO

constexpr Real orb5x::EPSILONO = 8.8541878E-12
constexpr

Vacuum permittivity in farads per metre.

◆ equil

EquilVariables* orb5x::equil
extern

Magnetic-equilibrium and normalization state.

◆ ETA_DIA

constexpr int orb5x::ETA_DIA = 4
constexpr

Second nonsingular axis-coordinate displacement.

◆ ETRANSF0_DIA

constexpr int orb5x::ETRANSF0_DIA = 1
constexpr

Field-to-particle energy transfer weighted by f0.

◆ ETRANSW_DIA

constexpr int orb5x::ETRANSW_DIA = 0
constexpr

Field-to-particle energy transfer weighted by delta f.

◆ EULER

constexpr Real orb5x::EULER = 0.5772156649015328606065120900824024310422
constexpr

Euler-Mascheroni constant.

◆ EXB_DIA

constexpr int orb5x::EXB_DIA = 6
constexpr

ExB drift contribution.

◆ EXBTOR_DIA

constexpr int orb5x::EXBTOR_DIA = 5
constexpr

Toroidal ExB flow.

◆ F_AV_2D_DIA

constexpr int orb5x::F_AV_2D_DIA = 2
constexpr

Distribution zeroth moment.

◆ F_AVH_DIA

constexpr int orb5x::F_AVH_DIA = 7
constexpr

Helically binned distribution zeroth moment.

◆ F_DIA

constexpr int orb5x::F_DIA = 3
constexpr

Distribution/density zeroth moment.

◆ F_MS_DIA

constexpr int orb5x::F_MS_DIA = 8
constexpr

Square of the mean distribution/density.

◆ F_P_DIA

constexpr int orb5x::F_P_DIA = 9
constexpr

Passing-particle distribution zeroth moment.

◆ F_TH_DIA

constexpr int orb5x::F_TH_DIA = 3
constexpr

Poloidally binned distribution zeroth moment.

◆ F_TR_DIA

constexpr int orb5x::F_TR_DIA = 13
constexpr

Trapped-particle distribution zeroth moment.

◆ F_VEL_2D_DIA

constexpr int orb5x::F_VEL_2D_DIA = 2
constexpr

Total distribution on the velocity grid.

◆ FFINIT_PIC

constexpr int orb5x::FFINIT_PIC = 3
constexpr

Initial equilibrium-distribution value slot.

◆ FFINIT_PVOL_PIC

constexpr int orb5x::FFINIT_PVOL_PIC = 0
constexpr

Initial f0 times marker phase volume.

◆ FIELD_CORR_DIA

constexpr int orb5x::FIELD_CORR_DIA = 3
constexpr

Corrected field contribution.

◆ FIELD_DIA

constexpr int orb5x::FIELD_DIA = 1
constexpr

Field contribution to fluctuation entropy.

◆ fields

FieldsVariables* orb5x::fields
extern

Field-grid, filtering, and model state.

◆ fields_module

FieldsModule* orb5x::fields_module
extern

Field deposition and solve service.

◆ FIXED_POINT_RTOL

constexpr Real orb5x::FIXED_POINT_RTOL = 1.0E-15
constexpr

Relative tolerance for fixed-point iteration.

◆ FLUID_1

constexpr int orb5x::FLUID_1 = 0
constexpr

First electron-fluid moment slot.

◆ FLUID_2

constexpr int orb5x::FLUID_2 = 1
constexpr

Second electron-fluid moment slot.

◆ FLUID_3

constexpr int orb5x::FLUID_3 = 2
constexpr

Third electron-fluid moment slot.

◆ FLUID_4

constexpr int orb5x::FLUID_4 = 3
constexpr

Fourth electron-fluid moment slot.

◆ FLUID_5

constexpr int orb5x::FLUID_5 = 4
constexpr

Fifth electron-fluid moment slot.

◆ FLUID_6

constexpr int orb5x::FLUID_6 = 5
constexpr

Sixth electron-fluid moment slot.

◆ FLUID_7

constexpr int orb5x::FLUID_7 = 6
constexpr

Seventh electron-fluid moment slot.

◆ FLUX_CORR_DIA

constexpr int orb5x::FLUX_CORR_DIA = 4
constexpr

Corrected flux contribution.

◆ FLUX_DIA

constexpr int orb5x::FLUX_DIA = 2
constexpr

Flux contribution to fluctuation entropy.

◆ FLUX_WT_PIC

constexpr int orb5x::FLUX_WT_PIC = 1
constexpr

Flux-weight slot in deposition workspace.

◆ FR_DETRAP

constexpr int orb5x::FR_DETRAP = 3
constexpr

Transition identifier for trapped-to-passing motion.

◆ FR_PASS

constexpr int orb5x::FR_PASS = 1
constexpr

Passing-orbit classification identifier.

◆ FR_RETRAP

constexpr int orb5x::FR_RETRAP = 4
constexpr

Transition identifier for passing-to-trapped motion.

◆ FR_TRAP

constexpr int orb5x::FR_TRAP = 2
constexpr

Trapped-orbit classification identifier.

◆ FRES

constexpr const char* orb5x::FRES = "orb5_res.h5"
constexpr

Main results filename.

◆ FRES2

constexpr const char* orb5x::FRES2 = "orb5_traj.h5"
constexpr

Test-particle trajectory filename.

◆ fresid

extern::H5::H5File* orb5x::fresid

Owning main-results handle, or nullptr.

◆ fresid2

extern::H5::H5File* orb5x::fresid2

Owning trajectory-file handle, or nullptr.

◆ FSELECT_APA

constexpr int orb5x::FSELECT_APA = 3
constexpr

Select parallel vector potential A_parallel.

◆ FSELECT_PHI

constexpr int orb5x::FSELECT_PHI = 1
constexpr

Select fluctuating electrostatic potential phi.

◆ FSELECT_PHI0

constexpr int orb5x::FSELECT_PHI0 = 2
constexpr

Select axisymmetric/background potential phi0.

◆ FSIG_AV_DIA

constexpr int orb5x::FSIG_AV_DIA = 5
constexpr

Time-averaged distribution-function signal.

◆ FSIG_DIA

constexpr int orb5x::FSIG_DIA = 4
constexpr

Instantaneous distribution-function signal.

◆ FU2_AV_2D_DIA

constexpr int orb5x::FU2_AV_2D_DIA = 4
constexpr

Parallel-velocity second moment.

◆ FU_AV_2D_DIA

constexpr int orb5x::FU_AV_2D_DIA = 3
constexpr

Parallel-velocity first moment.

◆ FVP2_AV_2D_DIA

constexpr int orb5x::FVP2_AV_2D_DIA = 5
constexpr

Perpendicular-speed second moment.

◆ GL4_A11

constexpr Real orb5x::GL4_A11 = 0.25
constexpr

Gauss-Legendre Butcher coefficient a11.

◆ GL4_A12

constexpr Real orb5x::GL4_A12 = -0.038675134594812866
constexpr

Gauss-Legendre Butcher coefficient a12.

◆ GL4_A21

constexpr Real orb5x::GL4_A21 = 0.53867513459481287
constexpr

Gauss-Legendre Butcher coefficient a21.

◆ GL4_A22

constexpr Real orb5x::GL4_A22 = 0.25
constexpr

Gauss-Legendre Butcher coefficient a22.

◆ GL4_C1

constexpr Real orb5x::GL4_C1 = 0.21132486540518713
constexpr

First node of two-stage fourth-order Gauss-Legendre integration.

◆ GL4_C2

constexpr Real orb5x::GL4_C2 = 0.78867513459481287
constexpr

Second Gauss-Legendre time node.

◆ GRB_DIA

constexpr int orb5x::GRB_DIA = 2
constexpr

Grad-B drift contribution.

◆ GRP_DIA

constexpr int orb5x::GRP_DIA = 4
constexpr

Pressure-gradient contribution.

◆ GSUM_2_DIA

constexpr int orb5x::GSUM_2_DIA = 24
constexpr

Second raw moment of g.

◆ GSUM_3_DIA

constexpr int orb5x::GSUM_3_DIA = 25
constexpr

Third raw moment of g.

◆ GSUM_4_DIA

constexpr int orb5x::GSUM_4_DIA = 26
constexpr

Fourth raw moment of g.

◆ GSUM_DIA

constexpr int orb5x::GSUM_DIA = 23
constexpr

First raw moment of marker sampling distribution g.

◆ HEAT_DIA

constexpr int orb5x::HEAT_DIA = 0
constexpr

Total radial heat flux.

◆ HEAT_DIA_NEO

constexpr int orb5x::HEAT_DIA_NEO = 3
constexpr

Neoclassical heat-flux component.

◆ HEAT_P_DIA

constexpr int orb5x::HEAT_P_DIA = 9
constexpr

Passing-particle heat flux.

◆ HEAT_P_DIA_NEO

constexpr int orb5x::HEAT_P_DIA_NEO = 13
constexpr

Neoclassical passing heat flux.

◆ HEAT_TR_DIA

constexpr int orb5x::HEAT_TR_DIA = 10
constexpr

Trapped-particle heat flux.

◆ HEAT_TR_DIA_NEO

constexpr int orb5x::HEAT_TR_DIA_NEO = 14
constexpr

Neoclassical trapped heat flux.

◆ HEATING_DENS_DIA

constexpr int orb5x::HEATING_DENS_DIA = 4
constexpr

Heating-source density contribution.

◆ HEATING_ENERGY_DIA

constexpr int orb5x::HEATING_ENERGY_DIA = 5
constexpr

Heating-source energy contribution.

◆ HEATING_VPLL_DIA

constexpr int orb5x::HEATING_VPLL_DIA = 7
constexpr

Heating-source parallel-momentum contribution.

◆ HEATING_ZF_DIA

constexpr int orb5x::HEATING_ZF_DIA = 6
constexpr

Heating-source zonal-flow contribution.

◆ ID_PIC

constexpr int orb5x::ID_PIC = 0
constexpr

Globally persistent marker identifier slot.

◆ ILARM_PIC

constexpr int orb5x::ILARM_PIC = 1
constexpr

Offset of the first gyroaveraging point.

◆ IMA

constexpr Complex orb5x::IMA {0.0, 1.0}
constexpr

Imaginary unit used by Fourier-space operations.

◆ INNER_EDGE

constexpr int orb5x::INNER_EDGE = 0
constexpr

Inner-radial-boundary loss slot.

◆ INPUT_FILENAME

constexpr const char* orb5x::INPUT_FILENAME = "input"
constexpr

Default namelist input filename.

◆ islands

IslandsVariables* orb5x::islands
extern

Prescribed magnetic-island configuration.

◆ JBOOT_DIA

constexpr int orb5x::JBOOT_DIA = 6
constexpr

Bootstrap-current moment.

◆ JDOTE_DIA

constexpr int orb5x::JDOTE_DIA = 13
constexpr

Species energy transfer j dot E.

◆ KBOLTZ

constexpr Real orb5x::KBOLTZ = 1.3806E-23
constexpr

Boltzmann constant in joules per kelvin.

◆ KSI_DIA

constexpr int orb5x::KSI_DIA = 3
constexpr

First nonsingular axis-coordinate displacement.

◆ KSIETA_PIC

constexpr int orb5x::KSIETA_PIC = 0
constexpr

Low-discrepancy loading-state slot.

◆ LNLAM

constexpr Real orb5x::LNLAM = 15.0
constexpr

Reference Coulomb logarithm, dimensionless.

◆ LOSSES_MOMENTS

constexpr int orb5x::LOSSES_MOMENTS = 3
constexpr

Number of tracked loss moments.

◆ lu_dat

constexpr int orb5x::lu_dat = 99
constexpr

Legacy generic-data unit.

◆ lu_datn

constexpr int orb5x::lu_datn = 32
constexpr

Legacy density-data unit.

◆ lu_datv

constexpr int orb5x::lu_datv = 100
constexpr

Legacy velocity-data unit.

◆ lu_debug

constexpr int orb5x::lu_debug = 13
constexpr

Legacy debug-log unit.

◆ lu_denprofs

constexpr int orb5x::lu_denprofs = 89
constexpr

Legacy density-profile unit.

◆ lu_f0

constexpr int orb5x::lu_f0 = 90
constexpr

Legacy numerical-f0 unit.

◆ lu_fields

constexpr int orb5x::lu_fields = 96
constexpr

Legacy saved-field unit.

◆ lu_input

constexpr int orb5x::lu_input = 16
constexpr

Legacy Fortran unit reserved for namelist input.

◆ lu_io

constexpr int orb5x::lu_io = 14
constexpr

Legacy general I/O unit.

◆ lu_kprofs

constexpr int orb5x::lu_kprofs = 88
constexpr

Legacy gradient-profile unit.

◆ lu_noh5

constexpr int orb5x::lu_noh5 = 63
constexpr

Legacy non-HDF5 output unit.

◆ lu_optidat

constexpr int orb5x::lu_optidat = 75
constexpr

Legacy optimized-loading data unit.

◆ lu_p1

constexpr int orb5x::lu_p1 = 81
constexpr

Legacy first potential-component unit.

◆ lu_p2

constexpr int orb5x::lu_p2 = 83
constexpr

Legacy second potential-component unit.

◆ lu_profiles

constexpr int orb5x::lu_profiles = 78
constexpr

Legacy equilibrium-profile unit.

◆ lu_profs

constexpr int orb5x::lu_profs = 87
constexpr

Legacy species-profile unit.

◆ lu_pszs

constexpr int orb5x::lu_pszs = 36
constexpr

Legacy PSZS-output unit.

◆ lu_res

constexpr int orb5x::lu_res = 34
constexpr

Legacy results unit.

◆ lu_restime

constexpr int orb5x::lu_restime = 35
constexpr

Legacy restart-timing unit.

◆ lu_stop

constexpr int orb5x::lu_stop = 31
constexpr

Legacy stop/status-file unit.

◆ lu_test

constexpr int orb5x::lu_test = 33
constexpr

Legacy test-output unit.

◆ lu_testpart

constexpr int orb5x::lu_testpart = 77
constexpr

Legacy test-particle input unit.

◆ lu_tkdat

constexpr int orb5x::lu_tkdat = 97
constexpr

Legacy toolkit-data unit.

◆ lu_tklog

constexpr int orb5x::lu_tklog = 98
constexpr

Legacy toolkit-log unit.

◆ lu_traj

constexpr int orb5x::lu_traj = 95
constexpr

Legacy trajectory-output unit.

◆ lu_version

constexpr int orb5x::lu_version = 15
constexpr

Legacy version-file unit.

◆ MATS

MatArray orb5x::MATS
extern

Process-wide solver matrix registry, matching Fortran MATS.

◆ MAX_PIC2_C

constexpr int orb5x::MAX_PIC2_C = 7
constexpr

Auxiliary marker reals with coarse-graining extras.

◆ MAX_PIC2_NC

constexpr int orb5x::MAX_PIC2_NC = 5
constexpr

Auxiliary marker reals without coarse-graining extras.

◆ MAX_PIC3

constexpr int orb5x::MAX_PIC3 = 2
constexpr

Integer/flag values in tertiary marker storage.

◆ MAX_PIC4

constexpr int orb5x::MAX_PIC4 = 1
constexpr

64-bit integer values stored per marker.

◆ MAX_WORK_C

constexpr int orb5x::MAX_WORK_C = 6
constexpr

Primary marker reals with the second weight.

◆ MAX_WORK_NC

constexpr int orb5x::MAX_WORK_NC = 5
constexpr

Primary marker reals without the second weight.

◆ MEMKSA

constexpr Real orb5x::MEMKSA = 9.1094E-31
constexpr

Electron mass in kilograms.

◆ MIMKSA

constexpr Real orb5x::MIMKSA = 1.6726231E-27
constexpr

Reference proton/ion mass in kilograms.

◆ moments_3d_size

constexpr int orb5x::moments_3d_size = 8
constexpr

Number of standard 3-D moments.

◆ MOMENTUM_DIA

constexpr int orb5x::MOMENTUM_DIA = 2
constexpr

Total radial parallel-momentum flux.

◆ MOMENTUM_DIA_NEO

constexpr int orb5x::MOMENTUM_DIA_NEO = 5
constexpr

Neoclassical momentum-flux component.

◆ MPR_2D_ID_JDOTE_ES

constexpr int orb5x::MPR_2D_ID_JDOTE_ES = 0
constexpr

Electrostatic j dot E transfer.

◆ MPR_2D_ID_JDOTE_ES_S1

constexpr int orb5x::MPR_2D_ID_JDOTE_ES_S1 = 1
constexpr

Electrostatic j dot E in the selected radial interval.

◆ MPR_2D_SIZE

constexpr int orb5x::MPR_2D_SIZE = 2
constexpr

Number of mode-particle-resonance 2-D quantities.

◆ MU0

constexpr Real orb5x::MU0 = 4.0 * PI * 1e-7
constexpr

Vacuum permeability in henries per metre.

◆ MU_PIC

constexpr int orb5x::MU_PIC = 0
constexpr

Normalized magnetic-moment slot in auxiliary storage.

◆ N_DF_AV_2D_DIA

constexpr int orb5x::N_DF_AV_2D_DIA = 1
constexpr

Marker-count-weighted average of delta f.

◆ N_VEL_2D_DIA

constexpr int orb5x::N_VEL_2D_DIA = 0
constexpr

Marker count on the two-dimensional velocity grid.

◆ NBIN_EN

constexpr int orb5x::NBIN_EN = 32
constexpr

Default heating energy bins.

◆ NBIN_LAM

constexpr int orb5x::NBIN_LAM = 64
constexpr

Default electron pitch lambda bins.

◆ NBIN_MU

constexpr int orb5x::NBIN_MU = 128
constexpr

Magnetic-moment bins for bounce-averaged v_parallel/B.

◆ NBIN_PSI0

constexpr int orb5x::NBIN_PSI0 = 64
constexpr

Flux bins for bounce-averaged v_parallel/B.

◆ NBIN_R

constexpr int orb5x::NBIN_R = 64
constexpr

Default heating radial bins.

◆ NBIN_S

constexpr int orb5x::NBIN_S = 32
constexpr

Default electron radial bins.

◆ NBIN_THETA

constexpr int orb5x::NBIN_THETA = 64
constexpr

Default electron poloidal-angle bins.

◆ NBIN_XI

constexpr int orb5x::NBIN_XI = 64
constexpr

Default electron pitch-cosine xi bins.

◆ NCONTROL_DENS_DIA

constexpr int orb5x::NCONTROL_DENS_DIA = 0
constexpr

Noise-control density correction.

◆ NCONTROL_ENERGY_DIA

constexpr int orb5x::NCONTROL_ENERGY_DIA = 1
constexpr

Noise-control energy correction.

◆ NCONTROL_VPLL_DIA

constexpr int orb5x::NCONTROL_VPLL_DIA = 3
constexpr

Noise-control parallel-momentum correction.

◆ NCONTROL_ZF_DIA

constexpr int orb5x::NCONTROL_ZF_DIA = 2
constexpr

Noise-control zonal-flow correction.

◆ ndump

constexpr int orb5x::ndump = 12
constexpr

Legacy unit for formatted restart dumps.

◆ ndump_bin_a

constexpr int orb5x::ndump_bin_a = 11
constexpr

Legacy unit for binary array dumps.

◆ ndump_bin_p

constexpr int orb5x::ndump_bin_p = 10
constexpr

Legacy unit for binary particle dumps.

◆ NLARM_PIC

constexpr int orb5x::NLARM_PIC = 0
constexpr

Number of gyroaveraging points in Larmor metadata.

◆ NOISE_AV_DIA

constexpr int orb5x::NOISE_AV_DIA = 7
constexpr

Time-averaged particle-noise estimator.

◆ NOISE_DIA

constexpr int orb5x::NOISE_DIA = 6
constexpr

Instantaneous particle-noise estimator.

◆ NPTOT_PRE

constexpr Int8 orb5x::NPTOT_PRE = 100000000
constexpr

Samples used by adiabatic-density precomputation.

◆ NUMBER_SOURCE_DIAG

constexpr int orb5x::NUMBER_SOURCE_DIAG = 12
constexpr

Number of one-dimensional source diagnostics.

◆ NXI

constexpr int orb5x::NXI = 8
constexpr

Helical-angle bins in magnetic-island diagnostics.

◆ OMP_ZERO

constexpr int orb5x::OMP_ZERO = 0
constexpr

Zero offset used by OpenMP-compatible indexing paths.

◆ OUTER_EDGE

constexpr int orb5x::OUTER_EDGE = 1
constexpr

Outer-radial-boundary loss slot.

◆ P_PIC

constexpr int orb5x::P_PIC = 5
constexpr

Background/second-weight slot when two weights are enabled.

◆ PAR_DIA

constexpr int orb5x::PAR_DIA = 1
constexpr

Parallel-electric-field contribution.

◆ PARAFRES

constexpr const char* orb5x::PARAFRES = "orb5_res_parallel.h5"
constexpr

Parallel results filename.

◆ parafresid

extern::H5::H5File* orb5x::parafresid

Owning parallel-results handle, or nullptr.

◆ parallel

ParallelVariables* orb5x::parallel
extern

MPI topology and host-thread state.

◆ parmove_module

ParMove* orb5x::parmove_module
extern

Toroidal particle-exchange service.

◆ part_fields_module

PartFieldsModule * orb5x::part_fields_module
extern

Marker-to-field interpolation service.

Process-wide particle–field module owned and initialized by ORB5X globals.

◆ PARTICLE_DIA

constexpr int orb5x::PARTICLE_DIA = 1
constexpr

Total radial particle flux.

◆ PARTICLE_DIA_NEO

constexpr int orb5x::PARTICLE_DIA_NEO = 4
constexpr

Neoclassical particle-flux component.

◆ particle_module

ParticleModule * orb5x::particle_module
extern

Marker loading and push service.

◆ PARTICLE_P_DIA

constexpr int orb5x::PARTICLE_P_DIA = 11
constexpr

Passing-particle particle flux.

◆ PARTICLE_P_DIA_NEO

constexpr int orb5x::PARTICLE_P_DIA_NEO = 15
constexpr

Neoclassical passing particle flux.

◆ PARTICLE_TR_DIA

constexpr int orb5x::PARTICLE_TR_DIA = 12
constexpr

Trapped-particle particle flux.

◆ PARTICLE_TR_DIA_NEO

constexpr int orb5x::PARTICLE_TR_DIA_NEO = 16
constexpr

Neoclassical trapped particle flux.

◆ PARTQUANTS_NUMELS

constexpr int orb5x::PARTQUANTS_NUMELS = 20
constexpr

Marker quantities written per test-particle record.

◆ PEKIN_DIA

constexpr int orb5x::PEKIN_DIA = 7
constexpr

Marker-weighted kinetic energy.

◆ PHASE_DF_DIA

constexpr int orb5x::PHASE_DF_DIA = 3
constexpr

Binned delta f.

◆ PHASE_F0_DIA

constexpr int orb5x::PHASE_F0_DIA = 5
constexpr

Binned equilibrium distribution.

◆ PHASE_NUMPART_DIA

constexpr int orb5x::PHASE_NUMPART_DIA = 0
constexpr

Marker count in each phase-space bin.

◆ PHASE_P_DIA

constexpr int orb5x::PHASE_P_DIA = 4
constexpr

Background/second-weight sum.

◆ PHASE_PVOL_DIA

constexpr int orb5x::PHASE_PVOL_DIA = 1
constexpr

Phase-space-volume sum.

◆ PHASE_W2_DIA

constexpr int orb5x::PHASE_W2_DIA = 6
constexpr

Squared perturbation-weight sum.

◆ PHASE_W_DIA

constexpr int orb5x::PHASE_W_DIA = 2
constexpr

Perturbation-weight sum.

◆ PHI_2D_DIA

constexpr int orb5x::PHI_2D_DIA = 0
constexpr

Global electrostatic-potential spectrum.

◆ PHI_2D_LOC_DIA

constexpr int orb5x::PHI_2D_LOC_DIA = 1
constexpr

Radially local electrostatic-potential spectrum.

◆ PHI_DIA

constexpr int orb5x::PHI_DIA = 2
constexpr

Toroidal-angle displacement component.

◆ PHI_PIC

constexpr int orb5x::PHI_PIC = 2
constexpr

Toroidal-angle slot in primary marker storage, radians.

◆ PI

constexpr Real orb5x::PI = 3.141592653589793238462643383279502884197
constexpr

Circle constant pi.

◆ PIO2

constexpr Real orb5x::PIO2 = 1.57079632679489661923132169163975144209858
constexpr

Half pi, radians.

◆ PNUMB_DIA

constexpr int orb5x::PNUMB_DIA = 3
constexpr

Total represented particle number.

◆ PNUMB_IN_DIA

constexpr int orb5x::PNUMB_IN_DIA = 11
constexpr

Particle number inside the diagnostic volume.

◆ PNUMB_OUT_DIA

constexpr int orb5x::PNUMB_OUT_DIA = 14
constexpr

Particle number outside the diagnostic volume.

◆ POLARISATION_TERM_DIVP0

constexpr int orb5x::POLARISATION_TERM_DIVP0 = 9
constexpr

Divergence of equilibrium polarization P0.

◆ POLARISATION_TERM_DIVQ0

constexpr int orb5x::POLARISATION_TERM_DIVQ0 = 10
constexpr

Divergence of equilibrium polarization flux Q0.

◆ POLARISATION_TERM_P0

constexpr int orb5x::POLARISATION_TERM_P0 = 11
constexpr

Equilibrium polarization P0 term.

◆ POLARISATION_TERM_Q0

constexpr int orb5x::POLARISATION_TERM_Q0 = 12
constexpr

Equilibrium polarization flux Q0 term.

◆ POLPROD_DIA

constexpr int orb5x::POLPROD_DIA = 5
constexpr

Polarization-product moment.

◆ PSI0CORR_PIC

constexpr int orb5x::PSI0CORR_PIC = 4
constexpr

Corrected invariant-flux coordinate slot.

◆ pszs

std::vector<PszsVariables>* orb5x::pszs
extern

Per-species phase-space zonal-structure state.

◆ PULLBACK_DIA

constexpr int orb5x::PULLBACK_DIA = 8
constexpr

Pullback-transformation contribution.

◆ PVOL_PIC

constexpr int orb5x::PVOL_PIC = 1
constexpr

Marker phase-space-volume slot.

◆ PWEIGHTSUM_2_DIA

constexpr int orb5x::PWEIGHTSUM_2_DIA = 19
constexpr

Second raw moment of the second weight.

◆ PWEIGHTSUM_3_DIA

constexpr int orb5x::PWEIGHTSUM_3_DIA = 20
constexpr

Third raw moment of the second weight.

◆ PWEIGHTSUM_4_DIA

constexpr int orb5x::PWEIGHTSUM_4_DIA = 21
constexpr

Fourth raw moment of the second weight.

◆ PWEIGHTSUM_DIA

constexpr int orb5x::PWEIGHTSUM_DIA = 18
constexpr

First raw moment of the second weight.

◆ QP_DIA

constexpr int orb5x::QP_DIA = 4
constexpr

Parallel heat-flux moment.

◆ REV_ALP

constexpr int orb5x::REV_ALP = 6
constexpr

Bit-reversed sequence for loading factor alpha.

◆ REV_ETA

constexpr int orb5x::REV_ETA = 1
constexpr

Bit-reversed sequence for the second spatial coordinate.

◆ REV_KSI

constexpr int orb5x::REV_KSI = 0
constexpr

Bit-reversed sequence for the first spatial coordinate.

◆ REV_V1

constexpr int orb5x::REV_V1 = 2
constexpr

Bit-reversed sequence for the first velocity coordinate.

◆ REV_V2

constexpr int orb5x::REV_V2 = 3
constexpr

Bit-reversed sequence for the second velocity coordinate.

◆ REV_V3

constexpr int orb5x::REV_V3 = 5
constexpr

Bit-reversed sequence for the third velocity coordinate.

◆ REV_W

constexpr int orb5x::REV_W = 4
constexpr

Bit-reversed sequence for marker weights.

◆ RHO_2D_DIA

constexpr int orb5x::RHO_2D_DIA = 2
constexpr

Global charge-density spectrum.

◆ RHO_2D_LOC_DIA

constexpr int orb5x::RHO_2D_LOC_DIA = 3
constexpr

Local charge-density spectrum.

◆ RHOG_PIC

constexpr int orb5x::RHOG_PIC = 2
constexpr

Normalized gyroradius in Larmor metadata.

◆ S_DIA

constexpr int orb5x::S_DIA = 0
constexpr

Radial displacement component.

◆ S_PIC

constexpr int orb5x::S_PIC = 0
constexpr

Radial-coordinate slot in primary marker storage.

◆ S_PROD_DIA

constexpr int orb5x::S_PROD_DIA = 0
constexpr

Entropy-production term.

◆ SAMP_DF_DIA

constexpr int orb5x::SAMP_DF_DIA = 3
constexpr

Sampled delta f.

◆ SAMP_F0_DIA

constexpr int orb5x::SAMP_F0_DIA = 5
constexpr

Sampled equilibrium distribution.

◆ SAMP_NUMPART_DIA

constexpr int orb5x::SAMP_NUMPART_DIA = 0
constexpr

Marker count in each sampling bin.

◆ SAMP_P_DIA

constexpr int orb5x::SAMP_P_DIA = 4
constexpr

Summed background/second weight.

◆ SAMP_PVOL_DIA

constexpr int orb5x::SAMP_PVOL_DIA = 1
constexpr

Summed marker phase-space volume.

◆ SAMP_W2_DIA

constexpr int orb5x::SAMP_W2_DIA = 6
constexpr

Summed squared perturbation weight.

◆ SAMP_W_DIA

constexpr int orb5x::SAMP_W_DIA = 2
constexpr

Summed perturbation weight.

◆ SIGNAL_AV_DIA

constexpr int orb5x::SIGNAL_AV_DIA = 1
constexpr

Time-averaged total signal estimator.

◆ SIGNAL_DIA

constexpr int orb5x::SIGNAL_DIA = 0
constexpr

Instantaneous total signal estimator.

◆ SIGNAL_NONZONAL_AV_DIA

constexpr int orb5x::SIGNAL_NONZONAL_AV_DIA = 3
constexpr

Time-averaged nonzonal signal estimator.

◆ SIGNAL_NONZONAL_DIA

constexpr int orb5x::SIGNAL_NONZONAL_DIA = 2
constexpr

Instantaneous nonzonal signal estimator.

◆ slope_line

constexpr Real orb5x::slope_line = 0.0
constexpr

Slope of the optimized-loading weight-limit line.

◆ solver

SolverVariables* orb5x::solver
extern

Quasineutrality and Ampere solver configuration.

◆ sorting

SortingVariables* orb5x::sorting
extern

Particle binning and sorting configuration.

◆ SOURCE_3D_DN_DIA

constexpr int orb5x::SOURCE_3D_DN_DIA = 1
constexpr

Three-dimensional source density rate.

◆ SOURCE_3D_POWER_DIA

constexpr int orb5x::SOURCE_3D_POWER_DIA = 0
constexpr

Three-dimensional deposited source power.

◆ species

std::vector<SpeciesVariables>* orb5x::species
extern

Per-species physical and numerical state.

◆ SQRT2

constexpr Real orb5x::SQRT2 = 1.41421356237309504880168872420969807856967
constexpr

Square root of two.

◆ SUMF0_DIA

constexpr int orb5x::SUMF0_DIA = 8
constexpr

Marker sum of equilibrium distribution.

◆ T2GAUSS

constexpr Real orb5x::T2GAUSS = 1.e4
constexpr

Number of gauss per tesla.

◆ thresh

constexpr Real orb5x::thresh = 23.0
constexpr

Threshold parameter of optimized marker loading.

◆ TMP_PHI_PIC

constexpr int orb5x::TMP_PHI_PIC = 5
constexpr

Temporary toroidal coordinate used by coarse graining.

◆ TOR_MOMENTUM_DIA

constexpr int orb5x::TOR_MOMENTUM_DIA = 6
constexpr

Toroidal-momentum flux.

◆ TOR_MOMENTUM_DIA_NEO

constexpr int orb5x::TOR_MOMENTUM_DIA_NEO = 7
constexpr

Neoclassical toroidal-momentum flux.

◆ TOR_REYNOLDS_DIA

constexpr int orb5x::TOR_REYNOLDS_DIA = 8
constexpr

Toroidal Reynolds-stress contribution.

◆ TOT_DIA

constexpr int orb5x::TOT_DIA = 0
constexpr

Total j dot E energy transfer.

◆ TRAP_PIC

constexpr int orb5x::TRAP_PIC = 1
constexpr

Trapped/passing classification slot.

◆ TWOPI

constexpr Real orb5x::TWOPI = 6.283185307179586476925286766559005768394
constexpr

Full angular period, radians.

◆ U_DIA

constexpr int orb5x::U_DIA = 5
constexpr

Parallel-velocity displacement component.

◆ U_PIC

constexpr int orb5x::U_PIC = 3
constexpr

Normalized parallel-velocity slot.

◆ UT2_DIA

constexpr int orb5x::UT2_DIA = 1
constexpr

Parallel-velocity second moment.

◆ UT2_P_DIA

constexpr int orb5x::UT2_P_DIA = 7
constexpr

Passing-particle parallel-velocity second moment.

◆ UT2_TR_DIA

constexpr int orb5x::UT2_TR_DIA = 11
constexpr

Trapped-particle parallel-velocity second moment.

◆ UT_DIA

constexpr int orb5x::UT_DIA = 0
constexpr

Parallel-velocity first moment.

◆ UT_MS_DIA

constexpr int orb5x::UT_MS_DIA = 7
constexpr

Square of the mean parallel velocity.

◆ UT_P_DIA

constexpr int orb5x::UT_P_DIA = 6
constexpr

Passing-particle parallel-velocity first moment.

◆ UT_TR_DIA

constexpr int orb5x::UT_TR_DIA = 10
constexpr

Trapped-particle parallel-velocity first moment.

◆ UW_PIC

constexpr int orb5x::UW_PIC = 3
constexpr

Parallel-velocity-times-weight workspace slot.

◆ V_PAR2_AVH_DIA

constexpr int orb5x::V_PAR2_AVH_DIA = 5
constexpr

Helically binned parallel-velocity second moment.

◆ V_PAR2_TH_DIA

constexpr int orb5x::V_PAR2_TH_DIA = 1
constexpr

Poloidally binned parallel-speed squared.

◆ V_PAR_AVH_DIA

constexpr int orb5x::V_PAR_AVH_DIA = 4
constexpr

Helically binned parallel-velocity first moment.

◆ V_PAR_TH_DIA

constexpr int orb5x::V_PAR_TH_DIA = 0
constexpr

Poloidally binned parallel-velocity moment.

◆ V_PERP2_AVH_DIA

constexpr int orb5x::V_PERP2_AVH_DIA = 6
constexpr

Helically binned perpendicular-speed second moment.

◆ V_PERP2_TH_DIA

constexpr int orb5x::V_PERP2_TH_DIA = 2
constexpr

Poloidally binned perpendicular-speed squared.

◆ vernum

constexpr Real orb5x::vernum = 1.0
constexpr

Legacy numeric ORB5X file/version identifier.

◆ VPLL_LOSSES

constexpr int orb5x::VPLL_LOSSES = 2
constexpr

Lost parallel momentum.

◆ VPLTOR_DIA

constexpr int orb5x::VPLTOR_DIA = 4
constexpr

Toroidal projection of parallel flow.

◆ VPT2_DIA

constexpr int orb5x::VPT2_DIA = 2
constexpr

Perpendicular-speed second moment.

◆ VPT2_P_DIA

constexpr int orb5x::VPT2_P_DIA = 8
constexpr

Passing-particle perpendicular-speed second moment.

◆ VPT2_TR_DIA

constexpr int orb5x::VPT2_TR_DIA = 12
constexpr

Trapped-particle perpendicular-speed second moment.

◆ VPT_PIC

constexpr int orb5x::VPT_PIC = 1
constexpr

Normalized perpendicular-speed quantity.

◆ W_AVERAGE

constexpr int orb5x::W_AVERAGE = 0
constexpr

Mean marker weight.

◆ W_DIA

constexpr int orb5x::W_DIA = 6
constexpr

Marker-weight displacement component.

◆ W_PIC

constexpr int orb5x::W_PIC = 4
constexpr

Perturbed-distribution weight slot.

◆ W_VARIANCE

constexpr int orb5x::W_VARIANCE = 4
constexpr

Marker-weight variance.

◆ WADI_AVERAGE

constexpr int orb5x::WADI_AVERAGE = 2
constexpr

Mean adiabatic marker weight.

◆ WADI_VARIANCE

constexpr int orb5x::WADI_VARIANCE = 6
constexpr

Adiabatic-weight variance.

◆ wLimitFrac

constexpr Real orb5x::wLimitFrac = 10.0
constexpr

Initial fractional marker-weight limit.

◆ wLimitFracLimit

constexpr Real orb5x::wLimitFracLimit = 200.0
constexpr

Maximum fractional marker-weight limit.

◆ WV_AVERAGE

constexpr int orb5x::WV_AVERAGE = 1
constexpr

Mean velocity-weighted marker weight.

◆ WV_VARIANCE

constexpr int orb5x::WV_VARIANCE = 5
constexpr

Velocity-weighted marker-weight variance.

◆ WVADI_AVERAGE

constexpr int orb5x::WVADI_AVERAGE = 3
constexpr

Mean velocity-weighted adiabatic weight.

◆ WVADI_VARIANCE

constexpr int orb5x::WVADI_VARIANCE = 7
constexpr

Velocity-weighted adiabatic-weight variance.