PhyStar  v0.0.0 thu24
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
gsmpi::CartFieldGhostComm< T, N_dim > Struct Template Reference

#include <cartfieldghostcomm.hpp>

Public Member Functions

 CartFieldGhostComm ()
 Construct a new Sender object. More...
 
 CartFieldGhostComm (GSMPICart< N_dim > &comm)
 
auto & Init (GSMPICart< N_dim > &comm)
 
auto & AllocateBuffer (std::vector< int > size, std::vector< std::vector< int >> ghost_size)
 allocate the buffer More...
 
auto SendRecv (T data[], const std::vector< int > &totalsize, const std::vector< int > &grid_flag, const std::vector< std::vector< int >> &ghost_size, MPI_Datatype datatype, double alpha=1.0, double beta=0.0)
 Send and receive the fluid data for the ghost mesh. More...
 
auto SendRecv (Array< T, N_dim > &data, const std::vector< int > &grid_flag, const std::vector< std::vector< int >> &ghost_size, MPI_Datatype datatype, double alpha=1.0, double beta=0.0)
 Send and receive the fluid data for the ghost mesh. More...
 
auto SendRecvAlongX (T data[], const std::vector< int > &totalsize, const std::vector< int > &grid_flag, const std::vector< std::vector< int >> &ghost_size, MPI_Datatype datatype, double alpha=1.0, double beta=0.0)
 
auto SendRecvAlongY (T data[], const std::vector< int > &totalsize, const std::vector< int > &grid_flag, const std::vector< std::vector< int >> &ghost_size, MPI_Datatype datatype, double alpha=1.0, double beta=0.0)
 
auto SendRecvAlongZ (T data[], const std::vector< int > &totalsize, const std::vector< int > &grid_flag, const std::vector< std::vector< int >> &ghost_size, MPI_Datatype datatype, double alpha=1.0, double beta=0.0)
 

Public Attributes

MPI_Comm _comm
 
GSMPICart< N_dim > * ptr_cartcomm
 
Array1< T > buffer
 
Array1< T > recv_buffer
 
int count = 0
 
Array1i nbrs
 
int nbrs_num
 

Constructor & Destructor Documentation

◆ CartFieldGhostComm() [1/2]

template<typename T , int N_dim>
gsmpi::CartFieldGhostComm< T, N_dim >::CartFieldGhostComm ( )
inline

Construct a new Sender object.

◆ CartFieldGhostComm() [2/2]

template<typename T , int N_dim>
gsmpi::CartFieldGhostComm< T, N_dim >::CartFieldGhostComm ( GSMPICart< N_dim > &  comm)
inline

Member Function Documentation

◆ AllocateBuffer()

template<typename T , int N_dim>
auto& gsmpi::CartFieldGhostComm< T, N_dim >::AllocateBuffer ( std::vector< int >  size,
std::vector< std::vector< int >>  ghost_size 
)
inline

allocate the buffer

Returns
auto&

References quadpack::max().

Here is the call graph for this function:

◆ Init()

template<typename T , int N_dim>
auto& gsmpi::CartFieldGhostComm< T, N_dim >::Init ( GSMPICart< N_dim > &  comm)
inline

References gsmpi::GSMPI::GetComm(), gsmpi::GSMPI::GetNumofNbrs(), and gsmpi::GSMPI::PtrNbrsList().

Here is the call graph for this function:

◆ SendRecv() [1/2]

template<typename T , int N_dim>
auto gsmpi::CartFieldGhostComm< T, N_dim >::SendRecv ( Array< T, N_dim > &  data,
const std::vector< int > &  grid_flag,
const std::vector< std::vector< int >> &  ghost_size,
MPI_Datatype  datatype,
double  alpha = 1.0,
double  beta = 0.0 
)
inline

Send and receive the fluid data for the ghost mesh.

Parameters
datacontaining the ghost cell part
ghost_size
datatype
Returns

◆ SendRecv() [2/2]

template<typename T , int N_dim>
auto gsmpi::CartFieldGhostComm< T, N_dim >::SendRecv ( data[],
const std::vector< int > &  totalsize,
const std::vector< int > &  grid_flag,
const std::vector< std::vector< int >> &  ghost_size,
MPI_Datatype  datatype,
double  alpha = 1.0,
double  beta = 0.0 
)
inline

Send and receive the fluid data for the ghost mesh.

Parameters
datacontaining the ghost part
totalsizecontaing the ghost
ghost_size
datatype
Returns
none

◆ SendRecvAlongX()

template<typename T , int N_dim>
auto gsmpi::CartFieldGhostComm< T, N_dim >::SendRecvAlongX ( data[],
const std::vector< int > &  totalsize,
const std::vector< int > &  grid_flag,
const std::vector< std::vector< int >> &  ghost_size,
MPI_Datatype  datatype,
double  alpha = 1.0,
double  beta = 0.0 
)
inline

References gsmpi::GSMPICart< N_dim, IsColMaj >::RefNbrs().

Here is the call graph for this function:

◆ SendRecvAlongY()

template<typename T , int N_dim>
auto gsmpi::CartFieldGhostComm< T, N_dim >::SendRecvAlongY ( data[],
const std::vector< int > &  totalsize,
const std::vector< int > &  grid_flag,
const std::vector< std::vector< int >> &  ghost_size,
MPI_Datatype  datatype,
double  alpha = 1.0,
double  beta = 0.0 
)
inline

References gsmpi::GSMPICart< N_dim, IsColMaj >::RefNbrs().

Here is the call graph for this function:

◆ SendRecvAlongZ()

template<typename T , int N_dim>
auto gsmpi::CartFieldGhostComm< T, N_dim >::SendRecvAlongZ ( data[],
const std::vector< int > &  totalsize,
const std::vector< int > &  grid_flag,
const std::vector< std::vector< int >> &  ghost_size,
MPI_Datatype  datatype,
double  alpha = 1.0,
double  beta = 0.0 
)
inline

References gsmpi::GSMPICart< N_dim, IsColMaj >::RefNbrs().

Here is the call graph for this function:

Member Data Documentation

◆ _comm

template<typename T , int N_dim>
MPI_Comm gsmpi::CartFieldGhostComm< T, N_dim >::_comm

◆ buffer

template<typename T , int N_dim>
Array1<T> gsmpi::CartFieldGhostComm< T, N_dim >::buffer

◆ count

template<typename T , int N_dim>
int gsmpi::CartFieldGhostComm< T, N_dim >::count = 0

◆ nbrs

template<typename T , int N_dim>
Array1i gsmpi::CartFieldGhostComm< T, N_dim >::nbrs

◆ nbrs_num

template<typename T , int N_dim>
int gsmpi::CartFieldGhostComm< T, N_dim >::nbrs_num

◆ ptr_cartcomm

template<typename T , int N_dim>
GSMPICart<N_dim>* gsmpi::CartFieldGhostComm< T, N_dim >::ptr_cartcomm

◆ recv_buffer

template<typename T , int N_dim>
Array1<T> gsmpi::CartFieldGhostComm< T, N_dim >::recv_buffer

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