XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
f0_redistribute.cpp File Reference
#include "plasma.hpp"
#include "domain_decomposition.hpp"
#include "f0_redistribute.hpp"
Include dependency graph for f0_redistribute.cpp:

Functions

void partition_intersect (int left_min, int left_max, int right_min, int right_max, int nnode, int nranks, int *partition, int *index, int *count, int *counts, int *ierr)
 
int pair (int np, int p, int k)
 
void get_counts (const View< int *, CLayout, HostType > &old_partition, const DomainDecomposition< DeviceType > &pol_decomp, View< int *, CLayout, HostType > &send_index, View< int *, CLayout, HostType > &send_count, int &send_counts, View< int *, CLayout, HostType > &recv_index, View< int *, CLayout, HostType > &recv_count, int &recv_counts)
 
template<typename T >
int n_doubles_per_vertex (const T &array)
 
template<>
int n_doubles_per_vertex (const View< double *, CLayout, HostType > &array)
 
template<>
int n_doubles_per_vertex (const View< double **, CLayout, HostType > &array)
 
template<>
int n_doubles_per_vertex (const VGridDistribution< HostType > &array)
 
template<class V >
int total_n_doubles_per_vertex (const V &first)
 
template<class V , class... TRest>
int total_n_doubles_per_vertex (const V &first, const TRest &...args)
 
template<typename T >
KOKKOS_INLINE_FUNCTION double & vertex_access (const T &array, int i, int ip)
 
template<>
KOKKOS_INLINE_FUNCTION double & vertex_access (const View< double *, CLayout, HostType > &array, int i, int ip)
 
template<>
KOKKOS_INLINE_FUNCTION double & vertex_access (const View< double **, CLayout, HostType > &array, int i, int ip)
 
template<>
KOKKOS_INLINE_FUNCTION double & vertex_access (const VGridDistribution< HostType > &array, int i, int ip)
 
template<typename T >
void resize_n_vertices (int nnodes, T &array)
 
template<typename T , typename... TRest>
void resize_n_vertices (int nnodes, T &array, TRest &...args)
 
template<>
void resize_n_vertices (int nnodes, View< double *, CLayout, HostType > &array)
 
template<>
void resize_n_vertices (int nnodes, View< double **, CLayout, HostType > &array)
 
template<>
void resize_n_vertices (int nnodes, VGridDistribution< HostType > &array)
 
template<class V >
void load_arrays (int n, int new_offset, int old_offset, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const V &array)
 
template<class V , class... TRest>
void load_arrays (int n, int new_offset, int old_offset, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const V &first, const TRest &...args)
 
template<class... Vs>
void load_buffer (int n, int new_offset, int old_offset, const View< double **, CLayout, HostType > &buffer, const Vs &...arrays)
 
template<class V >
void unload_arrays (int n, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const V &array)
 
template<class V , class... TRest>
void unload_arrays (int n, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const V &first, const TRest &...args)
 
template<class... Vs>
void unload_buffer (int n, const View< double **, CLayout, HostType > &buffer, const Vs &...arrays)
 
template<class... Vs>
View< double **, CLayout,
HostType
transfer_data (const View< int *, CLayout, HostType > &old_partition, const DomainDecomposition< DeviceType > &pol_decomp, const Vs &...arrays)
 
template<class... Vs>
void redistribute_pol_decomp (const DomainDecomposition< DeviceType > &pol_decomp, const View< int *, CLayout, HostType > &old_partition, Vs &...arrays)
 
void f0_redistribute (Plasma &plasma, const DomainDecomposition< DeviceType > &pol_decomp, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const VelocityGrid &vgrid, const View< int *, CLayout, HostType > &old_partition)
 

Function Documentation

void f0_redistribute ( Plasma plasma,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Grid< DeviceType > &  grid,
const MagneticField< DeviceType > &  magnetic_field,
const VelocityGrid vgrid,
const View< int *, CLayout, HostType > &  old_partition 
)

Here is the call graph for this function:

Here is the caller graph for this function:

void get_counts ( const View< int *, CLayout, HostType > &  old_partition,
const DomainDecomposition< DeviceType > &  pol_decomp,
View< int *, CLayout, HostType > &  send_index,
View< int *, CLayout, HostType > &  send_count,
int &  send_counts,
View< int *, CLayout, HostType > &  recv_index,
View< int *, CLayout, HostType > &  recv_count,
int &  recv_counts 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class V >
void load_arrays ( int  n,
int  new_offset,
int  old_offset,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const V &  array 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class V , class... TRest>
void load_arrays ( int  n,
int  new_offset,
int  old_offset,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const V &  first,
const TRest &...  args 
)

Here is the call graph for this function:

template<class... Vs>
void load_buffer ( int  n,
int  new_offset,
int  old_offset,
const View< double **, CLayout, HostType > &  buffer,
const Vs &...  arrays 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T >
int n_doubles_per_vertex ( const T &  array)

Here is the caller graph for this function:

template<>
int n_doubles_per_vertex ( const View< double *, CLayout, HostType > &  array)
template<>
int n_doubles_per_vertex ( const View< double **, CLayout, HostType > &  array)
template<>
int n_doubles_per_vertex ( const VGridDistribution< HostType > &  array)

Here is the call graph for this function:

int pair ( int  np,
int  p,
int  k 
)

Here is the caller graph for this function:

void partition_intersect ( int  left_min,
int  left_max,
int  right_min,
int  right_max,
int  nnode,
int  nranks,
int *  partition,
int *  index,
int *  count,
int *  counts,
int *  ierr 
)

Here is the caller graph for this function:

template<class... Vs>
void redistribute_pol_decomp ( const DomainDecomposition< DeviceType > &  pol_decomp,
const View< int *, CLayout, HostType > &  old_partition,
Vs &...  arrays 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T >
void resize_n_vertices ( int  nnodes,
T &  array 
)

Here is the caller graph for this function:

template<typename T , typename... TRest>
void resize_n_vertices ( int  nnodes,
T &  array,
TRest &...  args 
)

Here is the call graph for this function:

template<>
void resize_n_vertices ( int  nnodes,
View< double *, CLayout, HostType > &  array 
)
template<>
void resize_n_vertices ( int  nnodes,
View< double **, CLayout, HostType > &  array 
)
template<>
void resize_n_vertices ( int  nnodes,
VGridDistribution< HostType > &  array 
)

Here is the call graph for this function:

template<class V >
int total_n_doubles_per_vertex ( const V &  first)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class V , class... TRest>
int total_n_doubles_per_vertex ( const V &  first,
const TRest &...  args 
)

Here is the call graph for this function:

template<class... Vs>
View<double**,CLayout,HostType> transfer_data ( const View< int *, CLayout, HostType > &  old_partition,
const DomainDecomposition< DeviceType > &  pol_decomp,
const Vs &...  arrays 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class V >
void unload_arrays ( int  n,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const V &  array 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<class V , class... TRest>
void unload_arrays ( int  n,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const V &  first,
const TRest &...  args 
)

Here is the call graph for this function:

template<class... Vs>
void unload_buffer ( int  n,
const View< double **, CLayout, HostType > &  buffer,
const Vs &...  arrays 
)

Here is the call graph for this function:

Here is the caller graph for this function:

template<typename T >
KOKKOS_INLINE_FUNCTION double& vertex_access ( const T &  array,
int  i,
int  ip 
)

Here is the caller graph for this function:

template<>
KOKKOS_INLINE_FUNCTION double& vertex_access ( const View< double *, CLayout, HostType > &  array,
int  i,
int  ip 
)
template<>
KOKKOS_INLINE_FUNCTION double& vertex_access ( const View< double **, CLayout, HostType > &  array,
int  i,
int  ip 
)
template<>
KOKKOS_INLINE_FUNCTION double& vertex_access ( const VGridDistribution< HostType > &  array,
int  i,
int  ip 
)

Here is the call graph for this function: