Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
MeshMaterialSynchronizer.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* MeshMaterialSynchronizer.h (C) 2000-2025 */
9/* */
10/* Synchronization of the list of materials/media of entities. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_MESHMATERIALSYNCHRONIZER_H
13#define ARCANE_MATERIALS_INTERNAL_MESHMATERIALSYNCHRONIZER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/ArrayView.h"
19
21
23#include "arcane/materials/MatItem.h"
24#include "arcane/utils/ValueConvert.h"
25
26#include "arcane/materials/internal/IMeshMaterialSynchronizerImpl.h"
27#include "arcane/materials/internal/AcceleratorMeshMaterialSynchronizerImpl.h"
28#include "arcane/materials/internal/LegacyMeshMaterialSynchronizerImpl.h"
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33namespace Arcane::Materials
34{
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
52class MeshMaterialSynchronizer
53: public TraceAccessor
54{
55 public:
56
57 explicit MeshMaterialSynchronizer(IMeshMaterialMng* material_mng);
58 ~MeshMaterialSynchronizer();
59
60 public:
61
71 void checkMaterialsInCells(Integer max_print);
72
73 private:
74
75 IMeshMaterialSynchronizerImpl* m_synchronizer;
76 IMeshMaterialMng* m_material_mng;
77
78 void _checkComponents(VariableCellInt32& indexes,
80 Integer max_print);
81 void _checkComponentsInGhostCells(VariableCellInt64& hashes,
82 Integer max_print);
83};
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
88} // End namespace Arcane::Materials
89
90/*---------------------------------------------------------------------------*/
91/*---------------------------------------------------------------------------*/
92
93#endif
Constant view of an array of type T.
Interface for the material and environment manager of a mesh.
Strategy for synchronizing the list of materials/media of entities.
void checkMaterialsInCells(Integer max_print)
Checks that material cells are consistent between subdomains. This method is collective.
bool synchronizeMaterialsInCells()
Synchronization of the list of materials/media of entities.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
MeshVariableScalarRefT< Cell, Int64 > VariableCellInt64
Quantity at the cell center of 64-bit integer type.
MeshVariableScalarRefT< Cell, Int32 > VariableCellInt32
Quantity at the cell center of 32-bit integer type.
Always enables tracing in Arcane parts concerning materials.
Int32 Integer
Type representing an integer.