XGC1
Classes | Functions
transfer_vertex_data.hpp File Reference
#include "domain_decomposition.hpp"
Include dependency graph for transfer_vertex_data.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  VertexBuffer< Device >
 

Functions

int pair (int np, int p, int k)
 
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<>
int n_doubles_per_vertex (const std::vector< View< double *, CLayout, 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<>
void load_arrays (int n, int new_offset, int old_offset, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const std::vector< View< double *, CLayout, HostType >> &array)
 
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, int vert_offset, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const V &array)
 
template<class V , class... TRest>
void unload_arrays (int n, int vert_offset, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const V &first, const TRest &... args)
 
template<>
void unload_arrays (int n, int vert_offset, const View< double **, CLayout, HostType > &buffer, int &arr_offset, const std::vector< View< double *, CLayout, HostType >> &array)
 
bool do_prepost_receive_requests (const DistributionPlan &plan)
 
int get_max_buf_size (const DistributionPlan &plan)
 
int get_sum_counts (const DistributionPlan &plan)
 
template<class... Vs>
VertexBuffer< HostTypetransfer_data (const DistributionPlan &send_plan, const DistributionPlan &recv_plan, const MyMPI &mpi, bool async, const Vs &... arrays)
 

Function Documentation

◆ do_prepost_receive_requests()

bool do_prepost_receive_requests ( const DistributionPlan plan)
inline
Here is the caller graph for this function:

◆ get_max_buf_size()

int get_max_buf_size ( const DistributionPlan plan)
inline
Here is the caller graph for this function:

◆ get_sum_counts()

int get_sum_counts ( const DistributionPlan plan)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_arrays() [1/3]

template<>
void load_arrays ( int  n,
int  new_offset,
int  old_offset,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const std::vector< View< double *, CLayout, HostType >> &  array 
)
inline
Here is the call graph for this function:

◆ load_arrays() [2/3]

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 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ load_arrays() [3/3]

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 
)
inline
Here is the call graph for this function:

◆ load_buffer()

template<class... Vs>
void load_buffer ( int  n,
int  new_offset,
int  old_offset,
const View< double **, CLayout, HostType > &  buffer,
const Vs &...  arrays 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ n_doubles_per_vertex() [1/5]

template<>
int n_doubles_per_vertex ( const std::vector< View< double *, CLayout, HostType >> &  array)
inline

◆ n_doubles_per_vertex() [2/5]

template<typename T >
int n_doubles_per_vertex ( const T &  array)
inline
Here is the caller graph for this function:

◆ n_doubles_per_vertex() [3/5]

template<>
int n_doubles_per_vertex ( const VGridDistribution< HostType > &  array)
inline
Here is the call graph for this function:

◆ n_doubles_per_vertex() [4/5]

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

◆ n_doubles_per_vertex() [5/5]

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

◆ pair()

int pair ( int  np,
int  p,
int  k 
)
inline
Here is the caller graph for this function:

◆ resize_n_vertices() [1/5]

template<typename T >
void resize_n_vertices ( int  nnodes,
T &  array 
)
inline
Here is the caller graph for this function:

◆ resize_n_vertices() [2/5]

template<typename T , typename... TRest>
void resize_n_vertices ( int  nnodes,
T &  array,
TRest &...  args 
)
inline
Here is the call graph for this function:

◆ resize_n_vertices() [3/5]

template<>
void resize_n_vertices ( int  nnodes,
VGridDistribution< HostType > &  array 
)
inline
Here is the call graph for this function:

◆ resize_n_vertices() [4/5]

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

◆ resize_n_vertices() [5/5]

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

◆ total_n_doubles_per_vertex() [1/2]

template<class V >
int total_n_doubles_per_vertex ( const V &  first)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ total_n_doubles_per_vertex() [2/2]

template<class V , class... TRest>
int total_n_doubles_per_vertex ( const V &  first,
const TRest &...  args 
)
inline
Here is the call graph for this function:

◆ transfer_data()

template<class... Vs>
VertexBuffer<HostType> transfer_data ( const DistributionPlan send_plan,
const DistributionPlan recv_plan,
const MyMPI mpi,
bool  async,
const Vs &...  arrays 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ unload_arrays() [1/3]

template<>
void unload_arrays ( int  n,
int  vert_offset,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const std::vector< View< double *, CLayout, HostType >> &  array 
)
inline
Here is the call graph for this function:

◆ unload_arrays() [2/3]

template<class V >
void unload_arrays ( int  n,
int  vert_offset,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const V &  array 
)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ unload_arrays() [3/3]

template<class V , class... TRest>
void unload_arrays ( int  n,
int  vert_offset,
const View< double **, CLayout, HostType > &  buffer,
int &  arr_offset,
const V &  first,
const TRest &...  args 
)
inline
Here is the call graph for this function:

◆ vertex_access() [1/4]

template<typename T >
KOKKOS_INLINE_FUNCTION double& vertex_access ( const T &  array,
int  i,
int  ip 
)
Here is the caller graph for this function:

◆ vertex_access() [2/4]

template<>
KOKKOS_INLINE_FUNCTION double& vertex_access ( const VGridDistribution< HostType > &  array,
int  i,
int  ip 
)
Here is the call graph for this function:

◆ vertex_access() [3/4]

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

◆ vertex_access() [4/4]

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