WARPXM v1.10.0
|
Class for Unique Variable Patch Synchronizer This is basically empty because this is not synchronized, instead some MPI barrier is used such as allreduce to get the value on all processes. More...
#include <unique_variable_synchronizer.h>
Class for Unique Variable Patch Synchronizer This is basically empty because this is not synchronized, instead some MPI barrier is used such as allreduce to get the value on all processes.
WARPXM requires a patch synchronizer though in the wxm::temperal_solver.
Public Member Functions | |
UniqueVariablePatchSynchronizer (const WmUnstructuredPatch &patch, const int tag_seed) | |
Constructor. | |
virtual | ~UniqueVariablePatchSynchronizer () |
Destructor. | |
void | add_component (wxm::variable::distributed_variable_t &variable, const int component_index) |
Add a component to the synchronization. | |
void | sync () |
Blocking sync call. | |
void | sync_nb () |
Non-blocking sync call Initiates the recv buffer and sends remote data out. | |
void | sync_nb_wait () |
Blocking sync wait call Transmits local data, and waits until remote recv is complete. | |
Public Member Functions inherited from wxm::sync::patch_synchronizer_t | |
patch_synchronizer_t (const WmUnstructuredPatch &patch, const int tag_seed) | |
Constructor. | |
virtual | ~patch_synchronizer_t () |
Destructor. | |
virtual void | add_component (wxm::variable::distributed_variable_t &variable, const int component_index)=0 |
Add a component to the synchronization. | |
virtual void | sync ()=0 |
Blocking sync call. | |
virtual void | sync_nb ()=0 |
Non-blocking sync call Initiates the recv buffer and sends remote data out. | |
virtual void | sync_nb_wait ()=0 |
Blocking sync wait call Transmits local data, and waits until remote recv is complete. | |
Protected Member Functions | |
void | add_component (wxm::dfem::variable::UniqueDistributedVariable &variable, const int component_index) |
Add a component to the synchronization. | |
void | finalize () |
Finalizes the synchronization. | |
Protected Attributes | |
bool | _finalized |
Is the class finalized - if not then I can't add new variables. | |
Protected Attributes inherited from wxm::sync::patch_synchronizer_t | |
const WmUnstructuredPatch & | _patch |
Domain object. | |
int | _tag_seed |
Tag seed - used to generate shared tags. | |
wxm::dfem::sync::UniqueVariablePatchSynchronizer::UniqueVariablePatchSynchronizer | ( | const WmUnstructuredPatch & | patch, |
const int | tag_seed | ||
) |
Constructor.
domain | Domain object |
|
virtual |
Destructor.
|
protected |
Add a component to the synchronization.
Cannot add new variables after sync has been called
variable | Variable to sync |
component_index | Component of interest |
|
inlinevirtual |
Add a component to the synchronization.
Cannot add new variables after sync has been called
This is a base call - we need to move away from dfem for the synchronizer class
variable | Variable to sync |
component_index | Component of interest |
Implements wxm::sync::patch_synchronizer_t.
|
protected |
Finalizes the synchronization.
|
virtual |
Blocking sync call.
Implements wxm::sync::patch_synchronizer_t.
|
virtual |
Non-blocking sync call Initiates the recv buffer and sends remote data out.
Implements wxm::sync::patch_synchronizer_t.
|
virtual |
Blocking sync wait call Transmits local data, and waits until remote recv is complete.
Implements wxm::sync::patch_synchronizer_t.
|
protected |
Is the class finalized - if not then I can't add new variables.