WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::sync::UniqueVariableRankSynchronizer Class Reference

Class for Unique Variable Rank 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>

Inheritance diagram for wxm::dfem::sync::UniqueVariableRankSynchronizer:
wxm::sync::rank_synchronizer_t

Detailed Description

Class for Unique Variable Rank 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.

I'm not really sure if the rank synchronizer is actually used, as I think its the patch synchronizer that does the actual synchronization, but not sure. However, WARPXM requires a rank synchronizer though in the wxm::temperal_solver anyway.

Public Member Functions

 UniqueVariableRankSynchronizer (const WmDomain &domain)
 Constructor.
 
 ~UniqueVariableRankSynchronizer ()
 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::rank_synchronizer_t
 rank_synchronizer_t (const WmDomain &domain)
 Constructor.
 
virtual ~rank_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 syncrhonization.
 

Protected Attributes

bool _finalized
 Is the class finalized - if not then I can't add new variables.
 
- Protected Attributes inherited from wxm::sync::rank_synchronizer_t
const WmDomain_domain
 Domain object.
 

Constructor & Destructor Documentation

◆ UniqueVariableRankSynchronizer()

wxm::dfem::sync::UniqueVariableRankSynchronizer::UniqueVariableRankSynchronizer ( const WmDomain domain)

Constructor.

Parameters
domainDomain object

◆ ~UniqueVariableRankSynchronizer()

wxm::dfem::sync::UniqueVariableRankSynchronizer::~UniqueVariableRankSynchronizer ( )

Destructor.

Member Function Documentation

◆ add_component() [1/2]

void wxm::dfem::sync::UniqueVariableRankSynchronizer::add_component ( wxm::dfem::variable::UniqueDistributedVariable variable,
const int  component_index 
)
protected

Add a component to the synchronization.

Cannot add new variables after sync has been called

Parameters
variableVariable to sync
component_indexComponent of interest

◆ add_component() [2/2]

void wxm::dfem::sync::UniqueVariableRankSynchronizer::add_component ( wxm::variable::distributed_variable_t variable,
const int  component_index 
)
inlinevirtual

Add a component to the synchronization.

Cannot add new variables after sync has been called

Parameters
variableVariable to sync
component_indexComponent of interest

Implements wxm::sync::rank_synchronizer_t.

◆ finalize()

void wxm::dfem::sync::UniqueVariableRankSynchronizer::finalize ( )
protected

Finalizes the syncrhonization.

◆ sync()

void wxm::dfem::sync::UniqueVariableRankSynchronizer::sync ( )
virtual

Blocking sync call.

Implements wxm::sync::rank_synchronizer_t.

◆ sync_nb()

void wxm::dfem::sync::UniqueVariableRankSynchronizer::sync_nb ( )
virtual

Non-blocking sync call Initiates the recv buffer and sends remote data out.

Implements wxm::sync::rank_synchronizer_t.

◆ sync_nb_wait()

void wxm::dfem::sync::UniqueVariableRankSynchronizer::sync_nb_wait ( )
virtual

Blocking sync wait call Transmits local data, and waits until remote recv is complete.

Implements wxm::sync::rank_synchronizer_t.

Member Data Documentation

◆ _finalized

bool wxm::dfem::sync::UniqueVariableRankSynchronizer::_finalized
protected

Is the class finalized - if not then I can't add new variables.


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