14#include "arcane/materials/internal/LegacyMeshMaterialSynchronizerImpl.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"
35LegacyMeshMaterialSynchronizerImpl::
36LegacyMeshMaterialSynchronizerImpl(IMeshMaterialMng* material_mng)
37: TraceAccessor(material_mng->traceMng())
38, m_material_mng(material_mng)
45LegacyMeshMaterialSynchronizerImpl::
46~LegacyMeshMaterialSynchronizerImpl()
53inline void LegacyMeshMaterialSynchronizerImpl::
54_setBit(ByteArrayView bytes, Integer position)
58 bytes[offset] |= (
Byte)(1 << bit);
61inline bool LegacyMeshMaterialSynchronizerImpl::
62_hasBit(ByteConstArrayView bytes, Integer position)
66 return bytes[offset] & (1 << bit);
72void LegacyMeshMaterialSynchronizerImpl::
73_fillPresence(AllEnvCell all_env_cell, ByteArrayView presence)
77 MatCell mc = *imatcell;
78 Integer mat_index = mc.materialId();
79 _setBit(presence, mat_index);
87bool LegacyMeshMaterialSynchronizerImpl::
88synchronizeMaterialsInCells()
105 IMesh* mesh = m_material_mng->mesh();
110 Integer
nb_mat = materials.size();
112 Integer dim2_size =
nb_mat / 8;
116 info(4) <<
"Resize presence variable nb_mat=" <<
nb_mat <<
" dim2=" << dim2_size;
155 for (Integer i = 0; i <
nb_mat; ++i) {
virtual CellGroup ownCells()=0
Groupe de toutes les mailles propres au domaine.
virtual CellGroup allCells()=0
Groupe de toutes les mailles.
virtual IParallelMng * parallelMng()=0
Gestionnaire de parallèlisme.
constexpr Int32 localId() const
Identifiant local de l'entité dans le sous-domaine du processeur.
bool isOwn() const
true si l'entité est appartient au sous-domaine
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Maille arcane avec info matériaux et milieux.
Conversion de 'Cell' en 'AllEnvCell'.
Objet permettant de modifier les matériaux ou les milieux.
void addCells(IMeshMaterial *mat, SmallSpan< const Int32 > ids)
Ajoute les mailles d'indices locaux ids au matériau mat.
void removeCells(IMeshMaterial *mat, SmallSpan< const Int32 > ids)
Supprime les mailles d'indices locaux ids au matériau mat.
Paramètres nécessaires à la construction d'une variable.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Vecteur 1D de données avec sémantique par valeur (style STL).
Active toujours les traces dans les parties Arcane concernant les matériaux.
unsigned char Byte
Type d'un octet.
Int32 Integer
Type représentant un entier.