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

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>

Inheritance diagram for wxm::dfem::sync::UniqueVariablePatchSynchronizer:
wxm::sync::patch_synchronizer_t

Detailed Description

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.
 

Constructor & Destructor Documentation

◆ UniqueVariablePatchSynchronizer()

wxm::dfem::sync::UniqueVariablePatchSynchronizer::UniqueVariablePatchSynchronizer ( const WmUnstructuredPatch patch,
const int  tag_seed 
)

Constructor.

Parameters
domainDomain object

◆ ~UniqueVariablePatchSynchronizer()

virtual wxm::dfem::sync::UniqueVariablePatchSynchronizer::~UniqueVariablePatchSynchronizer ( )
virtual

Destructor.

Member Function Documentation

◆ add_component() [1/2]

void wxm::dfem::sync::UniqueVariablePatchSynchronizer::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::UniqueVariablePatchSynchronizer::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

This is a base call - we need to move away from dfem for the synchronizer class

Parameters
variableVariable to sync
component_indexComponent of interest

Implements wxm::sync::patch_synchronizer_t.

◆ finalize()

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

Finalizes the synchronization.

◆ sync()

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

Blocking sync call.

Implements wxm::sync::patch_synchronizer_t.

◆ sync_nb()

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

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

Implements wxm::sync::patch_synchronizer_t.

◆ sync_nb_wait()

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

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

Implements wxm::sync::patch_synchronizer_t.

Member Data Documentation

◆ _finalized

bool wxm::dfem::sync::UniqueVariablePatchSynchronizer::_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: