ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
 
Loading...
Searching...
No Matches
orb5x::PartFieldsModule Class Reference

#include "part_fields.hpp"

Public Member Functions

void clear_pot_coef_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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
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)
 
void init_deposition_by_cell ()
 
void init_deposition_by_color ()
 
void init_deposition_by_color_buf ()
 
void 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_)
 
void nullify_rhs (Kokkos::View< Real ***, Kokkos::LayoutStride > rhs)
 
void nullify_rhs_omp (int ithread)
 
 PartFieldsModule ()=default
 
void prepare_pot_coef_cache (const Kokkos::View< Real *** > &pot_coef)
 
void reduction_threads (Kokkos::View< Real ***, Kokkos::LayoutStride > rhs)
 
 ~PartFieldsModule ()=default
 

Static Public Member Functions

static void grad_splines_bas1 (Real x, Real *result)
 
static void grad_splines_bas2 (Real x, Real *result)
 
static void grad_splines_bas3 (Real x, Real *result)
 
static void splines_bas1 (Real x, Real *result)
 
static void splines_bas2 (Real x, Real *result)
 
static void splines_bas3 (Real x, Real *result)
 

Public Attributes

Kokkos::View< int ** > bin_array
 
Kokkos::View< Real *** > color_buffer
 
int color_nbin_x = 0
 
int color_nbin_y = 0
 
Real dx_inv = 0.0
 
Real dy_inv = 0.0
 
Real dz_inv = 0.0
 
int grid_cells_in_x_color_bucket = 0
 
int grid_cells_in_y_color_bucket = 0
 
int iz_offset = 0
 
int k_end = 0
 
int k_start = 0
 
int nbin_x = 0
 
int nbin_x_avg = 0
 
int nbin_y = 0
 
int nbin_y_avg = 0
 
int nbin_z = 0
 
int nidbas = 0
 
bool nl_gradgyr = false
 
int nsel_depos = 0
 
int nsel_get_field = 0
 
int number_of_bins_per_bucket = 0
 
int number_of_buckets = 0
 
int nx = 0
 
int ny = 0
 
int nz = 0
 
size_t pot_coef_cache_ext0 = 0
 
size_t pot_coef_cache_ext1 = 0
 
size_t pot_coef_cache_ext2 = 0
 
Kokkos::View< Real *** >::HostMirror pot_coef_cache_host
 
const Realpot_coef_cache_ptr = nullptr
 
bool pot_coef_cache_valid = false
 
Kokkos::View< Real **** > rhs_omp
 
bool use_vectorized = false
 
Real xmin = 0.0
 

Constructor & Destructor Documentation

◆ PartFieldsModule()

orb5x::PartFieldsModule::PartFieldsModule ( )
default

◆ ~PartFieldsModule()

orb5x::PartFieldsModule::~PartFieldsModule ( )
default

Member Function Documentation

◆ clear_pot_coef_cache()

void orb5x::PartFieldsModule::clear_pot_coef_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 
)

◆ 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 
)

◆ 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 
)

◆ deposition_from_views()

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 
)

◆ 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 
)

◆ 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 
)

◆ 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 
)

◆ grad_splines_bas1()

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

◆ grad_splines_bas2()

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

◆ grad_splines_bas3()

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

◆ init_deposition_by_cell()

void orb5x::PartFieldsModule::init_deposition_by_cell ( )

◆ init_deposition_by_color()

void orb5x::PartFieldsModule::init_deposition_by_color ( )

◆ init_deposition_by_color_buf()

void orb5x::PartFieldsModule::init_deposition_by_color_buf ( )

◆ init_deposition_by_part()

void orb5x::PartFieldsModule::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_ 
)

◆ nullify_rhs()

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

◆ nullify_rhs_omp()

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

◆ prepare_pot_coef_cache()

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

◆ reduction_threads()

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

◆ splines_bas1()

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

◆ splines_bas2()

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

◆ splines_bas3()

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

Member Data Documentation

◆ bin_array

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

◆ color_buffer

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

◆ color_nbin_x

int orb5x::PartFieldsModule::color_nbin_x = 0

◆ color_nbin_y

int orb5x::PartFieldsModule::color_nbin_y = 0

◆ dx_inv

Real orb5x::PartFieldsModule::dx_inv = 0.0

◆ dy_inv

Real orb5x::PartFieldsModule::dy_inv = 0.0

◆ dz_inv

Real orb5x::PartFieldsModule::dz_inv = 0.0

◆ grid_cells_in_x_color_bucket

int orb5x::PartFieldsModule::grid_cells_in_x_color_bucket = 0

◆ grid_cells_in_y_color_bucket

int orb5x::PartFieldsModule::grid_cells_in_y_color_bucket = 0

◆ iz_offset

int orb5x::PartFieldsModule::iz_offset = 0

◆ k_end

int orb5x::PartFieldsModule::k_end = 0

◆ k_start

int orb5x::PartFieldsModule::k_start = 0

◆ nbin_x

int orb5x::PartFieldsModule::nbin_x = 0

◆ nbin_x_avg

int orb5x::PartFieldsModule::nbin_x_avg = 0

◆ nbin_y

int orb5x::PartFieldsModule::nbin_y = 0

◆ nbin_y_avg

int orb5x::PartFieldsModule::nbin_y_avg = 0

◆ nbin_z

int orb5x::PartFieldsModule::nbin_z = 0

◆ nidbas

int orb5x::PartFieldsModule::nidbas = 0

◆ nl_gradgyr

bool orb5x::PartFieldsModule::nl_gradgyr = false

◆ nsel_depos

int orb5x::PartFieldsModule::nsel_depos = 0

◆ nsel_get_field

int orb5x::PartFieldsModule::nsel_get_field = 0

◆ number_of_bins_per_bucket

int orb5x::PartFieldsModule::number_of_bins_per_bucket = 0

◆ number_of_buckets

int orb5x::PartFieldsModule::number_of_buckets = 0

◆ nx

int orb5x::PartFieldsModule::nx = 0

◆ ny

int orb5x::PartFieldsModule::ny = 0

◆ nz

int orb5x::PartFieldsModule::nz = 0

◆ pot_coef_cache_ext0

size_t orb5x::PartFieldsModule::pot_coef_cache_ext0 = 0

◆ pot_coef_cache_ext1

size_t orb5x::PartFieldsModule::pot_coef_cache_ext1 = 0

◆ pot_coef_cache_ext2

size_t orb5x::PartFieldsModule::pot_coef_cache_ext2 = 0

◆ pot_coef_cache_host

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

◆ pot_coef_cache_ptr

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

◆ pot_coef_cache_valid

bool orb5x::PartFieldsModule::pot_coef_cache_valid = false

◆ rhs_omp

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

◆ use_vectorized

bool orb5x::PartFieldsModule::use_vectorized = false

◆ xmin

Real orb5x::PartFieldsModule::xmin = 0.0

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