WARPXM v1.10.0
Loading...
Searching...
No Matches
unique_variable_synchronizer.h
Go to the documentation of this file.
1#pragma once
2
3#include "sync/synchronizer.h"
5
6namespace wxm
7{
8namespace dfem
9{
10namespace sync
11{
12
22{
23public:
28 UniqueVariablePatchSynchronizer(const WmUnstructuredPatch& patch, const int tag_seed);
29
32
44 const int component_index)
45 {
48 component_index);
49 }
50
54 void sync();
55
60 void sync_nb();
61
67
68protected:
78 const int component_index);
79
83 void finalize();
84
87};
88
100{
101public:
107
110
120 const int component_index)
121 {
123 dynamic_cast<wxm::dfem::variable::UniqueDistributedVariable&>(variable),
124 component_index);
125 }
126
130 void sync();
131
136 void sync_nb();
137
143
144protected:
154 const int component_index);
155
159 void finalize();
160
163};
164
165} // namespace sync
166} // namespace dfem
167} // namespace wxm
Definition: wmdomain.h:35
Definition: wmunstructuredpatch.h:22
Class for Unique Variable Patch Synchronizer This is basically empty because this is not synchronized...
Definition: unique_variable_synchronizer.h:22
void sync_nb()
Non-blocking sync call Initiates the recv buffer and sends remote data out.
bool _finalized
Is the class finalized - if not then I can't add new variables.
Definition: unique_variable_synchronizer.h:86
void sync_nb_wait()
Blocking sync wait call Transmits local data, and waits until remote recv is complete.
void add_component(wxm::dfem::variable::UniqueDistributedVariable &variable, const int component_index)
Add a component to the synchronization.
UniqueVariablePatchSynchronizer(const WmUnstructuredPatch &patch, const int tag_seed)
Constructor.
void add_component(wxm::variable::distributed_variable_t &variable, const int component_index)
Add a component to the synchronization.
Definition: unique_variable_synchronizer.h:43
void finalize()
Finalizes the synchronization.
Class for Unique Variable Rank Synchronizer This is basically empty because this is not synchronized,...
Definition: unique_variable_synchronizer.h:100
void add_component(wxm::dfem::variable::UniqueDistributedVariable &variable, const int component_index)
Add a component to the synchronization.
void add_component(wxm::variable::distributed_variable_t &variable, const int component_index)
Add a component to the synchronization.
Definition: unique_variable_synchronizer.h:119
void sync_nb()
Non-blocking sync call Initiates the recv buffer and sends remote data out.
UniqueVariableRankSynchronizer(const WmDomain &domain)
Constructor.
bool _finalized
Is the class finalized - if not then I can't add new variables.
Definition: unique_variable_synchronizer.h:162
void sync_nb_wait()
Blocking sync wait call Transmits local data, and waits until remote recv is complete.
void finalize()
Finalizes the syncrhonization.
Class for Unique Distributed Variable.
Definition: unique_distributed_variable.h:106
Definition: synchronizer.h:15
Definition: synchronizer.h:68
Defines an interface for variables that exits over distributed memory.
Definition: distributed_variable.h:28
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8