ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
orb5x::ParticleModule Class Reference

Own particle state and orchestrate marker loading, push, migration, and deposition. More...

#include "part.hpp"

+ Collaboration diagram for orb5x::ParticleModule:

Public Member Functions

Real b_star (Real st, Real chit, Real b, Real ut, Real tprime, Real addpBst, int isp)
 Evaluate the normalized guiding-center B* denominator.
 
void bcpart (int isp, bool run_on_device)
 Apply radial and toroidal boundary conditions to one species.
 
void bcpart_disp (bool run_on_device)
 Apply particle boundary conditions to all kinetic species.
 
void calc_dist (int isp, Real sigmat, Real chit, Real ut, Real mu, Real psi0_corr, Real &distribution, Real *bst=nullptr, Real *dist_coeff=nullptr, Real *diff_t_vpll=nullptr)
 Evaluate the represented distribution at one phase-space point.
 
void charge_deposition_passing_electrons_disp (int isp, const int *lb, const int *ub, Kokkos::View< Real ** > &rho_passing)
 Deposit the passing-electron adiabatic response on a 2-D mesh.
 
void check_ffinit (int isp)
 Validation routine for FFINIT consistency Matching Fortran part.F90 lines 1497-1514.
 
void compute_all_larmor_positions (int isp)
 Fill all gyropoint positions for one species.
 
void compute_all_larmor_positions_disp (bool comp_dk)
 Fill Larmor-point positions for all eligible species.
 
void compute_moments_3d (int isp)
 Compute all configured three-dimensional moments for one species.
 
void compute_psi0_corr_disp (bool flag)
 Compute canonical-Maxwellian flux corrections for all species.
 
void compute_reduced_weights (int isp, const Kokkos::View< Real ** > &pic1_loc, const Kokkos::View< Real ** > &pic2_loc, const Kokkos::View< bool ** > &pic3_loc, const Kokkos::View< int * > &npart_view, int nsel_att)
 Compute reduced deposition weights from explicit marker arrays.
 
void compute_reduced_weights_disp (int isp, int nsel_att)
 Dispatch control-variate weight reduction for a species.
 
void deposit_bsplines (int isp, int npart_loc, const Kokkos::View< Real ** > &pic1_loc, const Kokkos::View< Real ** > &pic2_loc)
 Deposit markers into PSZS tensor-product spline coordinates.
 
void diagnose_particles (int isp)
 Compute configured particle moments for one species.
 
void gauss_list_init (int isp, Kokkos::View< Real ** > &pert_table, int &nperts)
 Gaussian perturbation list loading from file Matching Fortran part.F90 lines 8330-8355.
 
void get_field_disp (const FieldType &field, int istep, bool nl_main_substep, int i_att)
 Gather one field and its gradients to all guiding centers/gyropoints.
 
Real get_KE (int isp)
 Sum normalized kinetic energy over one local species.
 
void get_larmor_indices_disp (bool initflag=false, bool adapt_only=false)
 Compute Larmor ring sizes/offsets for all eligible species.
 
void get_pos (int isp, int ip, Real *pos)
 Return one marker's physical position coordinates.
 
void get_properties (int isp, int ip, Real *props)
 Fill the standard property vector for one stored marker.
 
void get_toroidal_momentum (int isp, Real st, Real chit, Real ut, Real mut, Real psi_correction, Real tsubB, Real &psit_prof, Real &psit_pot)
 Compute canonical flux labels used by profiles and potential terms.
 
Real get_vpaob_ba (Real psi, Real mu, Real en, Real v_pll, int isp)
 Get bounce-averaged v_parallel/B from precomputed lookup table.
 
void grid_pic (int isp, bool run_on_device)
 Deposit the configured primary quantity for one species.
 
void grid_pic (int isp, int nsel_att, bool reduce_flag, const int *lb, const int *ub, Kokkos::View< Real ***, Kokkos::LayoutStride > assign1, int i_att)
 Charge/current deposition on grid (matching Fortran grid_pic, part.F90 lines 7771-7920)
 
void grid_pic_diagnostic (int isp, int nsel_att, const int *lb, const int *ub, Kokkos::View< Real *** > &assign1)
 Diagnostic charge/current deposition on grid (matching Fortran grid_pic_diagnostic, part.F90 lines 8190-8272)
 
void helical_flux_label (Real sigmat, Real xiang, int &irloc, Real &dr_flux_inv, int &ipol)
 Map a marker to magnetic-island radial and poloidal diagnostic bins.
 
void init_particles ()
 Allocate particle storage and build bounce-averaged momentum tables.
 
void init_push_diagnostics ()
 Initialize bin measures and scratch used by in-push diagnostics.
 
void init_test_particles (int isp)
 Allocate test-particle state for one species.
 
void l5_auto_init (int isp, Kokkos::View< Real ** > &l5_s_array)
 LIGKA mode automatic initialization Matching Fortran part.F90 lines 8284-8328.
 
void load_particles ()
 Generate or restore the initial marker distribution for every species.
 
void load_test_particles (int isp)
 Load configured test-particle initial conditions for one species.
 
void parmove (int iter, bool run_on_device, bool work1flag, bool work2flag, bool work3flag=false, bool work5flag=false, bool work6flag=false, bool work7flag=false, bool work8flag=false, bool work9flag=false)
 Migrate every species and selected work arrays across toroidal domains.
 
void part_grid (int isp, int nsel_att, bool reduce_flag, int i_att, const int *lb, const int *ub, Kokkos::View< Real ***, Kokkos::LayoutStride > assign1, Kokkos::View< Real ** > *assign1_passing=nullptr)
 Charge or current deposition wrapper routine Matching Fortran part.F90 lines 8698-8727 (external part_grid subroutine)
 
 ParticleModule ()=default
 Construct an uninitialized particle owner.
 
void postpush_disp ()
 Run post-push full-f updates for all applicable species.
 
void postpush_fullf (int isp)
 Recompute full-f weights after a push for one species.
 
void print_test_particles (int step)
 Emit configured test-particle diagnostics for a timestep.
 
void pszs_calc ()
 Dispatch phase-space zonal-structure accumulation.
 
void pszs_setboundaries (int isp, Real *lb, Real *ub)
 PSZS boundary setup from particle distribution Matching Fortran part.F90 lines 8442-8549 Sets up boundaries for Phase Space Zone Sampling diagnostics.
 
void pullback ()
 Convert mixed-variable electromagnetic particle state to symplectic form.
 
void push_disp (int iter)
 Advance all kinetic species through one configured push substep.
 
Real q_of_s (Real s)
 Evaluate the equilibrium safety factor at normalized radius s.
 
void quadtree_smoothing_disp ()
 Apply configured phase-space quadtree smoothing to all species.
 
void quadtree_smoothing_interface (int isp, bool diagnose_)
 Smooth one species and optionally populate smoothing diagnostics.
 
void read_write_particle_data (int flag, int datn)
 Read or write particle checkpoint state.
 
void set_weights_to_zero_at_t0 ()
 Set perturbation weights to zero at the initial time when configured.
 
void sort_gc_2D_disp ()
 Sort guiding centers in the radial/poloidal plane.
 
void sort_gc_3D_disp ()
 Sort guiding centers in local three-dimensional spatial bins.
 
void str_diagnostic_start ()
 Initialize strong flow diagnostic output files Matching Fortran part.F90 lines 4726-4750 Opens output files for psi, energy, kappa, rhs diagnostics.
 
void strong_diagnostic_output (int isp, int ip, Real psi0t, Real temp2, Real ze, Real vecrossb_f2, Real pot_equil, Real zf0, Real zvth2_inv, Real dpotdpsi, Real vdr, Real rhs)
 Record per-marker quantities used to inspect the strong-flow model.
 
void test_particle_output (int isp, int ip, Real psi0t, Real ze, Real pot_equil, Real wt, Real zvth2, Real nval, Real pvol, Real zf0)
 Store the configured diagnostic record for one test marker.
 
void trap_detrap_disp ()
 Update trapped/passing state transitions for all applicable species.
 
void unsort_gc_3D_disp ()
 Restore drift-kinetic marker arrays to their pre-sort order.
 
void update_ffinit_or_pvol ()
 Refresh stored initial-f or phase-volume values after weight changes.
 
bool uses_modified_toroidal_momentum (int isp) const
 Test whether a species uses a modified canonical momentum definition.
 
void vpa_quants (Real psi, Real mu, Real en_star, Real v_pll, int isp, Real &fvpllb, Real &dfvpllb_den, Real &dfvpllb_dpsi)
 Interpolate bounce-averaged v_parallel/B and its derivatives.
 
 ~ParticleModule ()
 Release owned sorters and Kokkos-view containers.
 

Static Public Member Functions

static void compute_deposition_attributes_dk (const Kokkos::View< Real * > &u, const Kokkos::View< Real * > &w, Kokkos::View< Real * > &uw, int n)
 Compute deposition attributes for drift-kinetic models Matching Fortran part.F90 lines 2717-2733.
 
static Real compute_psi0_corr_one_particle (int isp, Real st, Real chit, Real mut, Real ut)
 Compute one marker's canonical-Maxwellian flux correction.
 
static Real compute_vf0 (int isp, Real zvth2, Real nval, Real ze, Real zecor, Real b, Real pot_equil, Real pot_equil0, Real psit, Real ut, Real mut)
 Compute equilibrium distribution function f0.
 
static std::vector< Real > cross_product (const std::vector< Real > &a, const std::vector< Real > &b)
 Form the Cartesian cross product of two three-component vectors.
 
static void destroyStaticViews ()
 Release file-scope static Kokkos Views before Kokkos::finalize().
 
static void distrib_2D_loadRZ (const std::vector< Real > &rev2, const std::vector< Real > &rev3, const std::vector< std::vector< Real > > &prob, const std::vector< Real > &xg, const std::vector< Real > &yg, const std::vector< Real > &fdistx, Real dx, Real dy, std::vector< Real > &xp, std::vector< Real > &yp)
 Invert a precomputed 2-D loading distribution.
 
static void get_dist_derivs (Real f0, Real ut, Real mut, Real b, Real epsilon_hat, Real ze, Real zvth2, Real nval, Real Epsi, Real psit, Real ngrad, Real tgrad, Real, Real, int isp, Real &df0_dek, Real &df0_du, Real &df0_dpsi_prof, Real &df0_dchi_prof, Real &df0_dpsi_pot, Real zecor, Real pot_equil, Real pot_equil0, Real chit)
 Differentiate the configured equilibrium distribution.
 
static int get_i_cantormom (int isp)
 Return the pic2 column containing canonical toroidal momentum.
 
static Real get_kinetic_energy (Real ut, Real mut, Real b)
 Return normalized kinetic energy u^2/2 + mu*B.
 
static int get_n_larmor_pts (int isp, int nsel_gyr_local, Real rhog)
 Select the ring-point count for one gyroradius.
 
static Real get_properties_en (int isp, Real st, Real chit, Real ut, Real mut, Real vpval)
 Compute the energy-like marker property used by get_properties().
 
static void get_rhs (int ip, int isp, Real pvol, Real vdr, Real vdchi, const std::vector< Real > &vgc, const std::vector< Real > &vin, Real vpval, const std::vector< Real > &genelec, Real dvpadt0, Real dvpadt1, Real gyroapar, Real ze, Real zecor, Real dH0_dt_correction, Real pot_equil, Real pot_equil0, Real distribution, Real ut, Real mut, Real b, Real zvth2, Real nval, Real Epsi, Real psi0t, Real ngrad, Real tgrad, Real vpgrad, Real dfvpllb_dpsi, Real dfvpllb_den, Real &rhs, Real &dpotdpsi, Real &omegasq_corr, Real &df0_dpsi_prof, Real &df0_dchi_prof, Real &dpsi_prof_dt, Real &dchi_prof_dt, int rhs_type, const std::vector< Real > &mgradphi, const std::vector< Real > &vgb, const std::vector< Real > &vpressure, const std::vector< Real > &mgradapar, const std::vector< Real > &hh_sympl, Real chit, Real dchi_dt1, int iter, Real ffinit, Real dPsidt0)
 Assemble the selected delta-f weight-equation right-hand side.
 
static void init_distrib_2D_loadRZ (FieldsVariables *fields, Real lenx, Real leny, int isp, std::vector< std::vector< Real > > &prob, std::vector< Real > &xg, std::vector< Real > &yg, std::vector< Real > &fdistx, Real &dx, Real &dy)
 Build the cumulative 2-D (R,Z) loading distribution.
 
static void perp_curl_ue (Real s, Real chi, Real &smodstar, Real &chimodstar, Real &phimodstar)
 Evaluate the perpendicular electron-flow curl projection.
 
static Real reverse_hammersley (int nbase, int64_t i)
 Compute a radical-inverse element of a Hammersley sequence.
 
static void strong_flow_terms (int isp, Real sigmat, Real chit, Real bstar_inv, const std::vector< Real > &genelec, Real pztomobstar, const std::vector< Real > &bgrb, const std::vector< Real > &addp, Real expt_back, Real eypt_back, const std::vector< Real > &exh, Real ut, Real mut, const std::vector< Real > &hh, Real &dvpadt1_str, Real &dvpadt0_str, std::vector< Real > &vgc)
 Add equilibrium-E x B strong-flow terms to the characteristics.
 
static Real vf0 (int isp, Real zvth2, Real nval, Real ze, Real zecor, Real b, Real pot_equil, Real pot_equil0, Real psit, Real ut, Real mut, int nsel_f0_override=-1)
 Evaluate the selected normalized equilibrium distribution f0.
 
static Real vf0_chi_prof (Real zf0, Real, Real, Real ze, Real, Real, Real, Real, Real ut, Real, Real psit, int isp, Real zvth2, Real nval, Real zecor, Real pot_equil, Real pot_equil0, Real mut, Real chit)
 Evaluate the poloidal-profile derivative of f0.
 
static Real vf0_local_maxwellian_simple (Real zvth2, Real nval, Real ze)
 Evaluate a local Maxwellian from thermal scale, density, and energy.
 
static Real vf0_psi_prof (Real zf0, Real ngrad, Real epsilon_hat, Real ze, Real b, Real kappa_str, Real zvth2_inv, Real tgrad, Real ut, Real psi0_inv, Real psit, int isp, Real zvth2, Real nval, Real zecor, Real pot_equil, Real pot_equil0, Real mut, Real chit)
 Evaluate the radial-profile derivative of f0.
 
static Real vf0dek (Real zf0, Real zvth2, Real ze, Real psit, int isp, Real nval, Real zecor, Real b, Real pot_equil, Real pot_equil0, Real ut, Real mut, Real chit)
 Evaluate df0/dE for the configured distribution family.
 
static Real vf0du (Real zf0, Real ut, Real, Real zvth2, Real nval, Real psit, int isp, Real ze, Real zecor, Real pot_equil, Real pot_equil0, Real mut, Real chit)
 Evaluate df0/du for the configured distribution family.
 
static Real ze_correction (Real ut, Real vpval)
 Return the mixed-coordinate kinetic-energy correction.
 

Public Attributes

Kokkos::View< Real * > bin_surf_inv
 Inverse diagnostic surface measure by radial bin.
 
Kokkos::View< Real * > bin_vol_inv
 Inverse diagnostic volume by radial bin.
 
Kokkos::View< Complex *** > cfield_out_3D
 Complex three-dimensional particle-moment field.
 
Kokkos::View< Complex *** > cfield_out_3D_fft
 Fourier representation of 3-D moment field.
 
Kokkos::View< Real * > dens0
 Marker density normalization nptot/volanu by species.
 
Real dmu_bin = 0.0
 Magnetic-moment bin spacing.
 
Real dmu_bin_2 = 0.0
 Half magnetic-moment bin spacing.
 
Real dpsi_bin = 0.0
 Normalized flux-bin spacing.
 
Real dr_flux_inv = 0.0
 Inverse radial diagnostic-bin width.
 
Real dth_inv = 0.0
 Inverse poloidal diagnostic-bin width [rad^-1].
 
Real ftrap = 0.0
 Trapped-particle fraction from the most recent loading calculation.
 
std::vector< Real > integral_f0_global
 Monte-Carlo estimate of integrated equilibrium f0.
 
int irloc_in = 0
 Cached inner radial diagnostic-bin index.
 
int lb_wx = 0
 Lowest spline work-column offset.
 
int MAX_PIC2 = 0
 Number of time-independent real particle properties.
 
int MAX_PIC5 = 0
 Single-precision diagnostic-property count.
 
int MAX_WORK = 0
 Number of columns allocated in primary real work arrays.
 
int MAX_WORK_FIELDS = 0
 Leading work columns reserved for gathered fields.
 
int MAX_WORK_REV = 0
 Columns in temporary reduced-weight work storage.
 
std::vector< Moments3DClass > moments_3d_array
 Configured 3-D moment metadata.
 
Real mu_max = 0.0
 Upper normalized magnetic-moment lookup bound.
 
Real mu_min = 0.0
 Lower normalized magnetic-moment lookup bound.
 
std::vector< Real > mumax_global
 Global maximum loaded normalized magnetic moment.
 
Kokkos::View< Real ** > n_vel_1D
 Velocity-space marker histogram by species/bin.
 
Kokkos::View< Real ** > n_vel_trap_1D
 Trapped-marker velocity histogram.
 
int NBIN_MU_F0 = 0
 Number of magnetic-moment bins in f0/momentum tables.
 
int NLARM_PIC2 = 0
 pic2 column storing each marker's Larmor-ring size.
 
Kokkos::View< int * > npart
 Active local marker count by zero-based species.
 
Kokkos::View< int * > npmx
 Allocated local marker capacity by species.
 
Kokkos::View< Real * > nptot_inv
 Reciprocal total marker count by species.
 
Kokkos::View< int * > ntest
 Number of test particles by species.
 
int ntrap = 0
 Trapped marker count from the most recent calculation.
 
int num_mesh = 0
 Total quadtree mesh-cell count.
 
std::vector< PointerMarkers > pic1
 Evolving marker coordinates, velocity, and weights by species.
 
std::vector< PointerMarkers > pic2
 Time-independent invariants/loading data by species.
 
std::vector< PointerMarkersLogic > pic3
 Logical marker state such as trapping flags.
 
std::vector< PointerMarkersI8 > pic4
 64-bit marker identifiers.
 
std::vector< PointerMarkersR4 > pic5
 Single-precision diagnostic marker moments.
 
std::vector< PointerMarkers > pion_1
 Saved ion marker state used by selected algorithms.
 
Kokkos::View< Real * > ppsum_buff_real
 Contiguous scratch for MPI real reductions.
 
Real psi0_inv = 0.0
 Inverse reference flux used by profile diagnostics.
 
Real psi_max = 1.0
 Upper normalized flux bound of momentum lookup tables.
 
Real psi_min = 0.0
 Lower normalized flux bound of momentum lookup tables.
 
int qt_num_chi = 0
 Quadtree poloidal-cell count.
 
int qt_num_s = 0
 Quadtree radial-cell count.
 
Kokkos::View< bool * > qt_toggle_flag
 Per-species alternating smoothing-pass flag.
 
std::vector< PointerQuadtree > qtree
 Per-species quadtree smoothing storage.
 
Kokkos::View< Real *** > rho_passing_omp
 Per-thread passing-electron deposition scratch.
 
std::vector< std::unique_ptr< SortingClass > > sortings
 Guiding-center sorter owned per species.
 
std::vector< Real > sum_ekin_markers_global
 Global marker total kinetic-energy sum.
 
std::vector< Real > sum_pekin_markers_global
 Global marker parallel kinetic-energy sum.
 
Kokkos::View< Real * > Total_weight
 Local/global-normalized total marker weight by species.
 
int ub_wx = 0
 Highest spline work-column offset.
 
std::vector< Real > umax_global
 Global maximum loaded parallel velocity by species.
 
std::vector< Real > umin_global
 Global minimum loaded parallel velocity by species.
 
Kokkos::View< Real ** > vpbi
 Interpolation table and derivative data for vpa_quants().
 
Kokkos::View< Real **, Kokkos::LayoutLeft, Kokkos::HostSpace > vpbi_host_cache
 Host cache of vpbi.
 
Kokkos::View< Real ** > vpll_momentum_bins
 Bounce-averaged v_parallel/B table by phase-space bin.
 
Kokkos::View< Real **, Kokkos::LayoutLeft, Kokkos::HostSpace > vpll_momentum_bins_host_cache
 Host cache of momentum table.
 
std::vector< PointerMarkers > work1
 Primary push/gather workspace by species.
 
std::vector< PointerMarkers > work2
 Secondary push/gather workspace by species.
 
std::vector< PointerMarkers > work3
 GL4 stage workspace.
 
std::vector< PointerMarkers > work5
 GL4 stage workspace.
 
std::vector< PointerMarkers > work6
 GL4 stage workspace.
 
std::vector< PointerMarkers > work7
 GL4 stage workspace.
 
std::vector< PointerMarkers > work8
 GL4 stage workspace.
 
std::vector< PointerMarkers > work9
 GL4 stage workspace.
 
std::vector< PointerMarkers > work_rev
 Reduced-weight/reversal workspace, allocated on demand.
 
std::vector< PointerMarkers > work_temp
 Temporary per-marker workspace.
 
std::vector< Real > zsmax_global
 Global maximum loaded radial coordinate s.
 
std::vector< Real > zsum_global
 Global phase-space-volume sum by species.
 

Static Public Attributes

static constexpr int qt_num_s_per_ns = 2
 Quadtree radial refinement per field interval.
 

Detailed Description

Own particle state and orchestrate marker loading, push, migration, and deposition.

One ParticleModule manages all configured species. Species and particle indices are zero-based in C++; property constants from prec_const.hpp are also used as zero-based columns. Marker values follow ORB5X normalization: s=sqrt(psi), angles are radians, time is normalized to the reference ion cyclotron frequency, velocities to the reference thermal/sound scale, and magnetic moment and weights to the configured species normalization.

The module owns Kokkos Views, per-species sorting and quadtree state, restart serialization, and the bridge to field gather/deposition. It relies on initialized global equilibrium, field, solver, diagnostic, parallel, and species state.

Constructor & Destructor Documentation

◆ ParticleModule()

orb5x::ParticleModule::ParticleModule ( )
default

Construct an uninitialized particle owner.

◆ ~ParticleModule()

orb5x::ParticleModule::~ParticleModule ( )

Release owned sorters and Kokkos-view containers.

Member Function Documentation

◆ b_star()

Real orb5x::ParticleModule::b_star ( Real  st,
Real  chit,
Real  b,
Real  ut,
Real  tprime,
Real  addpBst,
int  isp 
)

Evaluate the normalized guiding-center B* denominator.

Parameters
[in]stRadial coordinate s.
[in]chitPoloidal angle [rad].
[in]bMagnetic-field magnitude.
[in]utParallel velocity/momentum coordinate.
[in]tprimeSpecies temperature/profile factor used by the model.
[in]addpBstGeometric B* correction.
[in]ispZero-based species index.
Returns
Normalized B* value used in the equations of motion.

◆ bcpart()

void orb5x::ParticleModule::bcpart ( int  isp,
bool  run_on_device 
)

Apply radial and toroidal boundary conditions to one species.

Parameters
[in]ispZero-based species index.
[in]run_on_deviceSelect device-capable execution.

◆ bcpart_disp()

void orb5x::ParticleModule::bcpart_disp ( bool  run_on_device)

Apply particle boundary conditions to all kinetic species.

Parameters
[in]run_on_deviceSelect the Kokkos device-capable path where supported.

◆ calc_dist()

void orb5x::ParticleModule::calc_dist ( int  isp,
Real  sigmat,
Real  chit,
Real  ut,
Real  mu,
Real  psi0_corr,
Real &  distribution,
Real *  bst = nullptr,
Real *  dist_coeff = nullptr,
Real *  diff_t_vpll = nullptr 
)

Evaluate the represented distribution at one phase-space point.

Parameters
[in]ispZero-based species index.
[in]sigmatRadial coordinate s.
[in]chitPoloidal angle [rad].
[in]utParallel velocity coordinate.
[in]muNormalized magnetic moment.
[in]psi0_corrCanonical-flux correction.
[out]distributionDistribution value in normalized phase-space units.
[out]bstOptional magnetic-field magnitude.
[out]dist_coeffOptional marker-to-distribution coefficient.
[out]diff_t_vpllOptional derivative with respect to parallel velocity.

◆ charge_deposition_passing_electrons_disp()

void orb5x::ParticleModule::charge_deposition_passing_electrons_disp ( int  isp,
const int *  lb,
const int *  ub,
Kokkos::View< Real ** > &  rho_passing 
)

Deposit the passing-electron adiabatic response on a 2-D mesh.

Parameters
[in]ispZero-based electron-species index.
[in]lbLower mesh bounds.
[in]ubUpper mesh bounds.
[out]rho_passingPassing-electron charge-density coefficients.

◆ check_ffinit()

void orb5x::ParticleModule::check_ffinit ( int  isp)

Validation routine for FFINIT consistency Matching Fortran part.F90 lines 1497-1514.

Parameters
ispSpecies index (0-based in C++)

◆ compute_all_larmor_positions()

void orb5x::ParticleModule::compute_all_larmor_positions ( int  isp)

Fill all gyropoint positions for one species.

Parameters
[in]ispZero-based species index.

◆ compute_all_larmor_positions_disp()

void orb5x::ParticleModule::compute_all_larmor_positions_disp ( bool  comp_dk)

Fill Larmor-point positions for all eligible species.

Parameters
[in]comp_dkAlso process drift-kinetic deposition attributes.

◆ compute_deposition_attributes_dk()

static void orb5x::ParticleModule::compute_deposition_attributes_dk ( const Kokkos::View< Real * > &  u,
const Kokkos::View< Real * > &  w,
Kokkos::View< Real * > &  uw,
int  n 
)
static

Compute deposition attributes for drift-kinetic models Matching Fortran part.F90 lines 2717-2733.

Parameters
uMarker parallel momenta
wMarker weights
uwOutput: Product of u and w
nNumber of markers

◆ compute_moments_3d()

void orb5x::ParticleModule::compute_moments_3d ( int  isp)

Compute all configured three-dimensional moments for one species.

Parameters
[in]ispZero-based species index.

◆ compute_psi0_corr_disp()

void orb5x::ParticleModule::compute_psi0_corr_disp ( bool  flag)

Compute canonical-Maxwellian flux corrections for all species.

Parameters
[in]flagEnables or clears the correction according to run mode.

◆ compute_psi0_corr_one_particle()

static Real orb5x::ParticleModule::compute_psi0_corr_one_particle ( int  isp,
Real  st,
Real  chit,
Real  mut,
Real  ut 
)
static

Compute one marker's canonical-Maxwellian flux correction.

Parameters
[in]ispZero-based species index.
[in]stMarker radial coordinate s=sqrt(psi).
[in]chitMarker poloidal angle [rad].
[in]mutNormalized magnetic moment.
[in]utNormalized parallel marker coordinate.
Returns
Correction added to the marker's canonical flux coordinate.

◆ compute_reduced_weights()

void orb5x::ParticleModule::compute_reduced_weights ( int  isp,
const Kokkos::View< Real ** > &  pic1_loc,
const Kokkos::View< Real ** > &  pic2_loc,
const Kokkos::View< bool ** > &  pic3_loc,
const Kokkos::View< int * > &  npart_view,
int  nsel_att 
)

Compute reduced deposition weights from explicit marker arrays.

Parameters
[in]ispZero-based species index.
[in]pic1_locEvolving marker properties.
[in]pic2_locInvariant marker properties.
[in]pic3_locLogical marker properties.
[in]npart_viewActive counts by species.
[in]nsel_attCharge/current selector determining the correction.

◆ compute_reduced_weights_disp()

void orb5x::ParticleModule::compute_reduced_weights_disp ( int  isp,
int  nsel_att 
)

Dispatch control-variate weight reduction for a species.

Parameters
[in]ispZero-based species index.
[in]nsel_attCharge/current attribute selector.

◆ compute_vf0()

static Real orb5x::ParticleModule::compute_vf0 ( int  isp,
Real  zvth2,
Real  nval,
Real  ze,
Real  zecor,
Real  b,
Real  pot_equil,
Real  pot_equil0,
Real  psit,
Real  ut,
Real  mut 
)
static

Compute equilibrium distribution function f0.

Public wrapper for the internal vf0 function, used by PSZS diagnostics.

Parameters
ispSpecies index (0-based)
zvth2Thermal velocity squared
nvalDensity profile value
zeKinetic energy
zecorEnergy correction
bMagnetic field magnitude
pot_equilEquilibrium potential
pot_equil0Reference equilibrium potential
psitToroidal flux coordinate
utParallel velocity
mutMagnetic moment
Returns
f0 value

◆ cross_product()

static std::vector< Real > orb5x::ParticleModule::cross_product ( const std::vector< Real > &  a,
const std::vector< Real > &  b 
)
static

Form the Cartesian cross product of two three-component vectors.

Parameters
[in]aLeft operand; its first three elements are used.
[in]bRight operand; its first three elements are used.
Returns
Three-component vector equal to a cross b.
Note
This is the C++ counterpart of the local vector operation used by part.F90; both input vectors must contain at least three elements.

◆ deposit_bsplines()

void orb5x::ParticleModule::deposit_bsplines ( int  isp,
int  npart_loc,
const Kokkos::View< Real ** > &  pic1_loc,
const Kokkos::View< Real ** > &  pic2_loc 
)

Deposit markers into PSZS tensor-product spline coordinates.

Parameters
[in]ispZero-based species index.
[in]npart_locNumber of leading local markers.
[in]pic1_locEvolving marker properties.
[in]pic2_locInvariant marker properties.

◆ destroyStaticViews()

static void orb5x::ParticleModule::destroyStaticViews ( )
static

Release file-scope static Kokkos Views before Kokkos::finalize().

◆ diagnose_particles()

void orb5x::ParticleModule::diagnose_particles ( int  isp)

Compute configured particle moments for one species.

Parameters
[in]ispZero-based species index.

◆ distrib_2D_loadRZ()

static void orb5x::ParticleModule::distrib_2D_loadRZ ( const std::vector< Real > &  rev2,
const std::vector< Real > &  rev3,
const std::vector< std::vector< Real > > &  prob,
const std::vector< Real > &  xg,
const std::vector< Real > &  yg,
const std::vector< Real > &  fdistx,
Real  dx,
Real  dy,
std::vector< Real > &  xp,
std::vector< Real > &  yp 
)
static

Invert a precomputed 2-D loading distribution.

Parameters
[in]rev2Uniform/quasi-random values selecting R.
[in]rev3Uniform/quasi-random values selecting conditional Z.
[in]probConditional cumulative distribution.
[in]xgR grid.
[in]ygZ grid.
[in]fdistxMarginal cumulative R distribution.
[in]dxR spacing.
[in]dyZ spacing.
[out]xpLoaded R coordinates.
[out]ypLoaded Z coordinates.

◆ gauss_list_init()

void orb5x::ParticleModule::gauss_list_init ( int  isp,
Kokkos::View< Real ** > &  pert_table,
int &  nperts 
)

Gaussian perturbation list loading from file Matching Fortran part.F90 lines 8330-8355.

Parameters
ispSpecies index (0-based)
pert_tableOutput: Table of perturbation parameters
npertsOutput: Number of perturbations loaded

◆ get_dist_derivs()

static void orb5x::ParticleModule::get_dist_derivs ( Real  f0,
Real  ut,
Real  mut,
Real  b,
Real  epsilon_hat,
Real  ze,
Real  zvth2,
Real  nval,
Real  Epsi,
Real  psit,
Real  ngrad,
Real  tgrad,
Real  ,
Real  ,
int  isp,
Real &  df0_dek,
Real &  df0_du,
Real &  df0_dpsi_prof,
Real &  df0_dchi_prof,
Real &  df0_dpsi_pot,
Real  zecor,
Real  pot_equil,
Real  pot_equil0,
Real  chit 
)
static

Differentiate the configured equilibrium distribution.

Outputs derivatives with respect to kinetic energy, parallel velocity, radial and poloidal profiles, and equilibrium potential in ORB5X normalized coordinates. Inputs use the same normalization as vf0().

Parameters
[in]f0Equilibrium distribution value at the marker.
[in]utNormalized parallel marker coordinate.
[in]mutNormalized magnetic moment.
[in]bNormalized magnetic-field magnitude.
[in]epsilon_hatSpecies gyroradius/charge normalization factor.
[in]zeMarker kinetic energy.
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density.
[in]EpsiRadial derivative of equilibrium potential.
[in]psitFlux coordinate used by the profiles.
[in]ngradLogarithmic density gradient.
[in]tgradLogarithmic temperature gradient.
[in]ispZero-based species index.
[out]df0_dekDerivative with respect to kinetic energy.
[out]df0_duDerivative with respect to parallel coordinate.
[out]df0_dpsi_profRadial profile contribution.
[out]df0_dchi_profPoloidal profile contribution.
[out]df0_dpsi_potEquilibrium-potential contribution.
[in]zecorMixed-variable energy correction.
[in]pot_equilEquilibrium potential at the marker.
[in]pot_equil0Reference equilibrium potential.
[in]chitPoloidal angle [rad].
Note
The unnamed compatibility arguments correspond to the Fortran parallel-flow value and gradient and are not used by this implementation.

◆ get_field_disp()

void orb5x::ParticleModule::get_field_disp ( const FieldType &  field,
int  istep,
bool  nl_main_substep,
int  i_att 
)

Gather one field and its gradients to all guiding centers/gyropoints.

Parameters
[in]fieldMesh field and spline coefficients to evaluate.
[in]istepField time-level selector.
[in]nl_main_substepWhether this is the principal integrator substep.
[in]i_attDestination field-attribute slot.

◆ get_i_cantormom()

static int orb5x::ParticleModule::get_i_cantormom ( int  isp)
static

Return the pic2 column containing canonical toroidal momentum.

Parameters
[in]ispZero-based species index.
Returns
Zero-based property column.

◆ get_KE()

Real orb5x::ParticleModule::get_KE ( int  isp)

Sum normalized kinetic energy over one local species.

Parameters
[in]ispZero-based species index.
Returns
Local marker kinetic-energy sum.

◆ get_kinetic_energy()

static Real orb5x::ParticleModule::get_kinetic_energy ( Real  ut,
Real  mut,
Real  b 
)
static

Return normalized kinetic energy u^2/2 + mu*B.

Parameters
[in]utNormalized parallel velocity.
[in]mutNormalized magnetic moment.
[in]bNormalized magnetic-field magnitude.
Returns
Normalized kinetic energy.

◆ get_larmor_indices_disp()

void orb5x::ParticleModule::get_larmor_indices_disp ( bool  initflag = false,
bool  adapt_only = false 
)

Compute Larmor ring sizes/offsets for all eligible species.

Parameters
[in]initflagSet initial capacities instead of active counts.
[in]adapt_onlyRestrict work to adaptive-gyroaveraging species.

◆ get_n_larmor_pts()

static int orb5x::ParticleModule::get_n_larmor_pts ( int  isp,
int  nsel_gyr_local,
Real  rhog 
)
static

Select the ring-point count for one gyroradius.

Parameters
[in]ispZero-based species index.
[in]nsel_gyr_localAdaptive/fixed/drift-kinetic gyroaveraging selector.
[in]rhogNormalized gyroradius.
Returns
Number of gyropoints, bounded by the configured allowed values.

◆ get_pos()

void orb5x::ParticleModule::get_pos ( int  isp,
int  ip,
Real *  pos 
)

Return one marker's physical position coordinates.

Parameters
[in]ispZero-based species index.
[in]ipZero-based local marker index.
[out]posCaller buffer receiving (R,phi,Z) in normalized geometry units.

◆ get_properties()

void orb5x::ParticleModule::get_properties ( int  isp,
int  ip,
Real *  props 
)

Fill the standard property vector for one stored marker.

Parameters
[in]ispZero-based species index.
[in]ipZero-based local marker index.
[out]propsCaller-provided property buffer in the established diagnostic layout.

◆ get_properties_en()

static Real orb5x::ParticleModule::get_properties_en ( int  isp,
Real  st,
Real  chit,
Real  ut,
Real  mut,
Real  vpval 
)
static

Compute the energy-like marker property used by get_properties().

Parameters
[in]ispZero-based species index.
[in]stMarker radial coordinate s=sqrt(psi).
[in]chitMarker poloidal angle [rad].
[in]utNormalized parallel marker coordinate.
[in]mutNormalized magnetic moment.
[in]vpvalBounce-averaged parallel-flow profile value.
Returns
Kinetic or modified energy selected by the species model.

◆ get_rhs()

static void orb5x::ParticleModule::get_rhs ( int  ip,
int  isp,
Real  pvol,
Real  vdr,
Real  vdchi,
const std::vector< Real > &  vgc,
const std::vector< Real > &  vin,
Real  vpval,
const std::vector< Real > &  genelec,
Real  dvpadt0,
Real  dvpadt1,
Real  gyroapar,
Real  ze,
Real  zecor,
Real  dH0_dt_correction,
Real  pot_equil,
Real  pot_equil0,
Real  distribution,
Real  ut,
Real  mut,
Real  b,
Real  zvth2,
Real  nval,
Real  Epsi,
Real  psi0t,
Real  ngrad,
Real  tgrad,
Real  vpgrad,
Real  dfvpllb_dpsi,
Real  dfvpllb_den,
Real &  rhs,
Real &  dpotdpsi,
Real &  omegasq_corr,
Real &  df0_dpsi_prof,
Real &  df0_dchi_prof,
Real &  dpsi_prof_dt,
Real &  dchi_prof_dt,
int  rhs_type,
const std::vector< Real > &  mgradphi,
const std::vector< Real > &  vgb,
const std::vector< Real > &  vpressure,
const std::vector< Real > &  mgradapar,
const std::vector< Real > &  hh_sympl,
Real  chit,
Real  dchi_dt1,
int  iter,
Real  ffinit,
Real  dPsidt0 
)
static

Assemble the selected delta-f weight-equation right-hand side.

This is the C++ counterpart of get_rhs in part.F90. It combines the phase-space characteristics with profile derivatives, Hamiltonian terms, strong-flow corrections, and the configured weight formulation. All dimensional quantities use ORB5X normalization.

Parameters
[in]ipZero-based local marker index (retained for Fortran parity).
[in]ispZero-based species index.
[in]pvolMarker phase-space volume.
[in]vdrRadial characteristic ds/dt.
[in]vdchiPoloidal characteristic dchi/dt.
[in]vgcThree-component guiding-center characteristic.
[in]vinEquilibrium characteristic used by the control variate.
[in]vpvalBounce-averaged parallel-velocity profile value.
[in]genelecElectron-flow/electric-gradient contribution.
[in]dvpadt0Equilibrium parallel acceleration.
[in]dvpadt1Perturbed parallel acceleration.
[in]gyroaparGyroaveraged parallel vector potential.
[in]zeMarker kinetic energy.
[in]zecorMixed-variable energy correction.
[in]dH0_dt_correctionExplicit equilibrium-Hamiltonian correction.
[in]pot_equilEquilibrium potential at the marker.
[in]pot_equil0Reference equilibrium potential.
[in]distributionEquilibrium distribution f0 at the marker.
[in]utNormalized parallel marker coordinate.
[in]mutNormalized magnetic moment.
[in]bNormalized magnetic-field magnitude.
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density-profile value.
[in]EpsiRadial derivative of the equilibrium potential.
[in]psi0tCanonical/profile flux coordinate.
[in]ngradLogarithmic density-profile gradient.
[in]tgradLogarithmic temperature-profile gradient.
[in]vpgradRadial gradient of the parallel-flow profile.
[in]dfvpllb_dpsiRadial derivative of the bounce-averaged factor.
[in]dfvpllb_denEnergy derivative of the bounce-averaged factor.
[out]rhsSelected normalized weight-equation right-hand side.
[out]dpotdpsiEffective radial potential derivative.
[out]omegasq_corrRotation-frequency-squared correction.
[out]df0_dpsi_profProfile contribution to df0/dpsi.
[out]df0_dchi_profProfile contribution to df0/dchi.
[out]dpsi_prof_dtProfile-flux characteristic.
[out]dchi_prof_dtProfile-poloidal characteristic.
[in]rhs_typeSelector for the supported weight formulation.
[in]mgradphiContravariant gradient of electrostatic potential.
[in]vgbMagnetic-drift characteristic.
[in]vpressurePressure-gradient characteristic.
[in]mgradaparContravariant gradient of parallel vector potential.
[in]hh_symplSymplectic unit-field characteristic.
[in]chitMarker poloidal angle [rad].
[in]dchi_dt1Perturbed poloidal characteristic.
[in]iterTime-integration stage selector.
[in]ffinitStored initial distribution value.
[in]dPsidt0Equilibrium canonical-flux time derivative.

◆ get_toroidal_momentum()

void orb5x::ParticleModule::get_toroidal_momentum ( int  isp,
Real  st,
Real  chit,
Real  ut,
Real  mut,
Real  psi_correction,
Real  tsubB,
Real &  psit_prof,
Real &  psit_pot 
)

Compute canonical flux labels used by profiles and potential terms.

Parameters
[in]ispZero-based species index.
[in]stRadial coordinate s.
[in]chitPoloidal angle [rad].
[in]utParallel velocity/momentum coordinate.
[in]mutMagnetic moment.
[in]psi_correctionCanonical-flux correction.
[in]tsubBProfile/equilibrium factor.
[out]psit_profFlux coordinate used for profiles.
[out]psit_potFlux coordinate used for equilibrium potential.

◆ get_vpaob_ba()

Real orb5x::ParticleModule::get_vpaob_ba ( Real  psi,
Real  mu,
Real  en,
Real  v_pll,
int  isp 
)

Get bounce-averaged v_parallel/B from precomputed lookup table.

Matching Fortran part.F90 lines 6674-6710.

Parameters
psiFlux coordinate (psi = sigma^2)
muMagnetic moment
enEnergy (0.5*u^2 + mu*B)
v_pllParallel velocity (for sign determination)
ispSpecies index (0-based in C++)
Returns
Bounce-averaged v_parallel/B scaled by sqrt(energy)

◆ grid_pic() [1/2]

void orb5x::ParticleModule::grid_pic ( int  isp,
bool  run_on_device 
)

Deposit the configured primary quantity for one species.

Parameters
[in]ispZero-based species index.
[in]run_on_deviceSelect device-capable deposition.

◆ grid_pic() [2/2]

void orb5x::ParticleModule::grid_pic ( int  isp,
int  nsel_att,
bool  reduce_flag,
const int *  lb,
const int *  ub,
Kokkos::View< Real ***, Kokkos::LayoutStride >  assign1,
int  i_att 
)

Charge/current deposition on grid (matching Fortran grid_pic, part.F90 lines 7771-7920)

Handles both drift-kinetic (DK) and gyrokinetic species:

  • DK species: deposits from guiding center positions (pic1) using W_PIC or UW_PIC weights
  • Gyrokinetic species: deposits from Larmor ring points using WGT_ATT or WCF_ATT weights
  • Applies chi-periodicity folding, normalization, guard cell exchange, and clone MPI reduction

Uses part_fields::deposition (matching Fortran interface deposition, part_fields.F90 lines 25-27)

Parameters
ispSpecies index (0-based in C++)
nsel_attWhich attribute to be deposited (NSEL_CHARGE=0 or NSEL_CURRENT=1)
reduce_flagReduce the weights by the adiabatic density/current
lbLower indices of the deposition arrays (size 4)
ubUpper indices of the deposition arrays (size 4)
assign1Output: deposited quantity array
i_attIteration over atts arrays (1-based, matching Fortran)

◆ grid_pic_diagnostic()

void orb5x::ParticleModule::grid_pic_diagnostic ( int  isp,
int  nsel_att,
const int *  lb,
const int *  ub,
Kokkos::View< Real *** > &  assign1 
)

Diagnostic charge/current deposition on grid (matching Fortran grid_pic_diagnostic, part.F90 lines 8190-8272)

Uses pic5 (Real32) marker attributes for diagnostic moment deposition. Normalization: 1/dens0 * nphi/TWOPI (differs from grid_pic which uses charge/dens0). Also uses part_fields::deposition.

Parameters
ispSpecies index (0-based in C++)
nsel_attWhich pic5 attribute to deposit
lbLower indices of the deposition arrays (size 3 or 4)
ubUpper indices of the deposition arrays (size 3 or 4)
assign1Output: deposited quantity array

◆ helical_flux_label()

void orb5x::ParticleModule::helical_flux_label ( Real  sigmat,
Real  xiang,
int &  irloc,
Real &  dr_flux_inv,
int &  ipol 
)

Map a marker to magnetic-island radial and poloidal diagnostic bins.

Parameters
[in]sigmatMarker radial coordinate s.
[in]xiangMarker helical angle [rad].
[out]irlocRadial island-bin index.
[out]dr_flux_invLocal inverse helical-flux bin width.
[out]ipolPoloidal/helical angular-bin index.

◆ init_distrib_2D_loadRZ()

static void orb5x::ParticleModule::init_distrib_2D_loadRZ ( FieldsVariables *  fields,
Real  lenx,
Real  leny,
int  isp,
std::vector< std::vector< Real > > &  prob,
std::vector< Real > &  xg,
std::vector< Real > &  yg,
std::vector< Real > &  fdistx,
Real &  dx,
Real &  dy 
)
static

Build the cumulative 2-D (R,Z) loading distribution.

Parameters
[in]fieldsInitialized field-grid parameters.
[in]lenxR-domain length in normalized geometry units.
[in]lenyZ-domain length.
[in]ispZero-based species index.
[out]probConditional cumulative distribution in Z for each R bin.
[out]xgR grid.
[out]ygZ grid.
[out]fdistxMarginal cumulative distribution in R.
[out]dxR-grid spacing.
[out]dyZ-grid spacing.

◆ init_particles()

void orb5x::ParticleModule::init_particles ( )

Allocate particle storage and build bounce-averaged momentum tables.

◆ init_push_diagnostics()

void orb5x::ParticleModule::init_push_diagnostics ( )

Initialize bin measures and scratch used by in-push diagnostics.

◆ init_test_particles()

void orb5x::ParticleModule::init_test_particles ( int  isp)

Allocate test-particle state for one species.

Parameters
[in]ispZero-based species index.

◆ l5_auto_init()

void orb5x::ParticleModule::l5_auto_init ( int  isp,
Kokkos::View< Real ** > &  l5_s_array 
)

LIGKA mode automatic initialization Matching Fortran part.F90 lines 8284-8328.

Parameters
ispSpecies index (0-based)
l5_s_arrayOutput: Array of radial positions for LIGKA modes

◆ load_particles()

void orb5x::ParticleModule::load_particles ( )

Generate or restore the initial marker distribution for every species.

◆ load_test_particles()

void orb5x::ParticleModule::load_test_particles ( int  isp)

Load configured test-particle initial conditions for one species.

Parameters
[in]ispZero-based species index.

◆ parmove()

void orb5x::ParticleModule::parmove ( int  iter,
bool  run_on_device,
bool  work1flag,
bool  work2flag,
bool  work3flag = false,
bool  work5flag = false,
bool  work6flag = false,
bool  work7flag = false,
bool  work8flag = false,
bool  work9flag = false 
)

Migrate every species and selected work arrays across toroidal domains.

Parameters
[in]iterSubstep index recorded by migration diagnostics.
[in]run_on_deviceCompatibility/device-path selector.
[in]work1flagMigrate work1 records.
[in]work2flagMigrate work2 records.
[in]work3flagMigrate GL4 work3 records.
[in]work5flagMigrate GL4 work5 records.
[in]work6flagMigrate GL4 work6 records.
[in]work7flagMigrate GL4 work7 records.
[in]work8flagMigrate GL4 work8 records.
[in]work9flagMigrate GL4 work9 records.

◆ part_grid()

void orb5x::ParticleModule::part_grid ( int  isp,
int  nsel_att,
bool  reduce_flag,
int  i_att,
const int *  lb,
const int *  ub,
Kokkos::View< Real ***, Kokkos::LayoutStride >  assign1,
Kokkos::View< Real ** > *  assign1_passing = nullptr 
)

Charge or current deposition wrapper routine Matching Fortran part.F90 lines 8698-8727 (external part_grid subroutine)

This is the main entry point for particle deposition, wrapping:

Parameters
ispSpecies index (0-based in C++)
nsel_attAttribute selector for deposition (NSEL_CHARGE, NSEL_CURRENT, etc.)
reduce_flagIf true, compute reduced weights before deposition
i_attIteration counter over atts arrays (1-based in Fortran, 0-based here)
lbLower bounds of charge arrays (size 4)
ubUpper bounds of charge arrays (size 4)
assign1Output: Deposited quantity array [lb(1):ub(1), lb(2):ub(2), lb(3):ub(3)]
assign1_passingOptional output: Passing electron charge array [lb(1):ub(1), lb(2):ub(2)]

◆ perp_curl_ue()

static void orb5x::ParticleModule::perp_curl_ue ( Real  s,
Real  chi,
Real &  smodstar,
Real &  chimodstar,
Real &  phimodstar 
)
static

Evaluate the perpendicular electron-flow curl projection.

Computes the contravariant components of h x (h x curl(u_e)) from the initialized equilibrium and electron-fluid fields, matching perp_curl_ue in part.F90.

Parameters
[in]sNormalized radial coordinate, s=sqrt(psi).
[in]chiPoloidal angle [rad].
[out]smodstarRadial contravariant component.
[out]chimodstarPoloidal contravariant component.
[out]phimodstarToroidal contravariant component.

◆ postpush_disp()

void orb5x::ParticleModule::postpush_disp ( )

Run post-push full-f updates for all applicable species.

◆ postpush_fullf()

void orb5x::ParticleModule::postpush_fullf ( int  isp)

Recompute full-f weights after a push for one species.

Parameters
[in]ispZero-based species index.

◆ print_test_particles()

void orb5x::ParticleModule::print_test_particles ( int  step)

Emit configured test-particle diagnostics for a timestep.

Parameters
[in]stepGlobal timestep index written with the diagnostic records.

◆ pszs_calc()

void orb5x::ParticleModule::pszs_calc ( )

Dispatch phase-space zonal-structure accumulation.

◆ pszs_setboundaries()

void orb5x::ParticleModule::pszs_setboundaries ( int  isp,
Real *  lb,
Real *  ub 
)

PSZS boundary setup from particle distribution Matching Fortran part.F90 lines 8442-8549 Sets up boundaries for Phase Space Zone Sampling diagnostics.

Parameters
ispSpecies index (0-based)
lbLower bounds array (size 3)
ubUpper bounds array (size 3)

◆ pullback()

void orb5x::ParticleModule::pullback ( )

Convert mixed-variable electromagnetic particle state to symplectic form.

◆ push_disp()

void orb5x::ParticleModule::push_disp ( int  iter)

Advance all kinetic species through one configured push substep.

Parameters
[in]iterSubstep/stage selector used by the time integrator.

◆ q_of_s()

Real orb5x::ParticleModule::q_of_s ( Real  s)

Evaluate the equilibrium safety factor at normalized radius s.

Parameters
[in]sNormalized radial coordinate, s=sqrt(psi).
Returns
Dimensionless safety factor obtained from the equilibrium spline.

◆ quadtree_smoothing_disp()

void orb5x::ParticleModule::quadtree_smoothing_disp ( )

Apply configured phase-space quadtree smoothing to all species.

◆ quadtree_smoothing_interface()

void orb5x::ParticleModule::quadtree_smoothing_interface ( int  isp,
bool  diagnose_ 
)

Smooth one species and optionally populate smoothing diagnostics.

Parameters
[in]ispZero-based species index.
[in]diagnose_Enable diagnostic accumulation for this pass.

◆ read_write_particle_data()

void orb5x::ParticleModule::read_write_particle_data ( int  flag,
int  datn 
)

Read or write particle checkpoint state.

Parameters
[in]flagI/O/backend selector used by the restart protocol.
[in]datnAlternating restart generation, 0 or 1.

◆ reverse_hammersley()

static Real orb5x::ParticleModule::reverse_hammersley ( int  nbase,
int64_t  i 
)
static

Compute a radical-inverse element of a Hammersley sequence.

Parameters
[in]nbaseInteger base greater than one.
[in]iNon-negative sequence index.
Returns
Dimensionless value in [0,1).

◆ set_weights_to_zero_at_t0()

void orb5x::ParticleModule::set_weights_to_zero_at_t0 ( )

Set perturbation weights to zero at the initial time when configured.

◆ sort_gc_2D_disp()

void orb5x::ParticleModule::sort_gc_2D_disp ( )

Sort guiding centers in the radial/poloidal plane.

◆ sort_gc_3D_disp()

void orb5x::ParticleModule::sort_gc_3D_disp ( )

Sort guiding centers in local three-dimensional spatial bins.

◆ str_diagnostic_start()

void orb5x::ParticleModule::str_diagnostic_start ( )

Initialize strong flow diagnostic output files Matching Fortran part.F90 lines 4726-4750 Opens output files for psi, energy, kappa, rhs diagnostics.

◆ strong_diagnostic_output()

void orb5x::ParticleModule::strong_diagnostic_output ( int  isp,
int  ip,
Real  psi0t,
Real  temp2,
Real  ze,
Real  vecrossb_f2,
Real  pot_equil,
Real  zf0,
Real  zvth2_inv,
Real  dpotdpsi,
Real  vdr,
Real  rhs 
)

Record per-marker quantities used to inspect the strong-flow model.

Parameters
[in]ispZero-based species index.
[in]ipZero-based local marker index.
[in]psi0tCanonical/profile flux coordinate.
[in]temp2Local squared thermal-speed scale.
[in]zeMarker kinetic energy.
[in]vecrossb_f2Squared equilibrium E x B speed contribution.
[in]pot_equilEquilibrium potential at the marker.
[in]zf0Equilibrium distribution value.
[in]zvth2_invInverse local squared thermal speed.
[in]dpotdpsiEffective radial potential derivative.
[in]vdrRadial characteristic.
[in]rhsWeight-equation right-hand side.
Note
Matches strong_diagnostic_output in part.F90.

◆ strong_flow_terms()

static void orb5x::ParticleModule::strong_flow_terms ( int  isp,
Real  sigmat,
Real  chit,
Real  bstar_inv,
const std::vector< Real > &  genelec,
Real  pztomobstar,
const std::vector< Real > &  bgrb,
const std::vector< Real > &  addp,
Real  expt_back,
Real  eypt_back,
const std::vector< Real > &  exh,
Real  ut,
Real  mut,
const std::vector< Real > &  hh,
Real &  dvpadt1_str,
Real &  dvpadt0_str,
std::vector< Real > &  vgc 
)
static

Add equilibrium-E x B strong-flow terms to the characteristics.

Implements the strong_flow_terms algebra from part.F90. Vector arguments are three-component contravariant quantities in ORB5X's normalized magnetic coordinates.

Parameters
[in]ispZero-based species index.
[in]sigmatMarker radial coordinate s=sqrt(psi).
[in]chitMarker poloidal angle [rad].
[in]bstar_invInverse normalized guiding-center B* denominator.
[in]genelecElectron-flow/electric contribution to the gradient.
[in]pztomobstarSpecies canonical-momentum factor divided by B*.
[in]bgrbContravariant magnetic-gradient drift vector.
[in]addpContravariant geometric correction vector.
[in]expt_backRadial equilibrium electric-field component.
[in]eypt_backPoloidal equilibrium electric-field component.
[in]exhContravariant equilibrium E x h vector.
[in]utNormalized parallel marker coordinate.
[in]mutNormalized magnetic moment.
[in]hhContravariant unit-field vector.
[out]dvpadt1_strPerturbed strong-flow contribution to du/dt.
[out]dvpadt0_strEquilibrium strong-flow contribution to du/dt.
[in,out]vgcGuiding-center velocity to which strong-flow terms are added.

◆ test_particle_output()

void orb5x::ParticleModule::test_particle_output ( int  isp,
int  ip,
Real  psi0t,
Real  ze,
Real  pot_equil,
Real  wt,
Real  zvth2,
Real  nval,
Real  pvol,
Real  zf0 
)

Store the configured diagnostic record for one test marker.

Parameters
[in]ispZero-based species index.
[in]ipZero-based local marker index.
[in]psi0tCanonical/profile flux coordinate.
[in]zeMarker kinetic energy.
[in]pot_equilEquilibrium potential at the marker.
[in]wtMarker perturbation weight.
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density.
[in]pvolMarker phase-space volume.
[in]zf0Equilibrium distribution value.
Note
Matches test_particle_output in part.F90.

◆ trap_detrap_disp()

void orb5x::ParticleModule::trap_detrap_disp ( )

Update trapped/passing state transitions for all applicable species.

◆ unsort_gc_3D_disp()

void orb5x::ParticleModule::unsort_gc_3D_disp ( )

Restore drift-kinetic marker arrays to their pre-sort order.

◆ update_ffinit_or_pvol()

void orb5x::ParticleModule::update_ffinit_or_pvol ( )

Refresh stored initial-f or phase-volume values after weight changes.

◆ uses_modified_toroidal_momentum()

bool orb5x::ParticleModule::uses_modified_toroidal_momentum ( int  isp) const

Test whether a species uses a modified canonical momentum definition.

Parameters
[in]ispZero-based species index.
Returns
true for species whose profile model modifies toroidal momentum.

◆ vf0()

static Real orb5x::ParticleModule::vf0 ( int  isp,
Real  zvth2,
Real  nval,
Real  ze,
Real  zecor,
Real  b,
Real  pot_equil,
Real  pot_equil0,
Real  psit,
Real  ut,
Real  mut,
int  nsel_f0_override = -1 
)
static

Evaluate the selected normalized equilibrium distribution f0.

Parameters
[in]ispZero-based species index.
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density.
[in]zeKinetic energy.
[in]zecorEnergy correction.
[in]bMagnetic-field magnitude.
[in]pot_equilLocal equilibrium potential.
[in]pot_equil0Reference equilibrium potential.
[in]psitFlux coordinate used by profiles.
[in]utParallel velocity coordinate.
[in]mutMagnetic moment.
[in]nsel_f0_overrideDistribution selector, or -1 for species input.
Returns
Normalized phase-space density.

◆ vf0_chi_prof()

static Real orb5x::ParticleModule::vf0_chi_prof ( Real  zf0,
Real  ,
Real  ,
Real  ze,
Real  ,
Real  ,
Real  ,
Real  ,
Real  ut,
Real  ,
Real  psit,
int  isp,
Real  zvth2,
Real  nval,
Real  zecor,
Real  pot_equil,
Real  pot_equil0,
Real  mut,
Real  chit 
)
static

Evaluate the poloidal-profile derivative of f0.

Parameters
[in]zf0Equilibrium distribution value.
[in]zeMarker kinetic energy.
[in]utNormalized parallel marker coordinate.
[in]psitProfile flux coordinate.
[in]ispZero-based species index.
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density.
[in]zecorMixed-variable energy correction.
[in]pot_equilEquilibrium potential at the marker.
[in]pot_equil0Reference equilibrium potential.
[in]mutNormalized magnetic moment.
[in]chitPoloidal angle [rad].
Returns
Poloidal profile contribution to the derivative of f0.
Note
Unnamed arguments are retained to preserve the shared Fortran-derived distribution-derivative interface and are unused in this implementation.

◆ vf0_local_maxwellian_simple()

static Real orb5x::ParticleModule::vf0_local_maxwellian_simple ( Real  zvth2,
Real  nval,
Real  ze 
)
static

Evaluate a local Maxwellian from thermal scale, density, and energy.

Parameters
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density.
[in]zeNormalized kinetic energy.
Returns
Normalized local Maxwellian phase-space density.

◆ vf0_psi_prof()

static Real orb5x::ParticleModule::vf0_psi_prof ( Real  zf0,
Real  ngrad,
Real  epsilon_hat,
Real  ze,
Real  b,
Real  kappa_str,
Real  zvth2_inv,
Real  tgrad,
Real  ut,
Real  psi0_inv,
Real  psit,
int  isp,
Real  zvth2,
Real  nval,
Real  zecor,
Real  pot_equil,
Real  pot_equil0,
Real  mut,
Real  chit 
)
static

Evaluate the radial-profile derivative of f0.

Parameters
[in]zf0Equilibrium distribution value.
[in]ngradLogarithmic density gradient.
[in]epsilon_hatSpecies normalization factor.
[in]zeMarker kinetic energy.
[in]bNormalized magnetic-field magnitude.
[in]kappa_strStrong-flow profile factor.
[in]zvth2_invInverse squared thermal-speed scale.
[in]tgradLogarithmic temperature gradient.
[in]utNormalized parallel marker coordinate.
[in]psi0_invInverse reference flux scale.
[in]psitProfile flux coordinate.
[in]ispZero-based species index.
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density.
[in]zecorMixed-variable energy correction.
[in]pot_equilEquilibrium potential at the marker.
[in]pot_equil0Reference equilibrium potential.
[in]mutNormalized magnetic moment.
[in]chitPoloidal angle [rad].
Returns
Radial profile contribution to the derivative of f0.

◆ vf0dek()

static Real orb5x::ParticleModule::vf0dek ( Real  zf0,
Real  zvth2,
Real  ze,
Real  psit,
int  isp,
Real  nval,
Real  zecor,
Real  b,
Real  pot_equil,
Real  pot_equil0,
Real  ut,
Real  mut,
Real  chit 
)
static

Evaluate df0/dE for the configured distribution family.

Parameters
[in]zf0Equilibrium distribution value.
[in]zvth2Local squared thermal-speed scale.
[in]zeMarker kinetic energy.
[in]psitProfile flux coordinate.
[in]ispZero-based species index.
[in]nvalLocal normalized density.
[in]zecorMixed-variable energy correction.
[in]bNormalized magnetic-field magnitude.
[in]pot_equilEquilibrium potential at the marker.
[in]pot_equil0Reference equilibrium potential.
[in]utNormalized parallel marker coordinate.
[in]mutNormalized magnetic moment.
[in]chitPoloidal angle [rad].
Returns
Energy derivative of the normalized equilibrium distribution.

◆ vf0du()

static Real orb5x::ParticleModule::vf0du ( Real  zf0,
Real  ut,
Real  ,
Real  zvth2,
Real  nval,
Real  psit,
int  isp,
Real  ze,
Real  zecor,
Real  pot_equil,
Real  pot_equil0,
Real  mut,
Real  chit 
)
static

Evaluate df0/du for the configured distribution family.

Parameters
[in]zf0Equilibrium distribution value.
[in]utNormalized parallel marker coordinate.
[in]zvth2Local squared thermal-speed scale.
[in]nvalLocal normalized density.
[in]psitProfile flux coordinate.
[in]ispZero-based species index.
[in]zeMarker kinetic energy.
[in]zecorMixed-variable energy correction.
[in]pot_equilEquilibrium potential at the marker.
[in]pot_equil0Reference equilibrium potential.
[in]mutNormalized magnetic moment.
[in]chitPoloidal angle [rad].
Returns
Parallel-coordinate derivative of the normalized distribution.
Note
The unnamed epsilon_hat argument is retained for Fortran parity.

◆ vpa_quants()

void orb5x::ParticleModule::vpa_quants ( Real  psi,
Real  mu,
Real  en_star,
Real  v_pll,
int  isp,
Real &  fvpllb,
Real &  dfvpllb_den,
Real &  dfvpllb_dpsi 
)

Interpolate bounce-averaged v_parallel/B and its derivatives.

Parameters
[in]psiToroidal-flux coordinate, equal to s^2.
[in]muNormalized magnetic moment.
[in]en_starEnergy coordinate used by the lookup table.
[in]v_pllParallel velocity, whose sign selects the orbit branch.
[in]ispZero-based species index.
[out]fvpllbInterpolated bounce-averaged v_parallel/B factor.
[out]dfvpllb_denDerivative with respect to energy.
[out]dfvpllb_dpsiDerivative with respect to toroidal flux.
Note
Implements the vpa_quants interpolation in part.F90.

◆ ze_correction()

static Real orb5x::ParticleModule::ze_correction ( Real  ut,
Real  vpval 
)
static

Return the mixed-coordinate kinetic-energy correction.

Parameters
[in]utMixed-variable parallel coordinate.
[in]vpvalPhysical parallel velocity.
Returns
Difference (vpval^2-ut^2)/2 in normalized energy units.

Member Data Documentation

◆ bin_surf_inv

Kokkos::View<Real*> orb5x::ParticleModule::bin_surf_inv

Inverse diagnostic surface measure by radial bin.

◆ bin_vol_inv

Kokkos::View<Real*> orb5x::ParticleModule::bin_vol_inv

Inverse diagnostic volume by radial bin.

◆ cfield_out_3D

Kokkos::View<Complex***> orb5x::ParticleModule::cfield_out_3D

Complex three-dimensional particle-moment field.

◆ cfield_out_3D_fft

Kokkos::View<Complex***> orb5x::ParticleModule::cfield_out_3D_fft

Fourier representation of 3-D moment field.

◆ dens0

Kokkos::View<Real*> orb5x::ParticleModule::dens0

Marker density normalization nptot/volanu by species.

◆ dmu_bin

Real orb5x::ParticleModule::dmu_bin = 0.0

Magnetic-moment bin spacing.

◆ dmu_bin_2

Real orb5x::ParticleModule::dmu_bin_2 = 0.0

Half magnetic-moment bin spacing.

◆ dpsi_bin

Real orb5x::ParticleModule::dpsi_bin = 0.0

Normalized flux-bin spacing.

◆ dr_flux_inv

Real orb5x::ParticleModule::dr_flux_inv = 0.0

Inverse radial diagnostic-bin width.

◆ dth_inv

Real orb5x::ParticleModule::dth_inv = 0.0

Inverse poloidal diagnostic-bin width [rad^-1].

◆ ftrap

Real orb5x::ParticleModule::ftrap = 0.0

Trapped-particle fraction from the most recent loading calculation.

◆ integral_f0_global

std::vector<Real> orb5x::ParticleModule::integral_f0_global

Monte-Carlo estimate of integrated equilibrium f0.

◆ irloc_in

int orb5x::ParticleModule::irloc_in = 0

Cached inner radial diagnostic-bin index.

◆ lb_wx

int orb5x::ParticleModule::lb_wx = 0

Lowest spline work-column offset.

◆ MAX_PIC2

int orb5x::ParticleModule::MAX_PIC2 = 0

Number of time-independent real particle properties.

◆ MAX_PIC5

int orb5x::ParticleModule::MAX_PIC5 = 0

Single-precision diagnostic-property count.

◆ MAX_WORK

int orb5x::ParticleModule::MAX_WORK = 0

Number of columns allocated in primary real work arrays.

◆ MAX_WORK_FIELDS

int orb5x::ParticleModule::MAX_WORK_FIELDS = 0

Leading work columns reserved for gathered fields.

◆ MAX_WORK_REV

int orb5x::ParticleModule::MAX_WORK_REV = 0

Columns in temporary reduced-weight work storage.

◆ moments_3d_array

std::vector<Moments3DClass> orb5x::ParticleModule::moments_3d_array

Configured 3-D moment metadata.

◆ mu_max

Real orb5x::ParticleModule::mu_max = 0.0

Upper normalized magnetic-moment lookup bound.

◆ mu_min

Real orb5x::ParticleModule::mu_min = 0.0

Lower normalized magnetic-moment lookup bound.

◆ mumax_global

std::vector<Real> orb5x::ParticleModule::mumax_global

Global maximum loaded normalized magnetic moment.

◆ n_vel_1D

Kokkos::View<Real**> orb5x::ParticleModule::n_vel_1D

Velocity-space marker histogram by species/bin.

◆ n_vel_trap_1D

Kokkos::View<Real**> orb5x::ParticleModule::n_vel_trap_1D

Trapped-marker velocity histogram.

◆ NBIN_MU_F0

int orb5x::ParticleModule::NBIN_MU_F0 = 0

Number of magnetic-moment bins in f0/momentum tables.

◆ NLARM_PIC2

int orb5x::ParticleModule::NLARM_PIC2 = 0

pic2 column storing each marker's Larmor-ring size.

◆ npart

Kokkos::View<int*> orb5x::ParticleModule::npart

Active local marker count by zero-based species.

◆ npmx

Kokkos::View<int*> orb5x::ParticleModule::npmx

Allocated local marker capacity by species.

◆ nptot_inv

Kokkos::View<Real*> orb5x::ParticleModule::nptot_inv

Reciprocal total marker count by species.

◆ ntest

Kokkos::View<int*> orb5x::ParticleModule::ntest

Number of test particles by species.

◆ ntrap

int orb5x::ParticleModule::ntrap = 0

Trapped marker count from the most recent calculation.

◆ num_mesh

int orb5x::ParticleModule::num_mesh = 0

Total quadtree mesh-cell count.

◆ pic1

std::vector<PointerMarkers> orb5x::ParticleModule::pic1

Evolving marker coordinates, velocity, and weights by species.

◆ pic2

std::vector<PointerMarkers> orb5x::ParticleModule::pic2

Time-independent invariants/loading data by species.

◆ pic3

std::vector<PointerMarkersLogic> orb5x::ParticleModule::pic3

Logical marker state such as trapping flags.

◆ pic4

std::vector<PointerMarkersI8> orb5x::ParticleModule::pic4

64-bit marker identifiers.

◆ pic5

std::vector<PointerMarkersR4> orb5x::ParticleModule::pic5

Single-precision diagnostic marker moments.

◆ pion_1

std::vector<PointerMarkers> orb5x::ParticleModule::pion_1

Saved ion marker state used by selected algorithms.

◆ ppsum_buff_real

Kokkos::View<Real*> orb5x::ParticleModule::ppsum_buff_real

Contiguous scratch for MPI real reductions.

◆ psi0_inv

Real orb5x::ParticleModule::psi0_inv = 0.0

Inverse reference flux used by profile diagnostics.

◆ psi_max

Real orb5x::ParticleModule::psi_max = 1.0

Upper normalized flux bound of momentum lookup tables.

◆ psi_min

Real orb5x::ParticleModule::psi_min = 0.0

Lower normalized flux bound of momentum lookup tables.

◆ qt_num_chi

int orb5x::ParticleModule::qt_num_chi = 0

Quadtree poloidal-cell count.

◆ qt_num_s

int orb5x::ParticleModule::qt_num_s = 0

Quadtree radial-cell count.

◆ qt_num_s_per_ns

constexpr int orb5x::ParticleModule::qt_num_s_per_ns = 2
staticconstexpr

Quadtree radial refinement per field interval.

◆ qt_toggle_flag

Kokkos::View<bool*> orb5x::ParticleModule::qt_toggle_flag

Per-species alternating smoothing-pass flag.

◆ qtree

std::vector<PointerQuadtree> orb5x::ParticleModule::qtree

Per-species quadtree smoothing storage.

◆ rho_passing_omp

Kokkos::View<Real***> orb5x::ParticleModule::rho_passing_omp

Per-thread passing-electron deposition scratch.

◆ sortings

std::vector<std::unique_ptr<SortingClass> > orb5x::ParticleModule::sortings

Guiding-center sorter owned per species.

◆ sum_ekin_markers_global

std::vector<Real> orb5x::ParticleModule::sum_ekin_markers_global

Global marker total kinetic-energy sum.

◆ sum_pekin_markers_global

std::vector<Real> orb5x::ParticleModule::sum_pekin_markers_global

Global marker parallel kinetic-energy sum.

◆ Total_weight

Kokkos::View<Real*> orb5x::ParticleModule::Total_weight

Local/global-normalized total marker weight by species.

◆ ub_wx

int orb5x::ParticleModule::ub_wx = 0

Highest spline work-column offset.

◆ umax_global

std::vector<Real> orb5x::ParticleModule::umax_global

Global maximum loaded parallel velocity by species.

◆ umin_global

std::vector<Real> orb5x::ParticleModule::umin_global

Global minimum loaded parallel velocity by species.

◆ vpbi

Kokkos::View<Real**> orb5x::ParticleModule::vpbi

Interpolation table and derivative data for vpa_quants().

◆ vpbi_host_cache

Kokkos::View<Real**, Kokkos::LayoutLeft, Kokkos::HostSpace> orb5x::ParticleModule::vpbi_host_cache

Host cache of vpbi.

◆ vpll_momentum_bins

Kokkos::View<Real**> orb5x::ParticleModule::vpll_momentum_bins

Bounce-averaged v_parallel/B table by phase-space bin.

◆ vpll_momentum_bins_host_cache

Kokkos::View<Real**, Kokkos::LayoutLeft, Kokkos::HostSpace> orb5x::ParticleModule::vpll_momentum_bins_host_cache

Host cache of momentum table.

◆ work1

std::vector<PointerMarkers> orb5x::ParticleModule::work1

Primary push/gather workspace by species.

◆ work2

std::vector<PointerMarkers> orb5x::ParticleModule::work2

Secondary push/gather workspace by species.

◆ work3

std::vector<PointerMarkers> orb5x::ParticleModule::work3

GL4 stage workspace.

◆ work5

std::vector<PointerMarkers> orb5x::ParticleModule::work5

GL4 stage workspace.

◆ work6

std::vector<PointerMarkers> orb5x::ParticleModule::work6

GL4 stage workspace.

◆ work7

std::vector<PointerMarkers> orb5x::ParticleModule::work7

GL4 stage workspace.

◆ work8

std::vector<PointerMarkers> orb5x::ParticleModule::work8

GL4 stage workspace.

◆ work9

std::vector<PointerMarkers> orb5x::ParticleModule::work9

GL4 stage workspace.

◆ work_rev

std::vector<PointerMarkers> orb5x::ParticleModule::work_rev

Reduced-weight/reversal workspace, allocated on demand.

◆ work_temp

std::vector<PointerMarkers> orb5x::ParticleModule::work_temp

Temporary per-marker workspace.

◆ zsmax_global

std::vector<Real> orb5x::ParticleModule::zsmax_global

Global maximum loaded radial coordinate s.

◆ zsum_global

std::vector<Real> orb5x::ParticleModule::zsum_global

Global phase-space-volume sum by species.


The documentation for this class was generated from the following file: