|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
#include "part.hpp"
Public Member Functions | |
| Real | b_star (Real st, Real chit, Real b, Real ut, Real tprime, Real addpBst, int isp) |
| void | bcpart (int isp, bool run_on_device) |
| void | bcpart_disp (bool run_on_device) |
| 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) |
| void | charge_deposition_passing_electrons_disp (int isp, const int *lb, const int *ub, Kokkos::View< Real ** > &rho_passing) |
| void | check_ffinit (int isp) |
| Validation routine for FFINIT consistency Matching Fortran part.F90 lines 1497-1514. | |
| void | compute_all_larmor_positions (int isp) |
| void | compute_all_larmor_positions_disp (bool comp_dk) |
| void | compute_moments_3d (int isp) |
| void | compute_psi0_corr_disp (bool flag) |
| 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) |
| void | compute_reduced_weights_disp (int isp, int nsel_att) |
| void | deposit_bsplines (int isp, int npart_loc, const Kokkos::View< Real ** > &pic1_loc, const Kokkos::View< Real ** > &pic2_loc) |
| void | diagnose_particles (int isp) |
| 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) |
| Real | get_KE (int isp) |
| void | get_larmor_indices_disp (bool initflag=false, bool adapt_only=false) |
| void | get_pos (int isp, int ip, Real *pos) |
| void | get_properties (int isp, int ip, Real *props) |
| 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) |
| 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) |
| 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) |
| void | init_particles () |
| void | init_push_diagnostics () |
| void | init_test_particles (int isp) |
| 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 () |
| void | load_test_particles (int isp) |
| 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) |
| 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 | |
| void | postpush_disp () |
| void | postpush_fullf (int isp) |
| void | print_test_particles (int step) |
| void | pszs_calc () |
| 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 () |
| void | push_disp (int iter) |
| Real | q_of_s (Real s) |
| void | quadtree_smoothing_disp () |
| void | quadtree_smoothing_interface (int isp, bool diagnose_) |
| void | read_write_particle_data (int flag, int datn) |
| void | set_weights_to_zero_at_t0 () |
| void | sort_gc_2D_disp () |
| void | sort_gc_3D_disp () |
| 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) |
| Strong flow diagnostic output Matching Fortran part.F90 lines 5066-5102 Outputs diagnostics for strong flow validation. | |
| 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) |
| Test particle output routine Matching Fortran part.F90 lines 4490-4506 Stores test particle diagnostics. | |
| void | trap_detrap_disp () |
| void | unsort_gc_3D_disp () |
| void | update_ffinit_or_pvol () |
| bool | uses_modified_toroidal_momentum (int isp) const |
| void | vpa_quants (Real psi, Real mu, Real en_star, Real v_pll, int isp, Real &fvpllb, Real &dfvpllb_den, Real &dfvpllb_dpsi) |
| Compute v_parallel/B quantities from lookup table Matching Fortran part.F90 lines 6814-6895 Full interpolation from vpbi array with derivatives. | |
| ~ParticleModule () | |
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) |
| 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) |
| Cross product of two 3D vectors. | |
| static void | destroyStaticViews () |
| 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) |
| 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) |
| static int | get_i_cantormom (int isp) |
| static Real | get_kinetic_energy (Real ut, Real mut, Real b) |
| static int | get_n_larmor_pts (int isp, int nsel_gyr_local, Real rhog) |
| static Real | get_properties_en (int isp, Real st, Real chit, Real ut, Real mut, Real vpval) |
| 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) |
| Computes RHS of delta-f equation Matching Fortran get_rhs subroutine (lines 4791-4968 in part.F90). | |
| 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) |
| static void | perp_curl_ue (Real s, Real chi, Real &smodstar, Real &chimodstar, Real &phimodstar) |
| Returns components of h x h x curl(u_e) Matching Fortran part.F90 lines 7468-7483. | |
| static Real | reverse_hammersley (int nbase, int64_t i) |
| 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) |
| Strong flow terms computation Matching Fortran part.F90 lines 5284-5315. | |
| 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) |
| 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) |
| static Real | vf0_local_maxwellian_simple (Real zvth2, Real nval, Real ze) |
| 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) |
| 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) |
| 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) |
| static Real | ze_correction (Real ut, Real vpval) |
Public Attributes | |
| Kokkos::View< Real * > | bin_surf_inv |
| Kokkos::View< Real * > | bin_vol_inv |
| Kokkos::View< Complex *** > | cfield_out_3D |
| Kokkos::View< Complex *** > | cfield_out_3D_fft |
| Kokkos::View< Real * > | dens0 |
| Real | dmu_bin = 0.0 |
| Real | dmu_bin_2 = 0.0 |
| Real | dpsi_bin = 0.0 |
| Real | dr_flux_inv = 0.0 |
| Real | dth_inv = 0.0 |
| Real | ftrap = 0.0 |
| std::vector< Real > | integral_f0_global |
| int | irloc_in = 0 |
| int | lb_wx = 0 |
| int | MAX_PIC2 = 0 |
| int | MAX_PIC5 = 0 |
| int | MAX_WORK = 0 |
| int | MAX_WORK_FIELDS = 0 |
| int | MAX_WORK_REV = 0 |
| std::vector< Moments3DClass > | moments_3d_array |
| Real | mu_max = 0.0 |
| Real | mu_min = 0.0 |
| std::vector< Real > | mumax_global |
| Kokkos::View< Real ** > | n_vel_1D |
| Kokkos::View< Real ** > | n_vel_trap_1D |
| int | NBIN_MU_F0 = 0 |
| int | NLARM_PIC2 = 0 |
| Kokkos::View< int * > | npart |
| Kokkos::View< int * > | npmx |
| Kokkos::View< Real * > | nptot_inv |
| Kokkos::View< int * > | ntest |
| int | ntrap = 0 |
| int | num_mesh = 0 |
| std::vector< PointerMarkers > | pic1 |
| std::vector< PointerMarkers > | pic2 |
| std::vector< PointerMarkersLogic > | pic3 |
| std::vector< PointerMarkersI8 > | pic4 |
| std::vector< PointerMarkersR4 > | pic5 |
| std::vector< PointerMarkers > | pion_1 |
| Kokkos::View< Real * > | ppsum_buff_real |
| Real | psi0_inv = 0.0 |
| Real | psi_max = 1.0 |
| Real | psi_min = 0.0 |
| int | qt_num_chi = 0 |
| int | qt_num_s = 0 |
| Kokkos::View< bool * > | qt_toggle_flag |
| std::vector< PointerQuadtree > | qtree |
| Kokkos::View< Real *** > | rho_passing_omp |
| std::vector< std::unique_ptr< SortingClass > > | sortings |
| std::vector< Real > | sum_ekin_markers_global |
| std::vector< Real > | sum_pekin_markers_global |
| Kokkos::View< Real * > | Total_weight |
| int | ub_wx = 0 |
| std::vector< Real > | umax_global |
| std::vector< Real > | umin_global |
| Kokkos::View< Real ** > | vpbi |
| Kokkos::View< Real **, Kokkos::LayoutLeft, Kokkos::HostSpace > | vpbi_host_cache |
| Kokkos::View< Real ** > | vpll_momentum_bins |
| Kokkos::View< Real **, Kokkos::LayoutLeft, Kokkos::HostSpace > | vpll_momentum_bins_host_cache |
| std::vector< PointerMarkers > | work1 |
| std::vector< PointerMarkers > | work2 |
| std::vector< PointerMarkers > | work3 |
| std::vector< PointerMarkers > | work5 |
| std::vector< PointerMarkers > | work6 |
| std::vector< PointerMarkers > | work7 |
| std::vector< PointerMarkers > | work8 |
| std::vector< PointerMarkers > | work9 |
| std::vector< PointerMarkers > | work_rev |
| std::vector< PointerMarkers > | work_temp |
| std::vector< Real > | zsmax_global |
| std::vector< Real > | zsum_global |
Static Public Attributes | |
| static constexpr int | qt_num_s_per_ns = 2 |
|
default |
| orb5x::ParticleModule::~ParticleModule | ( | ) |
| Real orb5x::ParticleModule::b_star | ( | Real | st, |
| Real | chit, | ||
| Real | b, | ||
| Real | ut, | ||
| Real | tprime, | ||
| Real | addpBst, | ||
| int | isp ) |
| void orb5x::ParticleModule::bcpart | ( | int | isp, |
| bool | run_on_device ) |
| void orb5x::ParticleModule::bcpart_disp | ( | bool | run_on_device | ) |
| 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 ) |
| void orb5x::ParticleModule::charge_deposition_passing_electrons_disp | ( | int | isp, |
| const int * | lb, | ||
| const int * | ub, | ||
| Kokkos::View< Real ** > & | rho_passing ) |
| void orb5x::ParticleModule::check_ffinit | ( | int | isp | ) |
Validation routine for FFINIT consistency Matching Fortran part.F90 lines 1497-1514.
| isp | Species index (0-based in C++) |
| void orb5x::ParticleModule::compute_all_larmor_positions | ( | int | isp | ) |
| void orb5x::ParticleModule::compute_all_larmor_positions_disp | ( | bool | comp_dk | ) |
|
static |
Compute deposition attributes for drift-kinetic models Matching Fortran part.F90 lines 2717-2733.
| u | Marker parallel momenta |
| w | Marker weights |
| uw | Output: Product of u and w |
| n | Number of markers |
| void orb5x::ParticleModule::compute_moments_3d | ( | int | isp | ) |
| void orb5x::ParticleModule::compute_psi0_corr_disp | ( | bool | flag | ) |
|
static |
| 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 ) |
| void orb5x::ParticleModule::compute_reduced_weights_disp | ( | int | isp, |
| int | nsel_att ) |
|
static |
Compute equilibrium distribution function f0.
Public wrapper for the internal vf0 function, used by PSZS diagnostics.
| isp | Species index (0-based) |
| zvth2 | Thermal velocity squared |
| nval | Density profile value |
| ze | Kinetic energy |
| zecor | Energy correction |
| b | Magnetic field magnitude |
| pot_equil | Equilibrium potential |
| pot_equil0 | Reference equilibrium potential |
| psit | Toroidal flux coordinate |
| ut | Parallel velocity |
| mut | Magnetic moment |
|
static |
Cross product of two 3D vectors.
| void orb5x::ParticleModule::deposit_bsplines | ( | int | isp, |
| int | npart_loc, | ||
| const Kokkos::View< Real ** > & | pic1_loc, | ||
| const Kokkos::View< Real ** > & | pic2_loc ) |
|
static |
| void orb5x::ParticleModule::diagnose_particles | ( | int | isp | ) |
|
static |
| 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.
| isp | Species index (0-based) |
| pert_table | Output: Table of perturbation parameters |
| nperts | Output: Number of perturbations loaded |
|
static |
| void orb5x::ParticleModule::get_field_disp | ( | const FieldType & | field, |
| int | istep, | ||
| bool | nl_main_substep, | ||
| int | i_att ) |
|
static |
| Real orb5x::ParticleModule::get_KE | ( | int | isp | ) |
| void orb5x::ParticleModule::get_larmor_indices_disp | ( | bool | initflag = false, |
| bool | adapt_only = false ) |
|
static |
| void orb5x::ParticleModule::get_pos | ( | int | isp, |
| int | ip, | ||
| Real * | pos ) |
| void orb5x::ParticleModule::get_properties | ( | int | isp, |
| int | ip, | ||
| Real * | props ) |
|
static |
|
static |
Computes RHS of delta-f equation Matching Fortran get_rhs subroutine (lines 4791-4968 in part.F90).
| 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 ) |
Get bounce-averaged v_parallel/B from precomputed lookup table.
Matching Fortran part.F90 lines 6674-6710.
| psi | Flux coordinate (psi = sigma^2) |
| mu | Magnetic moment |
| en | Energy (0.5*u^2 + mu*B) |
| v_pll | Parallel velocity (for sign determination) |
| isp | Species index (0-based in C++) |
| void orb5x::ParticleModule::grid_pic | ( | int | isp, |
| bool | run_on_device ) |
| 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:
Uses part_fields::deposition (matching Fortran interface deposition, part_fields.F90 lines 25-27)
| isp | Species index (0-based in C++) |
| nsel_att | Which attribute to be deposited (NSEL_CHARGE=0 or NSEL_CURRENT=1) |
| reduce_flag | Reduce the weights by the adiabatic density/current |
| lb | Lower indices of the deposition arrays (size 4) |
| ub | Upper indices of the deposition arrays (size 4) |
| assign1 | Output: deposited quantity array |
| i_att | Iteration over atts arrays (1-based, matching Fortran) |
| 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.
| isp | Species index (0-based in C++) |
| nsel_att | Which pic5 attribute to deposit |
| lb | Lower indices of the deposition arrays (size 3 or 4) |
| ub | Upper indices of the deposition arrays (size 3 or 4) |
| assign1 | Output: deposited quantity array |
| void orb5x::ParticleModule::helical_flux_label | ( | Real | sigmat, |
| Real | xiang, | ||
| int & | irloc, | ||
| Real & | dr_flux_inv, | ||
| int & | ipol ) |
References dr_flux_inv.
|
static |
References orb5x::fields.
| void orb5x::ParticleModule::init_particles | ( | ) |
| void orb5x::ParticleModule::init_push_diagnostics | ( | ) |
| void orb5x::ParticleModule::init_test_particles | ( | int | isp | ) |
| 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.
| isp | Species index (0-based) |
| l5_s_array | Output: Array of radial positions for LIGKA modes |
| void orb5x::ParticleModule::load_particles | ( | ) |
| void orb5x::ParticleModule::load_test_particles | ( | int | isp | ) |
| 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 ) |
| 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:
| isp | Species index (0-based in C++) |
| nsel_att | Attribute selector for deposition (NSEL_CHARGE, NSEL_CURRENT, etc.) |
| reduce_flag | If true, compute reduced weights before deposition |
| i_att | Iteration counter over atts arrays (1-based in Fortran, 0-based here) |
| lb | Lower bounds of charge arrays (size 4) |
| ub | Upper bounds of charge arrays (size 4) |
| assign1 | Output: Deposited quantity array [lb(1):ub(1), lb(2):ub(2), lb(3):ub(3)] |
| assign1_passing | Optional output: Passing electron charge array [lb(1):ub(1), lb(2):ub(2)] |
|
static |
Returns components of h x h x curl(u_e) Matching Fortran part.F90 lines 7468-7483.
| void orb5x::ParticleModule::postpush_disp | ( | ) |
| void orb5x::ParticleModule::postpush_fullf | ( | int | isp | ) |
| void orb5x::ParticleModule::print_test_particles | ( | int | step | ) |
| void orb5x::ParticleModule::pszs_calc | ( | ) |
PSZS boundary setup from particle distribution Matching Fortran part.F90 lines 8442-8549 Sets up boundaries for Phase Space Zone Sampling diagnostics.
| isp | Species index (0-based) |
| lb | Lower bounds array (size 3) |
| ub | Upper bounds array (size 3) |
| void orb5x::ParticleModule::pullback | ( | ) |
| void orb5x::ParticleModule::push_disp | ( | int | iter | ) |
| void orb5x::ParticleModule::quadtree_smoothing_disp | ( | ) |
| void orb5x::ParticleModule::quadtree_smoothing_interface | ( | int | isp, |
| bool | diagnose_ ) |
| void orb5x::ParticleModule::read_write_particle_data | ( | int | flag, |
| int | datn ) |
|
static |
| void orb5x::ParticleModule::set_weights_to_zero_at_t0 | ( | ) |
| void orb5x::ParticleModule::sort_gc_2D_disp | ( | ) |
| void orb5x::ParticleModule::sort_gc_3D_disp | ( | ) |
| 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.
| 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 ) |
Strong flow diagnostic output Matching Fortran part.F90 lines 5066-5102 Outputs diagnostics for strong flow validation.
|
static |
Strong flow terms computation Matching Fortran part.F90 lines 5284-5315.
| 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 ) |
Test particle output routine Matching Fortran part.F90 lines 4490-4506 Stores test particle diagnostics.
| void orb5x::ParticleModule::trap_detrap_disp | ( | ) |
| void orb5x::ParticleModule::unsort_gc_3D_disp | ( | ) |
| void orb5x::ParticleModule::update_ffinit_or_pvol | ( | ) |
| bool orb5x::ParticleModule::uses_modified_toroidal_momentum | ( | int | isp | ) | const |
|
static |
|
static |
|
static |
References psi0_inv.
|
static |
|
static |
| 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 ) |
Compute v_parallel/B quantities from lookup table Matching Fortran part.F90 lines 6814-6895 Full interpolation from vpbi array with derivatives.
| Kokkos::View<Real*> orb5x::ParticleModule::bin_surf_inv |
| Kokkos::View<Real*> orb5x::ParticleModule::bin_vol_inv |
| Kokkos::View<Complex***> orb5x::ParticleModule::cfield_out_3D |
| Kokkos::View<Complex***> orb5x::ParticleModule::cfield_out_3D_fft |
| Kokkos::View<Real*> orb5x::ParticleModule::dens0 |
| Real orb5x::ParticleModule::dmu_bin = 0.0 |
| Real orb5x::ParticleModule::dmu_bin_2 = 0.0 |
| Real orb5x::ParticleModule::dpsi_bin = 0.0 |
| Real orb5x::ParticleModule::dr_flux_inv = 0.0 |
Referenced by helical_flux_label().
| Real orb5x::ParticleModule::dth_inv = 0.0 |
| Real orb5x::ParticleModule::ftrap = 0.0 |
| std::vector<Real> orb5x::ParticleModule::integral_f0_global |
| int orb5x::ParticleModule::irloc_in = 0 |
| int orb5x::ParticleModule::lb_wx = 0 |
| int orb5x::ParticleModule::MAX_PIC2 = 0 |
| int orb5x::ParticleModule::MAX_PIC5 = 0 |
| int orb5x::ParticleModule::MAX_WORK = 0 |
| int orb5x::ParticleModule::MAX_WORK_FIELDS = 0 |
| int orb5x::ParticleModule::MAX_WORK_REV = 0 |
| std::vector<Moments3DClass> orb5x::ParticleModule::moments_3d_array |
| Real orb5x::ParticleModule::mu_max = 0.0 |
| Real orb5x::ParticleModule::mu_min = 0.0 |
| std::vector<Real> orb5x::ParticleModule::mumax_global |
| Kokkos::View<Real**> orb5x::ParticleModule::n_vel_1D |
| Kokkos::View<Real**> orb5x::ParticleModule::n_vel_trap_1D |
| int orb5x::ParticleModule::NBIN_MU_F0 = 0 |
| int orb5x::ParticleModule::NLARM_PIC2 = 0 |
| Kokkos::View<int*> orb5x::ParticleModule::npart |
| Kokkos::View<int*> orb5x::ParticleModule::npmx |
| Kokkos::View<Real*> orb5x::ParticleModule::nptot_inv |
| Kokkos::View<int*> orb5x::ParticleModule::ntest |
| int orb5x::ParticleModule::ntrap = 0 |
| int orb5x::ParticleModule::num_mesh = 0 |
| std::vector<PointerMarkers> orb5x::ParticleModule::pic1 |
| std::vector<PointerMarkers> orb5x::ParticleModule::pic2 |
| std::vector<PointerMarkersLogic> orb5x::ParticleModule::pic3 |
| std::vector<PointerMarkersI8> orb5x::ParticleModule::pic4 |
| std::vector<PointerMarkersR4> orb5x::ParticleModule::pic5 |
| std::vector<PointerMarkers> orb5x::ParticleModule::pion_1 |
| Kokkos::View<Real*> orb5x::ParticleModule::ppsum_buff_real |
| Real orb5x::ParticleModule::psi0_inv = 0.0 |
Referenced by vf0_psi_prof().
| Real orb5x::ParticleModule::psi_max = 1.0 |
| Real orb5x::ParticleModule::psi_min = 0.0 |
| int orb5x::ParticleModule::qt_num_chi = 0 |
| int orb5x::ParticleModule::qt_num_s = 0 |
|
staticconstexpr |
| Kokkos::View<bool*> orb5x::ParticleModule::qt_toggle_flag |
| std::vector<PointerQuadtree> orb5x::ParticleModule::qtree |
| Kokkos::View<Real***> orb5x::ParticleModule::rho_passing_omp |
| std::vector<std::unique_ptr<SortingClass> > orb5x::ParticleModule::sortings |
| std::vector<Real> orb5x::ParticleModule::sum_ekin_markers_global |
| std::vector<Real> orb5x::ParticleModule::sum_pekin_markers_global |
| Kokkos::View<Real*> orb5x::ParticleModule::Total_weight |
| int orb5x::ParticleModule::ub_wx = 0 |
| std::vector<Real> orb5x::ParticleModule::umax_global |
| std::vector<Real> orb5x::ParticleModule::umin_global |
| Kokkos::View<Real**> orb5x::ParticleModule::vpbi |
| Kokkos::View<Real**, Kokkos::LayoutLeft, Kokkos::HostSpace> orb5x::ParticleModule::vpbi_host_cache |
| Kokkos::View<Real**> orb5x::ParticleModule::vpll_momentum_bins |
| Kokkos::View<Real**, Kokkos::LayoutLeft, Kokkos::HostSpace> orb5x::ParticleModule::vpll_momentum_bins_host_cache |
| std::vector<PointerMarkers> orb5x::ParticleModule::work1 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work2 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work3 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work5 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work6 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work7 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work8 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work9 |
| std::vector<PointerMarkers> orb5x::ParticleModule::work_rev |
| std::vector<PointerMarkers> orb5x::ParticleModule::work_temp |
| std::vector<Real> orb5x::ParticleModule::zsmax_global |
| std::vector<Real> orb5x::ParticleModule::zsum_global |