XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Typedefs | Enumerations | Functions
get_volume.cpp File Reference
#include <Kokkos_Random.hpp>
#include "globals.hpp"
#include "my_mpi.hpp"
#include "basic_physics.hpp"
#include "magnetic_field.hpp"
#include "grid.hpp"
#include "species.hpp"
Include dependency graph for get_volume.cpp:

Typedefs

typedef
Kokkos::Random_XorShift64_Pool
< DeviceType
pool_type
 

Enumerations

enum  NormBy { NormBy::Volume = 0, NormBy::Area }
 

Functions

int get_n_monte_carlo (double desired_volume_accuracy, double simulation_volume)
 
void grid_tr_vol_and_area (const Grid< DeviceType > &grid)
 
void grid_node_tr_mapping (Grid< DeviceType > &grid)
 
void analytical_volume (const Grid< DeviceType > &grid)
 
template<NormBy T>
KOKKOS_INLINE_FUNCTION double r_norm (double rdim, double roffset, double rand)
 
template<>
KOKKOS_INLINE_FUNCTION double r_norm< NormBy::Volume > (double rdim, double roffset, double rand)
 
template<>
KOKKOS_INLINE_FUNCTION double r_norm< NormBy::Area > (double rdim, double roffset, double rand)
 
template<NormBy T_NormBy, typename F >
void monte_carlo_parallel_for (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, int n_monte_carlo, F func)
 
KOKKOS_INLINE_FUNCTION void monte_carlo_vol00 (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const SimdVector2D &x, const Simd< double > &psi, const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &vol00)
 
KOKKOS_INLINE_FUNCTION void monte_carlo_diag_1d_vol (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const SimdVector2D &x, const Simd< double > &psi, const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &diag_1d_vol)
 
KOKKOS_INLINE_FUNCTION void monte_carlo_node_vol_ff_and_nearest (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const SimdVector2D &x, const Simd< double > &phi, const Simd< double > &psi, bool calculate_node_vol_nearest, const Kokkos::View< double *[2], Kokkos::LayoutRight, DeviceType > &node_vol_ff, const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &node_vol_nearest)
 
KOKKOS_INLINE_FUNCTION void monte_carlo_node_vol_and_nearest (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const SimdVector2D &x, const Simd< double > &psi)
 
KOKKOS_INLINE_FUNCTION void monte_carlo_node_area (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const SimdVector2D &x, const Simd< double > &psi)
 
double get_volume (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, int n_monte_carlo, bool calculate_node_vol_nearest)
 
void monte_carlo_volume (const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, int n_monte_carlo)
 
void get_node_volume (Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, int n_monte_carlo, bool calculate_node_vol_nearest, bool node_vol_monte)
 

Typedef Documentation

typedef Kokkos::Random_XorShift64_Pool<DeviceType> pool_type

Enumeration Type Documentation

enum NormBy
strong
Enumerator
Volume 
Area 

Function Documentation

void analytical_volume ( const Grid< DeviceType > &  grid)

Here is the caller graph for this function:

int get_n_monte_carlo ( double  desired_volume_accuracy,
double  simulation_volume 
)
void get_node_volume ( Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
int  n_monte_carlo,
bool  calculate_node_vol_nearest,
bool  node_vol_monte 
)

Get volume arrays

Here is the call graph for this function:

double get_volume ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
int  n_monte_carlo,
bool  calculate_node_vol_nearest 
)

Get volume arrays

Here is the call graph for this function:

void grid_node_tr_mapping ( Grid< DeviceType > &  grid)

Here is the caller graph for this function:

void grid_tr_vol_and_area ( const Grid< DeviceType > &  grid)

Here is the call graph for this function:

Here is the caller graph for this function:

KOKKOS_INLINE_FUNCTION void monte_carlo_diag_1d_vol ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const SimdVector2D x,
const Simd< double > &  psi,
const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &  diag_1d_vol 
)

Here is the call graph for this function:

Here is the caller graph for this function:

KOKKOS_INLINE_FUNCTION void monte_carlo_node_area ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const SimdVector2D x,
const Simd< double > &  psi 
)

Here is the call graph for this function:

Here is the caller graph for this function:

KOKKOS_INLINE_FUNCTION void monte_carlo_node_vol_and_nearest ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const SimdVector2D x,
const Simd< double > &  psi 
)

Here is the call graph for this function:

Here is the caller graph for this function:

KOKKOS_INLINE_FUNCTION void monte_carlo_node_vol_ff_and_nearest ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const SimdVector2D x,
const Simd< double > &  phi,
const Simd< double > &  psi,
bool  calculate_node_vol_nearest,
const Kokkos::View< double *[2], Kokkos::LayoutRight, DeviceType > &  node_vol_ff,
const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &  node_vol_nearest 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<NormBy T_NormBy, typename F >
void monte_carlo_parallel_for ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
int  n_monte_carlo,
func 
)

Here is the call graph for this function:

KOKKOS_INLINE_FUNCTION void monte_carlo_vol00 ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const SimdVector2D x,
const Simd< double > &  psi,
const Kokkos::View< double *, Kokkos::LayoutRight, DeviceType > &  vol00 
)

Here is the caller graph for this function:

void monte_carlo_volume ( const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
int  n_monte_carlo 
)

Get volume arrays

Here is the call graph for this function:

Here is the caller graph for this function:

template<NormBy T>
KOKKOS_INLINE_FUNCTION double r_norm ( double  rdim,
double  roffset,
double  rand 
)

Here is the caller graph for this function:

template<>
KOKKOS_INLINE_FUNCTION double r_norm< NormBy::Area > ( double  rdim,
double  roffset,
double  rand 
)
template<>
KOKKOS_INLINE_FUNCTION double r_norm< NormBy::Volume > ( double  rdim,
double  roffset,
double  rand 
)