14#include "arcane/materials/internal/MeshMaterialSynchronizer.h"
16#include "arcane/VariableTypes.h"
17#include "arcane/IParallelMng.h"
18#include "arcane/ItemPrinter.h"
19#include "arcane/IMesh.h"
21#include "arcane/materials/CellToAllEnvCellConverter.h"
22#include "arcane/materials/MatItemEnumerator.h"
23#include "arcane/materials/MeshMaterialModifier.h"
25#include "arcane/core/ItemGenericInfoListView.h"
35MeshMaterialSynchronizer::
36MeshMaterialSynchronizer(IMeshMaterialMng* material_mng)
37: TraceAccessor(material_mng->traceMng())
38, m_material_mng(material_mng)
40 if (Convert::Type<Int32>::tryParseFromEnvironment(
"ARCANE_ACC_MAT_SYNCHRONIZER",
true)) {
41 m_synchronizer =
new AcceleratorMeshMaterialSynchronizerImpl(material_mng);
42 info() <<
"using ACC material synchronizer";
45 m_synchronizer =
new LegacyMeshMaterialSynchronizerImpl(material_mng);
46 info() <<
"using DEFAULT material synchronizer";
53MeshMaterialSynchronizer::
54~MeshMaterialSynchronizer()
56 delete m_synchronizer;
62bool MeshMaterialSynchronizer::
63synchronizeMaterialsInCells()
65 return m_synchronizer->synchronizeMaterialsInCells();
75void MeshMaterialSynchronizer::
89 IMesh* mesh = m_material_mng->mesh();
92 m_material_mng->checkValid();
93 info(4) <<
"CheckMaterialsInCells";
95 _checkComponents(indexes,m_material_mng->materialsAsComponents(),
max_print);
96 _checkComponents(indexes,m_material_mng->environmentsAsComponents(),
max_print);
102void MeshMaterialSynchronizer::
107 IMesh* mesh = m_material_mng->mesh();
120 indexes[
cc.globalCell()] = i;
123 indexes.synchronize();
134 error() <<
"Bad component synchronisation for i=" << i
135 <<
" name=" <<
c->name()
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
virtual CellGroup allCells()=0
Groupe de toutes les mailles.
virtual IParallelMng * parallelMng()=0
Gestionnaire de parallèlisme.
ItemUniqueId uniqueId() const
Identifiant unique sur tous les domaines.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Maille arcane avec info matériaux et milieux.
Conversion de 'Cell' en 'AllEnvCell'.
Représente un composant d'une maille multi-matériau.
Interface d'un composant (matériau ou milieu) d'un maillage.
Paramètres nécessaires à la construction d'une variable.
Active toujours les traces dans les parties Arcane concernant les matériaux.