Material variable synchronizer. More...
#include <arcane/materials/internal/MeshMaterialVariableSynchronizer.h>
Public Member Functions | |
| MeshMaterialVariableSynchronizer (IMeshMaterialMng *material_mng, IVariableSynchronizer *var_syncer, MatVarSpace mvs) | |
| IVariableSynchronizer * | variableSynchronizer () override |
| Associated classical variable synchronizer. | |
| ConstArrayView< MatVarIndex > | sharedItems (Int32 index) override |
| List of shared MatVarIndex for index rank index in the variableSynchronizer::communicatingRanks() array;. | |
| ConstArrayView< MatVarIndex > | ghostItems (Int32 index) override |
| List of ghost MatVarIndex for index rank index in the variableSynchronizer::communicatingRanks() array;. | |
| void | recompute () override |
| Recalculates synchronization information. | |
| void | checkRecompute () override |
| Recalculates synchronization information if necessary. | |
| Ref< IMeshMaterialSynchronizeBuffer > | commonBuffer () override |
| Common buffer for messages. | |
| eMemoryRessource | bufferMemoryRessource () const override |
| Memory resource to use for communication buffers. | |
| void | _fillCellsAccelerator (Array< MatVarIndex > &items, AllEnvCellVectorView view, RunQueue &queue) |
| Fills items with the list of all MatVarIndex from the cells of view. | |
| Public Member Functions inherited from Arcane::TraceAccessor | |
| TraceAccessor (ITraceMng *m) | |
| Constructs an accessor via the trace manager m. | |
| TraceAccessor (const TraceAccessor &rhs) | |
| Copy constructor. | |
| TraceAccessor & | operator= (const TraceAccessor &rhs) |
| Copy assignment operator. | |
| virtual | ~TraceAccessor () |
| Frees resources. | |
| ITraceMng * | traceMng () const |
| Trace manager. | |
| TraceMessage | info () const |
| Flow for an information message. | |
| TraceMessage | pinfo () const |
| Flow for a parallel information message. | |
| TraceMessage | info (char category) const |
| Flow for an information message of a given category. | |
| TraceMessage | pinfo (char category) const |
| Flow for a parallel information message of a given category. | |
| TraceMessage | info (bool v) const |
| Flow for an information message. | |
| TraceMessage | warning () const |
| Flow for a warning message. | |
| TraceMessage | pwarning () const |
| TraceMessage | error () const |
| Flow for an error message. | |
| TraceMessage | perror () const |
| TraceMessage | log () const |
| Flow for a log message. | |
| TraceMessage | plog () const |
| Flow for a log message. | |
| TraceMessage | logdate () const |
| Flow for a log message preceded by the date. | |
| TraceMessage | fatal () const |
| Flow for a fatal error message. | |
| TraceMessage | pfatal () const |
| Flow for a parallel fatal error message. | |
| TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
| Flow for a debug message. | |
| Trace::eDebugLevel | configDbgLevel () const |
| Debug level of the configuration file. | |
| TraceMessage | info (Int32 verbose_level) const |
| Flow for an information message of a given level. | |
| TraceMessage | linfo () const |
| Flow for an information message with the local information level of this instance. | |
| TraceMessage | linfo (Int32 relative_level) const |
| Flow for an information message with the local information level of this instance. | |
| void | fatalMessage (const StandaloneTraceMessage &o) const |
Private Member Functions | |
| void | _fillCells (Array< MatVarIndex > &items, AllEnvCellVectorView view, RunQueue &queue) |
| Fills items with the list of all MatVarIndex from the cells of view. | |
| void | _fillCellsSequential (Array< MatVarIndex > &items, AllEnvCellVectorView view) |
| Fills items with the list of all MatVarIndex from the cells of view. | |
| void | _initialize () |
Private Attributes | |
| IMeshMaterialMng * | m_material_mng |
| IVariableSynchronizer * | m_variable_synchronizer |
| UniqueArray< UniqueArray< MatVarIndex > > | m_shared_items |
| UniqueArray< UniqueArray< MatVarIndex > > | m_ghost_items |
| Int64 | m_timestamp |
| MatVarSpace | m_var_space |
| Ref< IMeshMaterialSynchronizeBuffer > | m_common_buffer |
| eMemoryRessource | m_buffer_memory_ressource = eMemoryRessource::UnifiedMemory |
| Int32 | m_use_accelerator_mode = -1 |
Additional Inherited Members | |
| Protected Member Functions inherited from Arcane::TraceAccessor | |
| void | _setLocalVerboseLevel (Int32 v) |
| Int32 | _localVerboseLevel () const |
Material variable synchronizer.
Definition at line 42 of file MeshMaterialVariableSynchronizer.h.
| Arcane::Materials::MeshMaterialVariableSynchronizer::MeshMaterialVariableSynchronizer | ( | IMeshMaterialMng * | material_mng, |
| IVariableSynchronizer * | var_syncer, | ||
| MatVarSpace | mvs ) |
Definition at line 44 of file MeshMaterialVariableSynchronizer.cc.
|
private |
Fills items with the list of all MatVarIndex from the cells of view.
Definition at line 95 of file MeshMaterialVariableSynchronizer.cc.
References _fillCellsAccelerator(), _fillCellsSequential(), Arcane::Array< T >::clear(), Arcane::Accelerator::RunQueue::isAcceleratorPolicy(), and Arcane::Materials::AllEnvCellVectorView::size().
Referenced by recompute().
| void Arcane::Materials::MeshMaterialVariableSynchronizer::_fillCellsAccelerator | ( | Array< MatVarIndex > & | items, |
| AllEnvCellVectorView | view, | ||
| RunQueue & | queue ) |
Fills items with the list of all MatVarIndex from the cells of view.
Definition at line 155 of file MeshMaterialVariableSynchronizer.cc.
References Arcane::Accelerator::RunQueue::allocationOptions(), Arcane::Accelerator::makeCommand(), Arcane::Materials::MaterialAndEnvironment, Arcane::Array< T >::resize(), RUNCOMMAND_LOOP1, Arcane::Materials::AllEnvCellVectorView::size(), and Arcane::Materials::AllEnvCell::subEnvItems().
Referenced by _fillCells().
|
private |
Fills items with the list of all MatVarIndex from the cells of view.
Definition at line 128 of file MeshMaterialVariableSynchronizer.cc.
References Arcane::Array< T >::add(), ENUMERATE_ALLENVCELL, Arcane::Materials::MaterialAndEnvironment, and Arcane::Materials::AllEnvCell::subEnvItems().
Referenced by _fillCells().
|
private |
Definition at line 302 of file MeshMaterialVariableSynchronizer.cc.
|
inlineoverridevirtual |
Memory resource to use for communication buffers.
Implements Arcane::Materials::IMeshMaterialVariableSynchronizer.
Definition at line 60 of file MeshMaterialVariableSynchronizer.h.
|
overridevirtual |
Recalculates synchronization information if necessary.
Implements Arcane::Materials::IMeshMaterialVariableSynchronizer.
Definition at line 227 of file MeshMaterialVariableSynchronizer.cc.
References recompute().
|
inlineoverridevirtual |
Common buffer for messages.
Implements Arcane::Materials::IMeshMaterialVariableSynchronizer.
Definition at line 59 of file MeshMaterialVariableSynchronizer.h.
|
overridevirtual |
List of ghost MatVarIndex for index rank index in the variableSynchronizer::communicatingRanks() array;.
Implements Arcane::Materials::IMeshMaterialVariableSynchronizer.
Definition at line 83 of file MeshMaterialVariableSynchronizer.cc.
|
overridevirtual |
Recalculates synchronization information.
Implements Arcane::Materials::IMeshMaterialVariableSynchronizer.
Definition at line 239 of file MeshMaterialVariableSynchronizer.cc.
References _fillCells(), Arcane::IItemFamily::allItems(), Arcane::Accelerator::RunQueue::allocationOptions(), Arcane::IVariableSynchronizer::communicatingRanks(), Arcane::IVariableSynchronizer::ghostItems(), Arcane::TraceAccessor::info(), Arcane::IParallelMng::isParallel(), Arcane::ItemGroup::itemFamily(), Arcane::IVariableSynchronizer::itemGroup(), Arcane::IVariableSynchronizer::parallelMng(), Arcane::IVariableSynchronizer::sharedItems(), Arcane::AbstractArray< T >::size(), Arcane::ConstArrayView< T >::size(), and Arcane::IItemFamily::view().
Referenced by checkRecompute().
|
overridevirtual |
List of shared MatVarIndex for index rank index in the variableSynchronizer::communicatingRanks() array;.
Implements Arcane::Materials::IMeshMaterialVariableSynchronizer.
Definition at line 74 of file MeshMaterialVariableSynchronizer.cc.
|
overridevirtual |
Associated classical variable synchronizer.
Implements Arcane::Materials::IMeshMaterialVariableSynchronizer.
Definition at line 65 of file MeshMaterialVariableSynchronizer.cc.
|
private |
Definition at line 71 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 70 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 67 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 64 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 66 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 68 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 73 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 69 of file MeshMaterialVariableSynchronizer.h.
|
private |
Definition at line 65 of file MeshMaterialVariableSynchronizer.h.