|
ThunderEgg
1.0.0
|
Scatters between a global Schur compliment vector and a local patch iface vector. More...
#include <PatchIfaceScatter.h>
Public Member Functions | |
| void | setIncomingBufferMapsAndDetermineLocalVectorSize (const InterfaceDomain< D > &iface_domain) |
| Set the incoming buffer maps (incoming_rank_to_local_indexes) and set num_local_patch_ifaces. More... | |
| void | setOutgoingBufferMaps (const InterfaceDomain< D > &iface_domain) |
| Set the outgoing buffer maps (outgoing_rank_to_local_indexes) More... | |
| State | initializeMPIBuffers () const |
| Initialize the mpi buffers. | |
| PatchIfaceScatter (const InterfaceDomain< D > &iface_domain) | |
| Construct a new PatchIfaceScatter object. More... | |
| std::shared_ptr< Vector< D - 1 > > | getNewLocalPatchIfaceVector () const |
| Get a nw local patch iface vector. More... | |
| State | scatterStart (const Vector< D - 1 > &global_vector, Vector< D - 1 > &local_patch_iface_vector) const |
| Start the scatter from the global Schur compliment vector to the local patch iface vector. More... | |
| void | scatterFinish (const State &state, const Vector< D - 1 > &global_vector, Vector< D - 1 > &local_patch_iface_vector) const |
| Finish the scatter from the global Schur compliment vector to the local patch iface vector. More... | |
Public Attributes | |
| std::array< int, D - 1 > | lengths |
| the number of cells in each direction of the interface | |
| int | num_local_patch_ifaces |
| the number of interfaces in the local vector | |
| int | iface_stride |
| the number of interfaces in the local vector | |
| int | num_sends |
| number of MPI sends | |
| std::vector< int > | send_ranks |
| MPI Send ranks. | |
| std::vector< std::vector< int > > | send_local_indexes |
| the local indexes of the local vector to send | |
| int | num_recvs |
| number of MPI recvs | |
| std::vector< int > | recv_ranks |
| MPI recv ranks. | |
| std::vector< std::vector< int > > | recv_local_indexes |
| local indexes of the local vector to receive | |
Scatters between a global Schur compliment vector and a local patch iface vector.
The scatters functions are split with a Start and Finish, this allows for local computation to occur while the communicating
| D | the number of cartesian dimensions on a patch |
|
inlineexplicit |
Construct a new PatchIfaceScatter object.
| iface_domain | the InterfaceDomain |
|
inline |
Get a nw local patch iface vector.
|
inline |
|
inline |
Start the scatter from the global Schur compliment vector to the local patch iface vector.
Interfaces that are local to this processor will be copied to the local_patch_iface_vector at the end of this call
Will throw an exception if any communcation is in progress
| global_vector | the global Schur compliment vector |
| local_patch_iface_vector | the the local patch iface vector |
|
inline |
Set the incoming buffer maps (incoming_rank_to_local_indexes) and set num_local_patch_ifaces.
| iface_domain | the InterfaceDomain |
|
inline |
Set the outgoing buffer maps (outgoing_rank_to_local_indexes)
| iface_domain | the InterfaceDomain |