schwz  Generated automatically from develop
Public Attributes | List of all members
schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct Struct Reference

The communication struct used to store the communication data. More...

#include <communicate.hpp>

Collaboration diagram for schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct:
[legend]

Public Attributes

int num_neighbors_in
 The number of neighbors this subdomain has to receive data from.
 
int num_neighbors_out
 The number of neighbors this subdomain has to send data to.
 
std::shared_ptr< gko::Array< IndexType > > neighbors_in
 The neighbors this subdomain has to receive data from.
 
std::shared_ptr< gko::Array< IndexType > > neighbors_out
 The neighbors this subdomain has to send data to.
 
std::vector< bool > is_local_neighbor
 The bool vector which is true if the neighbors of a subdomain are in one node. More...
 
int local_num_neighbors_in
 The number of neighbors this subdomain has to receive data from.
 
int local_num_neighbors_out
 The number of neighbors this subdomain has to send data to.
 
std::shared_ptr< gko::Array< IndexType > > local_neighbors_in
 The neighbors this subdomain has to receive data from.
 
std::shared_ptr< gko::Array< IndexType > > local_neighbors_out
 The neighbors this subdomain has to send data to.
 
std::shared_ptr< gko::Array< IndexType * > > global_put
 The array containing the number of elements that each subdomain sends from the other. More...
 
std::shared_ptr< gko::Array< IndexType * > > local_put
 The array containing the number of elements that each subdomain sends from the other. More...
 
std::shared_ptr< gko::Array< IndexType * > > global_get
 The array containing the number of elements that each subdomain gets from the other. More...
 
std::shared_ptr< gko::Array< IndexType * > > local_get
 The array containing the number of elements that each subdomain gets from the other. More...
 
std::vector< IndexType > send
 The number of elements being sent to each subdomain.
 
std::vector< IndexType > recv
 The number of elements being sent to each subdomain.
 
std::shared_ptr< gko::Array< IndexType > > window_ids
 The RDMA window ids.
 
std::shared_ptr< gko::Array< IndexType > > windows_from
 The RDMA window ids to receive data from.
 
std::shared_ptr< gko::Array< IndexType > > windows_to
 The RDMA window ids to send data to.
 
std::shared_ptr< gko::Array< MPI_Request > > put_request
 The put request array.
 
std::shared_ptr< gko::Array< MPI_Request > > get_request
 The get request array.
 
std::shared_ptr< gko::matrix::Dense< ValueType > > send_buffer
 The send buffer used for the actual communication for both one-sided and two-sided (always allocated).
 
std::shared_ptr< gko::matrix::Dense< MixedValueType > > mixedt_send_buffer
 The mixed send buffer used for the actual communication for both one-sided and two-sided.
 
std::shared_ptr< gko::matrix::Dense< ValueType > > recv_buffer
 The recv buffer used for the actual communication for both one-sided and two-sided (always allocated).
 
std::shared_ptr< gko::matrix::Dense< MixedValueType > > mixedt_recv_buffer
 The mixed precision recv buffer used for the actual communication for both one-sided and two-sided.
 
std::shared_ptr< gko::Array< IndexType > > get_displacements
 The displacements for the receiving of the buffer.
 
std::shared_ptr< gko::Array< IndexType > > put_displacements
 The displacements for the sending of the buffer.
 
MPI_Win window_recv_buffer
 The RDMA window for the recv buffer.
 
MPI_Win window_send_buffer
 The RDMA window for the send buffer.
 
MPI_Win window_x
 The RDMA window for the solution vector.
 

Detailed Description

template<typename ValueType, typename IndexType, typename MixedValueType>
struct schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct

The communication struct used to store the communication data.

Member Data Documentation

◆ global_get

template<typename ValueType , typename IndexType , typename MixedValueType >
std::shared_ptr<gko::Array<IndexType *> > schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct::global_get

The array containing the number of elements that each subdomain gets from the other.

For example. global_get[p][0] contains the overall number of elements to be received to subdomain p and global_put[p][i] contains the index of the solution vector to be received from subdomain p.

Referenced by schwz::SchwarzBase< ValueType, IndexType, MixedValueType >::initialize(), schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_comm_buffers(), and schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_windows().

◆ global_put

template<typename ValueType , typename IndexType , typename MixedValueType >
std::shared_ptr<gko::Array<IndexType *> > schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct::global_put

The array containing the number of elements that each subdomain sends from the other.

For example. global_put[p][0] contains the overall number of elements to be sent to subdomain p and global_put[p][i] contains the index of the solution vector to be sent to subdomain p.

Referenced by schwz::SchwarzBase< ValueType, IndexType, MixedValueType >::initialize(), schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_comm_buffers(), and schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_windows().

◆ is_local_neighbor

template<typename ValueType , typename IndexType , typename MixedValueType >
std::vector<bool> schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct::is_local_neighbor

◆ local_get

template<typename ValueType , typename IndexType , typename MixedValueType >
std::shared_ptr<gko::Array<IndexType *> > schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct::local_get

The array containing the number of elements that each subdomain gets from the other.

For example. global_get[p][0] contains the overall number of elements to be received to subdomain p and global_put[p][i] contains the index of the solution vector to be received from subdomain p.

Referenced by schwz::SchwarzBase< ValueType, IndexType, MixedValueType >::initialize(), schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_comm_buffers(), and schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_windows().

◆ local_put

template<typename ValueType , typename IndexType , typename MixedValueType >
std::shared_ptr<gko::Array<IndexType *> > schwz::Communicate< ValueType, IndexType, MixedValueType >::comm_struct::local_put

The array containing the number of elements that each subdomain sends from the other.

For example. global_put[p][0] contains the overall number of elements to be sent to subdomain p and global_put[p][i] contains the index of the solution vector to be sent to subdomain p.

Referenced by schwz::SchwarzBase< ValueType, IndexType, MixedValueType >::initialize(), schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_comm_buffers(), and schwz::SolverRAS< ValueType, IndexType, MixedValueType >::setup_windows().


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