Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::NullVariableSynchronizer Class Reference

Synchronization of variables in sequential mode. More...

Inheritance diagram for Arcane::NullVariableSynchronizer:
Collaboration diagram for Arcane::NullVariableSynchronizer:

Public Member Functions

 NullVariableSynchronizer (IParallelMng *pm, const ItemGroup &group)
IParallelMngparallelMng () override
 Associated parallel manager.
const ItemGroupitemGroup () override
 Entity group used for synchronization.
void compute () override
 Recalculates the synchronization information.
void changeLocalIds (Int32ConstArrayView old_to_new_ids) override
 Called when the local IDs of the entities are modified.
void synchronize (IVariable *var) override
 Synchronizes the variable var in blocking mode.
void synchronize (IVariable *var, Int32ConstArrayView local_ids) override
 Synchronizes the variable var on the entities local_ids in blocking mode.
void synchronize (VariableCollection vars) override
 Synchronizes the variables vars in blocking mode.
void synchronize (VariableCollection vars, Int32ConstArrayView local_ids) override
 Synchronizes the variables vars in blocking mode.
Int32ConstArrayView communicatingRanks () override
 Ranks of subdomains with which communication occurs.
Int32ConstArrayView sharedItems (Int32 index) override
 List of local IDs of entities shared with a subdomain.
Int32ConstArrayView ghostItems (Int32 index) override
 List of local IDs of ghost entities with a subdomain.
void synchronizeData (IData *data) override
 Synchronizes the data data.
EventObservable< const VariableSynchronizerEventArgs & > & onSynchronized () override
 Event sent at the beginning and end of synchronization.

Private Attributes

IParallelMngm_parallel_mng
ItemGroup m_item_group
EventObservable< const VariableSynchronizerEventArgs & > m_on_synchronized

Detailed Description

Synchronization of variables in sequential mode.

Implements IVariableSynchronizer in sequential mode.

This class performs no operations.

Definition at line 37 of file NullVariableSynchronizer.cc.

Constructor & Destructor Documentation

◆ NullVariableSynchronizer()

Arcane::NullVariableSynchronizer::NullVariableSynchronizer ( IParallelMng * pm,
const ItemGroup & group )
inline

Definition at line 42 of file NullVariableSynchronizer.cc.

Member Function Documentation

◆ changeLocalIds()

void Arcane::NullVariableSynchronizer::changeLocalIds ( Int32ConstArrayView old_to_new_ids)
inlineoverridevirtual

Called when the local IDs of the entities are modified.

Implements Arcane::IVariableSynchronizer.

Definition at line 57 of file NullVariableSynchronizer.cc.

◆ communicatingRanks()

Int32ConstArrayView Arcane::NullVariableSynchronizer::communicatingRanks ( )
inlineoverridevirtual

Ranks of subdomains with which communication occurs.

Implements Arcane::IVariableSynchronizer.

Definition at line 87 of file NullVariableSynchronizer.cc.

◆ compute()

void Arcane::NullVariableSynchronizer::compute ( )
inlineoverridevirtual

Recalculates the synchronization information.

This operation is collective.

This function must be called if the entities in itemGroup() change owner or if the group itself evolves. TODO: call this function automatically if needed.

Implements Arcane::IVariableSynchronizer.

Definition at line 56 of file NullVariableSynchronizer.cc.

◆ ghostItems()

Int32ConstArrayView Arcane::NullVariableSynchronizer::ghostItems ( Int32 index)
inlineoverridevirtual

List of local IDs of ghost entities with a subdomain.

The rank of the subdomain is that of communicatingRanks()[index].

Implements Arcane::IVariableSynchronizer.

Definition at line 98 of file NullVariableSynchronizer.cc.

◆ itemGroup()

const ItemGroup & Arcane::NullVariableSynchronizer::itemGroup ( )
inlineoverridevirtual

Entity group used for synchronization.

The current implementation only supports the group of all entities of a family.

Implements Arcane::IVariableSynchronizer.

Definition at line 55 of file NullVariableSynchronizer.cc.

◆ onSynchronized()

EventObservable< const VariableSynchronizerEventArgs & > & Arcane::NullVariableSynchronizer::onSynchronized ( )
inlineoverridevirtual

Event sent at the beginning and end of synchronization.

This event is sent during calls to the methods synchronize(IVariable* var) and synchronize(VariableCollection vars). If you wish to be notified of synchronizations for all instances of IVariableSynchronizer, you must use IVariableMng::synchronizerMng().

Implements Arcane::IVariableSynchronizer.

Definition at line 108 of file NullVariableSynchronizer.cc.

◆ parallelMng()

IParallelMng * Arcane::NullVariableSynchronizer::parallelMng ( )
inlineoverridevirtual

Associated parallel manager.

Implements Arcane::IVariableSynchronizer.

Definition at line 50 of file NullVariableSynchronizer.cc.

◆ sharedItems()

Int32ConstArrayView Arcane::NullVariableSynchronizer::sharedItems ( Int32 index)
inlineoverridevirtual

List of local IDs of entities shared with a subdomain.

The rank of the subdomain is that of communicatingRanks()[index].

Implements Arcane::IVariableSynchronizer.

Definition at line 92 of file NullVariableSynchronizer.cc.

◆ synchronize() [1/4]

void Arcane::NullVariableSynchronizer::synchronize ( IVariable * var)
inlineoverridevirtual

Synchronizes the variable var in blocking mode.

Implements Arcane::IVariableSynchronizer.

Definition at line 61 of file NullVariableSynchronizer.cc.

Referenced by synchronize(), and synchronize().

Here is the caller graph for this function:

◆ synchronize() [2/4]

void Arcane::NullVariableSynchronizer::synchronize ( IVariable * var,
Int32ConstArrayView local_ids )
inlineoverridevirtual

Synchronizes the variable var on the entities local_ids in blocking mode.

Only the entities listed in local_ids will be synchronized. Note: an entity present in this list on one subdomain must be present in this list for any other subdomain that owns this entity.

Reimplemented from Arcane::IVariableSynchronizer.

Definition at line 69 of file NullVariableSynchronizer.cc.

References synchronize().

Here is the call graph for this function:

◆ synchronize() [3/4]

void Arcane::NullVariableSynchronizer::synchronize ( VariableCollection vars)
inlineoverridevirtual

Synchronizes the variables vars in blocking mode.

All variables must belong to the same family and this entity group.

Implements Arcane::IVariableSynchronizer.

Definition at line 74 of file NullVariableSynchronizer.cc.

◆ synchronize() [4/4]

void Arcane::NullVariableSynchronizer::synchronize ( VariableCollection vars,
Int32ConstArrayView local_ids )
inlineoverridevirtual

Synchronizes the variables vars in blocking mode.

All variables must belong to the same family and this entity group.

Only the entities listed in local_ids will be synchronized. Note: an entity present in this list on one subdomain must be present in this list for any other subdomain that owns this entity.

Reimplemented from Arcane::IVariableSynchronizer.

Definition at line 82 of file NullVariableSynchronizer.cc.

References synchronize().

Here is the call graph for this function:

◆ synchronizeData()

void Arcane::NullVariableSynchronizer::synchronizeData ( IData * data)
inlineoverridevirtual

Synchronizes the data data.

The data data must be associated with a variable for which it is valid to call synchronize(). This method is internal to Arcane.

Implements Arcane::IVariableSynchronizer.

Definition at line 103 of file NullVariableSynchronizer.cc.

Member Data Documentation

◆ m_item_group

ItemGroup Arcane::NullVariableSynchronizer::m_item_group
private

Definition at line 116 of file NullVariableSynchronizer.cc.

◆ m_on_synchronized

EventObservable<const VariableSynchronizerEventArgs&> Arcane::NullVariableSynchronizer::m_on_synchronized
private

Definition at line 117 of file NullVariableSynchronizer.cc.

◆ m_parallel_mng

IParallelMng* Arcane::NullVariableSynchronizer::m_parallel_mng
private

Definition at line 115 of file NullVariableSynchronizer.cc.


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