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

Deposits particle moments to the field grid and gathers spline fields back to particle positions. More...

#include "part_fields.hpp"

Public Member Functions

void clear_pot_coef_cache ()
 Invalidate the host-side spline-coefficient cache.
 
void deposition (int np, const Real *x, const Real *y, const Real *z, const Real *w, Kokkos::View< Real ***, Kokkos::LayoutStride > rhs, const bool *nl_depos=nullptr, const int *displs=nullptr, bool first=true)
 Generic double-precision deposition entry point.
 
void deposition (int np, const Real *x, const Real *y, const Real *z, const Real32 *w, Kokkos::View< Real ***, Kokkos::LayoutStride > rhs, const bool *nl_depos=nullptr, const int *displs=nullptr, bool first=true)
 Generic single-precision-weight deposition entry point.
 
void deposition_from_marker_view (const Kokkos::View< Real ** > &atts, int np, int x_col, int y_col, int z_col, int w_col, Kokkos::View< Real ***, Kokkos::LayoutStride > rhs, const Kokkos::View< int ** > *displs=nullptr, bool first=true)
 Deposit directly from columns of a device-resident marker table.
 
void deposition_from_views (const Kokkos::View< Real ** > &coord_atts, const Kokkos::View< Real ** > &weight_atts, int np, int x_col, int y_col, int z_col, int w_col, Kokkos::View< Real ***, Kokkos::LayoutStride > rhs, const Kokkos::View< int ** > *displs=nullptr, bool first=true)
 Deposit coordinates and weights stored in separate marker views.
 
void deposition_from_views (const Kokkos::View< Real ** > &coord_atts, const Kokkos::View< Real32 ** > &weight_atts, int np, int x_col, int y_col, int z_col, int w_col, Kokkos::View< Real ***, Kokkos::LayoutStride > rhs, const Kokkos::View< int ** > *displs=nullptr, bool first=true)
 
void deposition_r4 (int np, const Real *x, const Real *y, const Real *z, const Real32 *w, Kokkos::View< Real ***, Kokkos::LayoutStride > rhs, const bool *nl_depos=nullptr, const int *displs=nullptr, bool first=true)
 Single-precision-weight overload of deposition_r8().
 
void deposition_r8 (int np, const Real *x, const Real *y, const Real *z, const Real *w, Kokkos::View< Real ***, Kokkos::LayoutStride > rhs, const bool *nl_depos=nullptr, const int *displs=nullptr, bool first=true)
 Deposit double-precision particle weights onto tensor-product spline coefficients.
 
void get_field (const Kokkos::View< Real *** > &pot_coef, int np, const Real *x, const Real *y, const Real *z, Real *pot=nullptr, Real *dpot_dx=nullptr, Real *dpot_dy=nullptr, Real *dpot_dz=nullptr, const int *displs=nullptr)
 Gather a scalar spline field and optional coordinate derivatives at particles.
 
void init_deposition_by_cell ()
 Configure cell-sorted deposition (part_fields.F90:init_deposition_by_cell).
 
void init_deposition_by_color ()
 Construct conflict-free color buckets (part_fields.F90:init_deposition_by_color).
 
void init_deposition_by_color_buf ()
 Construct color buckets and their buffered accumulation workspace.
 
void init_deposition_by_part ()
 Configure direct per-particle deposition (part_fields.F90:init_deposition_by_part).
 
void init_module (int nidbas_, int ns_, int nchi_, int nphi_, int iz_offset_, Real ds_, Real dchi_, Real dphi_, Real xmin_, bool nl_gradgyr_, int nsel_depos_, int nsel_get_field_, int nbin_x_, int nbin_y_, int nbin_z_, int color_nbin_x_, int color_nbin_y_)
 Configure grid geometry and particle–mesh algorithms.
 
void nullify_rhs (Kokkos::View< Real ***, Kokkos::LayoutStride > rhs)
 Zero every coefficient in a deposition View.
 
void nullify_rhs_omp (int ithread)
 Zero one thread-private deposition accumulator.
 
 PartFieldsModule ()=default
 Construct an uninitialized particle–field coupler.
 
void prepare_pot_coef_cache (const Kokkos::View< Real *** > &pot_coef)
 Synchronize and cache spline coefficients for repeated host gathers.
 
void reduction_threads (Kokkos::View< Real ***, Kokkos::LayoutStride > rhs)
 Sum thread-replicated deposition contributions.
 
 ~PartFieldsModule ()=default
 Release Kokkos view handles owned by this module.
 

Static Public Member Functions

static void grad_splines_bas1 (Real x, Real *result)
 Evaluate derivatives of the two linear basis weights.
 
static void grad_splines_bas2 (Real x, Real *result)
 Evaluate derivatives of the three quadratic basis weights.
 
static void grad_splines_bas3 (Real x, Real *result)
 Evaluate derivatives of the four cubic basis weights.
 
static void splines_bas1 (Real x, Real *result)
 Evaluate two linear cardinal B-spline weights.
 
static void splines_bas2 (Real x, Real *result)
 Evaluate three quadratic cardinal B-spline weights.
 
static void splines_bas3 (Real x, Real *result)
 Evaluate four cubic cardinal B-spline weights.
 

Public Attributes

Kokkos::View< int ** > bin_array
 Particle indices grouped by color bucket.
 
Kokkos::View< Real *** > color_buffer
 Per-bucket accumulation buffer for buffered coloring.
 
int color_nbin_x = 0
 Radial bin count used by conflict-free coloring.
 
int color_nbin_y = 0
 Poloidal bin count used by conflict-free coloring.
 
Real dx_inv = 0.0
 Inverse radial spacing \(1/\Delta s\).
 
Real dy_inv = 0.0
 Inverse poloidal angular spacing \(1/\Delta\chi\) [rad \(^{-1}\)].
 
Real dz_inv = 0.0
 Inverse toroidal angular spacing \(1/\Delta\varphi\) [rad \(^{-1}\)].
 
int grid_cells_in_x_color_bucket = 0
 Radial grid cells covered by one color bucket.
 
int grid_cells_in_y_color_bucket = 0
 Poloidal grid cells covered by one color bucket.
 
int iz_offset = 0
 Zero-based global index of the first local toroidal interval.
 
int k_end = 0
 Last local toroidal coefficient index touched by deposition.
 
int k_start = 0
 First local toroidal coefficient index touched by deposition.
 
int nbin_x = 0
 Number of radial particle-sorting bins.
 
int nbin_x_avg = 0
 Mean radial sorting-bin count per color bucket.
 
int nbin_y = 0
 Number of poloidal particle-sorting bins.
 
int nbin_y_avg = 0
 Mean poloidal sorting-bin count per color bucket.
 
int nbin_z = 0
 Number of local toroidal particle-sorting bins.
 
int nidbas = 0
 B-spline degree/order selector: 1 linear, 2 quadratic, or 3 cubic.
 
bool nl_gradgyr = false
 If true, differentiate the gyroaverage rather than gyroaveraging the gradient.
 
int nsel_depos = 0
 Particle-deposition algorithm selector.
 
int nsel_get_field = 0
 Field-gather algorithm selector.
 
int number_of_bins_per_bucket = 0
 Sorting-bin count represented by one color bucket.
 
int number_of_buckets = 0
 Total local color-bucket count.
 
int nx = 0
 Number of radial field-grid intervals.
 
int ny = 0
 Number of periodic poloidal field-grid intervals.
 
int nz = 0
 Number of toroidal intervals owned by this MPI subdomain.
 
size_t pot_coef_cache_ext0 = 0
 Cached radial extent.
 
size_t pot_coef_cache_ext1 = 0
 Cached poloidal extent.
 
size_t pot_coef_cache_ext2 = 0
 Cached toroidal extent.
 
Kokkos::View< Real *** >::HostMirror pot_coef_cache_host
 Host mirror reused by repeated host gathers.
 
const Real * pot_coef_cache_ptr = nullptr
 Device/allocation identity associated with the cached mirror.
 
bool pot_coef_cache_valid = false
 Whether the host coefficient cache matches its recorded identity and extents.
 
Kokkos::View< Real **** > rhs_omp
 Thread-replicated deposited RHS indexed by spline coefficient and thread.
 
bool use_vectorized = false
 Whether the vectorized colored-deposition kernel is selected.
 
Real xmin = 0.0
 Inner radial boundary in normalized \(s\) coordinates.
 

Detailed Description

Deposits particle moments to the field grid and gathers spline fields back to particle positions.

The module implements the particle–mesh coupling used by the gyrokinetic charge and current equations. Coordinates follow the original ORB5 convention: x is \(s=\sqrt{\psi}\), y is periodic poloidal angle \(\chi\), and z is periodic toroidal angle \(\varphi\) distributed over MPI subdomains. Linear, quadratic, or cubic tensor-product B-splines are selected by nidbas. Depositing and gathering with the same basis preserves the discrete particle–field coupling.

Fortran reference
part_fields.F90, module part_fields, especially deposition_r4, deposition_r8, and get_field.

Constructor & Destructor Documentation

◆ PartFieldsModule()

orb5x::PartFieldsModule::PartFieldsModule ( )
default

Construct an uninitialized particle–field coupler.

◆ ~PartFieldsModule()

orb5x::PartFieldsModule::~PartFieldsModule ( )
default

Release Kokkos view handles owned by this module.

Member Function Documentation

◆ clear_pot_coef_cache()

void orb5x::PartFieldsModule::clear_pot_coef_cache ( )

Invalidate the host-side spline-coefficient cache.

◆ deposition() [1/2]

void orb5x::PartFieldsModule::deposition ( int  np,
const Real *  x,
const Real *  y,
const Real *  z,
const Real *  w,
Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs,
const bool *  nl_depos = nullptr,
const int *  displs = nullptr,
bool  first = true 
)

Generic double-precision deposition entry point.

Parameters
[in]npNumber of particles represented by all coordinate arrays.
[in]xRadial coordinates \(s\), length np.
[in]yPoloidal coordinates \(\chi\) [rad], length np.
[in]zToroidal coordinates \(\varphi\) [rad], length np.
[in]wValues to deposit, length np.
[in,out]rhsSpline-grid accumulator; cleared first when first is true.
[in]nl_deposOptional per-particle enable mask.
[in]displsOptional particle ordering/displacement array for sorted methods.
[in]firstWhether this is the first contribution to rhs.
Fortran reference part_fields.F90:deposition_r8.

◆ deposition() [2/2]

void orb5x::PartFieldsModule::deposition ( int  np,
const Real *  x,
const Real *  y,
const Real *  z,
const Real32 *  w,
Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs,
const bool *  nl_depos = nullptr,
const int *  displs = nullptr,
bool  first = true 
)

Generic single-precision-weight deposition entry point.

Coordinates and output remain in the build's Real precision.

Parameters
[in]npNumber of particles.
[in]xRadial particle coordinates.
[in]yPoloidal particle coordinates [rad].
[in]zToroidal particle coordinates [rad].
[in]wSingle-precision deposited values.
[in,out]rhsSpline-grid accumulator.
[in]nl_deposOptional enable mask.
[in]displsOptional sorted-particle displacement map.
[in]firstWhether to clear rhs before accumulating.
Fortran reference part_fields.F90:deposition_r4.

◆ deposition_from_marker_view()

void orb5x::PartFieldsModule::deposition_from_marker_view ( const Kokkos::View< Real ** > &  atts,
int  np,
int  x_col,
int  y_col,
int  z_col,
int  w_col,
Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs,
const Kokkos::View< int ** > *  displs = nullptr,
bool  first = true 
)

Deposit directly from columns of a device-resident marker table.

Parameters
[in]attsMarker attribute view.
[in]npNumber of active marker rows.
[in]x_colRadial-coordinate column.
[in]y_colPoloidal-coordinate column.
[in]z_colToroidal-coordinate column.
[in]w_colValue/weight column.
[in,out]rhsSpline-grid accumulator.
[in]displsOptional device-resident sorting map.
[in]firstWhether to clear the accumulator before deposition.

◆ deposition_from_views() [1/2]

void orb5x::PartFieldsModule::deposition_from_views ( const Kokkos::View< Real ** > &  coord_atts,
const Kokkos::View< Real ** > &  weight_atts,
int  np,
int  x_col,
int  y_col,
int  z_col,
int  w_col,
Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs,
const Kokkos::View< int ** > *  displs = nullptr,
bool  first = true 
)

Deposit coordinates and weights stored in separate marker views.

Parameters
[in]coord_attsView containing coordinate columns.
[in]weight_attsView containing the deposited-value column.
[in]npNumber of active markers.
[in]x_colRadial column in coord_atts.
[in]y_colPoloidal column in coord_atts.
[in]z_colToroidal column in coord_atts.
[in]w_colValue column in weight_atts.
[in,out]rhsSpline-grid accumulator.
[in]displsOptional sorting map.
[in]firstWhether to clear rhs first.

◆ deposition_from_views() [2/2]

void orb5x::PartFieldsModule::deposition_from_views ( const Kokkos::View< Real ** > &  coord_atts,
const Kokkos::View< Real32 ** > &  weight_atts,
int  np,
int  x_col,
int  y_col,
int  z_col,
int  w_col,
Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs,
const Kokkos::View< int ** > *  displs = nullptr,
bool  first = true 
)

◆ deposition_r4()

void orb5x::PartFieldsModule::deposition_r4 ( int  np,
const Real *  x,
const Real *  y,
const Real *  z,
const Real32 *  w,
Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs,
const bool *  nl_depos = nullptr,
const int *  displs = nullptr,
bool  first = true 
)

Single-precision-weight overload of deposition_r8().

Coordinates and output remain in the build's Real precision.

Parameters
[in]npNumber of particles.
[in]xRadial particle coordinates.
[in]yPoloidal particle coordinates [rad].
[in]zToroidal particle coordinates [rad].
[in]wSingle-precision deposited values.
[in,out]rhsSpline-grid accumulator.
[in]nl_deposOptional enable mask.
[in]displsOptional sorted-particle displacement map.
[in]firstWhether to clear rhs before accumulating.
Fortran reference part_fields.F90:deposition_r4.

◆ deposition_r8()

void orb5x::PartFieldsModule::deposition_r8 ( int  np,
const Real *  x,
const Real *  y,
const Real *  z,
const Real *  w,
Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs,
const bool *  nl_depos = nullptr,
const int *  displs = nullptr,
bool  first = true 
)

Deposit double-precision particle weights onto tensor-product spline coefficients.

Parameters
[in]npNumber of particles represented by all coordinate arrays.
[in]xRadial coordinates \(s\), length np.
[in]yPoloidal coordinates \(\chi\) [rad], length np.
[in]zToroidal coordinates \(\varphi\) [rad], length np.
[in]wValues to deposit, length np.
[in,out]rhsSpline-grid accumulator; cleared first when first is true.
[in]nl_deposOptional per-particle enable mask.
[in]displsOptional particle ordering/displacement array for sorted methods.
[in]firstWhether this is the first contribution to rhs.
Fortran reference part_fields.F90:deposition_r8.

◆ get_field()

void orb5x::PartFieldsModule::get_field ( const Kokkos::View< Real *** > &  pot_coef,
int  np,
const Real *  x,
const Real *  y,
const Real *  z,
Real *  pot = nullptr,
Real *  dpot_dx = nullptr,
Real *  dpot_dy = nullptr,
Real *  dpot_dz = nullptr,
const int *  displs = nullptr 
)

Gather a scalar spline field and optional coordinate derivatives at particles.

Parameters
[in]pot_coefTensor-product B-spline coefficient array.
[in]npNumber of particle positions.
[in]xRadial coordinates \(s\).
[in]yPoloidal coordinates [rad].
[in]zToroidal coordinates [rad].
[out]potOptional interpolated scalar field.
[out]dpot_dxOptional \(\partial/\partial s\) derivative.
[out]dpot_dyOptional \(\partial/\partial\chi\) derivative.
[out]dpot_dzOptional \(\partial/\partial\varphi\) derivative.
[in]displsOptional sorted-particle displacement map.
Fortran reference part_fields.F90:get_field.

◆ grad_splines_bas1()

static void orb5x::PartFieldsModule::grad_splines_bas1 ( Real  x,
Real *  result 
)
static

Evaluate derivatives of the two linear basis weights.

Parameters
[in]xDimensionless cell coordinate.
[out]resultArray of at least two derivatives with respect to x.

◆ grad_splines_bas2()

static void orb5x::PartFieldsModule::grad_splines_bas2 ( Real  x,
Real *  result 
)
static

Evaluate derivatives of the three quadratic basis weights.

Parameters
[in]xDimensionless cell coordinate.
[out]resultArray of at least three derivatives with respect to x.

◆ grad_splines_bas3()

static void orb5x::PartFieldsModule::grad_splines_bas3 ( Real  x,
Real *  result 
)
static

Evaluate derivatives of the four cubic basis weights.

Parameters
[in]xDimensionless cell coordinate.
[out]resultArray of at least four derivatives with respect to x.

◆ init_deposition_by_cell()

void orb5x::PartFieldsModule::init_deposition_by_cell ( )

Configure cell-sorted deposition (part_fields.F90:init_deposition_by_cell).

◆ init_deposition_by_color()

void orb5x::PartFieldsModule::init_deposition_by_color ( )

Construct conflict-free color buckets (part_fields.F90:init_deposition_by_color).

◆ init_deposition_by_color_buf()

void orb5x::PartFieldsModule::init_deposition_by_color_buf ( )

Construct color buckets and their buffered accumulation workspace.

◆ init_deposition_by_part()

void orb5x::PartFieldsModule::init_deposition_by_part ( )

Configure direct per-particle deposition (part_fields.F90:init_deposition_by_part).

◆ init_module()

void orb5x::PartFieldsModule::init_module ( int  nidbas_,
int  ns_,
int  nchi_,
int  nphi_,
int  iz_offset_,
Real  ds_,
Real  dchi_,
Real  dphi_,
Real  xmin_,
bool  nl_gradgyr_,
int  nsel_depos_,
int  nsel_get_field_,
int  nbin_x_,
int  nbin_y_,
int  nbin_z_,
int  color_nbin_x_,
int  color_nbin_y_ 
)

Configure grid geometry and particle–mesh algorithms.

Parameters
[in]nidbas_B-spline order, from 1 through 3.
[in]ns_Number of radial intervals.
[in]nchi_Number of poloidal intervals.
[in]nphi_Number of local toroidal intervals.
[in]iz_offset_Global index of the first local toroidal interval.
[in]ds_Radial spacing \(\Delta s\).
[in]dchi_Poloidal spacing [rad].
[in]dphi_Toroidal spacing [rad].
[in]xmin_Inner radial boundary in normalized \(s\).
[in]nl_gradgyr_Select gradient-of-gyroaverage semantics.
[in]nsel_depos_Deposition implementation selector.
[in]nsel_get_field_Field-gather implementation selector.
[in]nbin_x_Radial sorting-bin count.
[in]nbin_y_Poloidal sorting-bin count.
[in]nbin_z_Local toroidal sorting-bin count.
[in]color_nbin_x_Radial coloring-bin count.
[in]color_nbin_y_Poloidal coloring-bin count.
Fortran reference part_fields.F90:init_module.

◆ nullify_rhs()

void orb5x::PartFieldsModule::nullify_rhs ( Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs)

Zero every coefficient in a deposition View.

Parameters
[out]rhsStrided [s][chi][phi] coefficient storage.

◆ nullify_rhs_omp()

void orb5x::PartFieldsModule::nullify_rhs_omp ( int  ithread)

Zero one thread-private deposition accumulator.

Parameters
[in]ithreadZero-based thread replica index.

◆ prepare_pot_coef_cache()

void orb5x::PartFieldsModule::prepare_pot_coef_cache ( const Kokkos::View< Real *** > &  pot_coef)

Synchronize and cache spline coefficients for repeated host gathers.

Parameters
[in]pot_coefDevice-accessible tensor-product spline coefficients.

◆ reduction_threads()

void orb5x::PartFieldsModule::reduction_threads ( Kokkos::View< Real ***, Kokkos::LayoutStride >  rhs)

Sum thread-replicated deposition contributions.

Parameters
[out]rhsStrided destination [s][chi][phi].

◆ splines_bas1()

static void orb5x::PartFieldsModule::splines_bas1 ( Real  x,
Real *  result 
)
static

Evaluate two linear cardinal B-spline weights.

Parameters
[in]xDimensionless cell coordinate.
[out]resultArray of at least two dimensionless weights.

◆ splines_bas2()

static void orb5x::PartFieldsModule::splines_bas2 ( Real  x,
Real *  result 
)
static

Evaluate three quadratic cardinal B-spline weights.

Parameters
[in]xDimensionless cell coordinate.
[out]resultArray of at least three dimensionless weights.

◆ splines_bas3()

static void orb5x::PartFieldsModule::splines_bas3 ( Real  x,
Real *  result 
)
static

Evaluate four cubic cardinal B-spline weights.

Parameters
[in]xDimensionless cell coordinate.
[out]resultArray of at least four dimensionless weights.

Member Data Documentation

◆ bin_array

Kokkos::View<int**> orb5x::PartFieldsModule::bin_array

Particle indices grouped by color bucket.

◆ color_buffer

Kokkos::View<Real***> orb5x::PartFieldsModule::color_buffer

Per-bucket accumulation buffer for buffered coloring.

◆ color_nbin_x

int orb5x::PartFieldsModule::color_nbin_x = 0

Radial bin count used by conflict-free coloring.

◆ color_nbin_y

int orb5x::PartFieldsModule::color_nbin_y = 0

Poloidal bin count used by conflict-free coloring.

◆ dx_inv

Real orb5x::PartFieldsModule::dx_inv = 0.0

Inverse radial spacing \(1/\Delta s\).

◆ dy_inv

Real orb5x::PartFieldsModule::dy_inv = 0.0

Inverse poloidal angular spacing \(1/\Delta\chi\) [rad \(^{-1}\)].

◆ dz_inv

Real orb5x::PartFieldsModule::dz_inv = 0.0

Inverse toroidal angular spacing \(1/\Delta\varphi\) [rad \(^{-1}\)].

◆ grid_cells_in_x_color_bucket

int orb5x::PartFieldsModule::grid_cells_in_x_color_bucket = 0

Radial grid cells covered by one color bucket.

◆ grid_cells_in_y_color_bucket

int orb5x::PartFieldsModule::grid_cells_in_y_color_bucket = 0

Poloidal grid cells covered by one color bucket.

◆ iz_offset

int orb5x::PartFieldsModule::iz_offset = 0

Zero-based global index of the first local toroidal interval.

◆ k_end

int orb5x::PartFieldsModule::k_end = 0

Last local toroidal coefficient index touched by deposition.

◆ k_start

int orb5x::PartFieldsModule::k_start = 0

First local toroidal coefficient index touched by deposition.

◆ nbin_x

int orb5x::PartFieldsModule::nbin_x = 0

Number of radial particle-sorting bins.

◆ nbin_x_avg

int orb5x::PartFieldsModule::nbin_x_avg = 0

Mean radial sorting-bin count per color bucket.

◆ nbin_y

int orb5x::PartFieldsModule::nbin_y = 0

Number of poloidal particle-sorting bins.

◆ nbin_y_avg

int orb5x::PartFieldsModule::nbin_y_avg = 0

Mean poloidal sorting-bin count per color bucket.

◆ nbin_z

int orb5x::PartFieldsModule::nbin_z = 0

Number of local toroidal particle-sorting bins.

◆ nidbas

int orb5x::PartFieldsModule::nidbas = 0

B-spline degree/order selector: 1 linear, 2 quadratic, or 3 cubic.

◆ nl_gradgyr

bool orb5x::PartFieldsModule::nl_gradgyr = false

If true, differentiate the gyroaverage rather than gyroaveraging the gradient.

◆ nsel_depos

int orb5x::PartFieldsModule::nsel_depos = 0

Particle-deposition algorithm selector.

◆ nsel_get_field

int orb5x::PartFieldsModule::nsel_get_field = 0

Field-gather algorithm selector.

◆ number_of_bins_per_bucket

int orb5x::PartFieldsModule::number_of_bins_per_bucket = 0

Sorting-bin count represented by one color bucket.

◆ number_of_buckets

int orb5x::PartFieldsModule::number_of_buckets = 0

Total local color-bucket count.

◆ nx

int orb5x::PartFieldsModule::nx = 0

Number of radial field-grid intervals.

◆ ny

int orb5x::PartFieldsModule::ny = 0

Number of periodic poloidal field-grid intervals.

◆ nz

int orb5x::PartFieldsModule::nz = 0

Number of toroidal intervals owned by this MPI subdomain.

◆ pot_coef_cache_ext0

size_t orb5x::PartFieldsModule::pot_coef_cache_ext0 = 0

Cached radial extent.

◆ pot_coef_cache_ext1

size_t orb5x::PartFieldsModule::pot_coef_cache_ext1 = 0

Cached poloidal extent.

◆ pot_coef_cache_ext2

size_t orb5x::PartFieldsModule::pot_coef_cache_ext2 = 0

Cached toroidal extent.

◆ pot_coef_cache_host

Kokkos::View<Real***>::HostMirror orb5x::PartFieldsModule::pot_coef_cache_host

Host mirror reused by repeated host gathers.

◆ pot_coef_cache_ptr

const Real* orb5x::PartFieldsModule::pot_coef_cache_ptr = nullptr

Device/allocation identity associated with the cached mirror.

◆ pot_coef_cache_valid

bool orb5x::PartFieldsModule::pot_coef_cache_valid = false

Whether the host coefficient cache matches its recorded identity and extents.

◆ rhs_omp

Kokkos::View<Real****> orb5x::PartFieldsModule::rhs_omp

Thread-replicated deposited RHS indexed by spline coefficient and thread.

◆ use_vectorized

bool orb5x::PartFieldsModule::use_vectorized = false

Whether the vectorized colored-deposition kernel is selected.

◆ xmin

Real orb5x::PartFieldsModule::xmin = 0.0

Inner radial boundary in normalized \(s\) coordinates.


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