Arcane  v3.16.9.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MaterialsCoreGlobal.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* MaterialsCoreGlobal.h (C) 2000-2025 */
9/* */
10/* Déclarations générales des matériaux de Arcane. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_MATERIALSCOREGLOBAL_H
13#define ARCANE_CORE_MATERIALS_MATERIALSCOREGLOBAL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19#include "arccore/collections/ArrayTraits.h"
20
21#include <iosfwd>
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26#define MATERIALS_BEGIN_NAMESPACE \
27 namespace Materials \
28 {
29#define MATERIALS_END_NAMESPACE }
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34namespace Arcane
35{
36class ItemBase;
37}
38namespace Arcane::Materials::matimpl
39{
40using ::Arcane::ItemBase;
42}
43
44namespace Arcane::Materials
45{
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
50class AllCellToAllEnvCellContainer;
52class ComponentItemInternalData;
53class ConstituentItem;
54using ComponentCell = ConstituentItem;
55class ConstituentItemVectorImpl;
56class ConstituentItemLocalIdList;
57class IMeshBlock;
58class IMeshComponent;
59class IMeshMaterial;
62class MatVarIndex;
63class MeshMaterialVariableIndexer;
65class MatCell;
66class EnvCell;
75class ComponentItemInternal;
76class AllEnvCell;
82class MeshComponentPartData;
93{};
95{};
96class IMeshMaterialMngInternal;
99class IMeshMaterialMngInternal;
100class MeshMaterialModifierImpl;
107using ComponentItemSharedInfo = ConstituentItemSharedInfo;
109class MatItemLocalId;
110class EnvItemLocalId;
111using ComponentItemLocalId = ConstituentItemLocalId;
112
113class AllEnvData;
114class MeshMaterialMng;
115class MeshEnvironment;
116class MeshComponentData;
117class EnvCellVector;
118class MatCellVector;
119
120/*---------------------------------------------------------------------------*/
121/*---------------------------------------------------------------------------*/
122
123using ComponentItemInternalPtr = ComponentItemInternal*;
124using IMeshComponentPtr = IMeshComponent*;
125using IMeshMaterialPtr = IMeshMaterial*;
126using IMeshEnvironmentPtr = IMeshEnvironment*;
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131//! Liste de composants multi-matériaux du maillage.
133
134//! Liste de milieux du maillage.
136
137//! Liste de matériaux du maillage.
139
140/*---------------------------------------------------------------------------*/
141/*---------------------------------------------------------------------------*/
142
143//! Liste de ComponentCell issues d'un IMeshComponent.
145
146//! Type de la vue sur un EnvCellVector
148
149//! Type de la vue sur un MatCellVector
151
152//! Type de la vue sur un ComponentCellVector
154
155//! Liste de composants multi-matériaux du maillage.
157
158template <typename DataType> class CellMaterialVariableScalarRef;
159
160template <typename ItemType, typename DataType>
162template <typename ItemType, typename DataType>
164
165/*---------------------------------------------------------------------------*/
166/*---------------------------------------------------------------------------*/
167
169template <typename ConstituentCellType> class CellComponentCellEnumeratorT;
170
171//! Enumérateur sur les mailles matériaux d'une maille.
173
174//! Enumérateur sur les mailles milieux d'une maille.
176
177//! Index d'un MatItem dans une variable.
179
180//! Index d'un EnvItem dans une variable.
182
183/*---------------------------------------------------------------------------*/
184/*---------------------------------------------------------------------------*/
185
186static const Int32 LEVEL_MATERIAL = 1;
187static const Int32 LEVEL_ENVIRONMENT = 2;
188static const Int32 LEVEL_ALLENVIRONMENT = 0;
189
190/*---------------------------------------------------------------------------*/
191/*---------------------------------------------------------------------------*/
192/*!
193 * \brief Espace de définition d'une variable matériau.
194 */
195enum class MatVarSpace
196{
197 //! Variable ayant des valeurs sur les milieux et matériaux
199 //! Variable ayant des valeurs uniquement sur les milieux
201};
202
203/*---------------------------------------------------------------------------*/
204/*---------------------------------------------------------------------------*/
205
206//! Partie d'un composant
207enum class eMatPart
208{
209 Pure = 0,
210 Impure = 1
211};
212
213/*---------------------------------------------------------------------------*/
214/*---------------------------------------------------------------------------*/
215
216} // namespace Arcane::Materials
217
218/*---------------------------------------------------------------------------*/
219/*---------------------------------------------------------------------------*/
220
221namespace Arccore
222{
223ARCCORE_DEFINE_ARRAY_PODTYPE(Arcane::Materials::MatVarIndex);
224ARCCORE_DEFINE_ARRAY_PODTYPE(Arcane::Materials::ConstituentItemIndex);
225} // namespace Arccore
226
227/*---------------------------------------------------------------------------*/
228/*---------------------------------------------------------------------------*/
229
231
232/*---------------------------------------------------------------------------*/
233/*---------------------------------------------------------------------------*/
234
235#endif
#define ARCCORE_DECLARE_REFERENCE_COUNTED_CLASS(class_name)
Macro pour déclarer qu'une classe utilise un compteur de référence.
Déclarations des types utilisés dans Arcane.
Vue constante d'un tableau de type T.
Classe de base pour les entités du maillage.
Table de connectivité des 'Cell' vers leur(s) 'AllEnvCell' destinée à une utilisation sur accélérateu...
Maille arcane avec info matériaux et milieux.
Enumérateur typés sur les mailles composants d'une maille.
Enumérateur sur les constituants d'une maille.
Variable scalaire sur les mailles d'un matériau du maillage.
Vue sur un vecteur sur les entités d'un composant.
Vecteur sur les entités d'un constituant.
Vue sur une partie pure ou partielles des entités d'un composant.
Index d'un ConstituentItem dans une variable.
Options de construction pour 'ComponentItemVector' et l.
Représente un composant d'une maille multi-matériau.
Vecteur sur les entités d'un milieu.
Maille arcane d'un milieu.
Index d'un EnvItem dans une variable.
Vue sur un vecteur sur les entités d'un milieu.
Vue sur une partie pure ou partielles des entités d'un milieu.
Interface pour l'implémentation de ComponentItemVector.
Interface d'un bloc d'un maillage.
Interface d'un composant (matériau ou milieu) d'un maillage.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Interface d'une variable matériau d'un maillage.
Interface d'un matériau d'un maillage.
Enumérateur sur une partie des mailles d'un seul matériau.
Vecteur sur les entités d'un matériau.
Représente un matériau d'une maille multi-matériau.
Vue sur la partie impure des entités d'un matériau.
Index d'un MatItem dans une variable.
Vue sur un vecteur sur les entités d'un matériau.
Vue sur une partie pure ou partielles des entités d'un matériau.
Vue sur la partie pure des entités d'un matériau.
Représente un index sur les variables matériaux et milieux.
Informations caractérisant le type d'une variable matériau.
Informations pour la création d'un milieu.
Infos d'un matériau d'un maillage.
Classe de base des références aux variables matériaux.
Informations pour la création d'un bloc.
Active toujours les traces dans les parties Arcane concernant les matériaux.
ComponentItemVector ComponentCellVector
Liste de ComponentCell issues d'un IMeshComponent.
EnvItemLocalId EnvCellLocalId
Index d'un EnvItem dans une variable.
EnvItemVectorView EnvCellVectorView
Type de la vue sur un EnvCellVector.
CellComponentCellEnumeratorT< MatCell > CellMatCellEnumerator
Enumérateur sur les mailles matériaux d'une maille.
MatItemLocalId MatCellLocalId
Index d'un MatItem dans une variable.
CellComponentCellEnumeratorT< EnvCell > CellEnvCellEnumerator
Enumérateur sur les mailles milieux d'une maille.
ConstArrayView< IMeshComponent * > MeshComponentList
Liste de composants multi-matériaux du maillage.
ConstArrayView< IMeshMaterial * > MeshMaterialListView
Liste de matériaux du maillage.
ComponentItemVectorView ComponentCellVectorView
Type de la vue sur un ComponentCellVector.
ConstArrayView< IMeshEnvironment * > MeshEnvironmentListView
Liste de milieux du maillage.
MatItemVectorView MatCellVectorView
Type de la vue sur un MatCellVector.
MatVarSpace
Espace de définition d'une variable matériau.
@ Environment
Variable ayant des valeurs uniquement sur les milieux.
@ MaterialAndEnvironment
Variable ayant des valeurs sur les milieux et matériaux.
eMatPart
Partie d'un composant.
ConstArrayView< IMeshComponent * > MeshComponentListView
Liste de composants multi-matériaux du maillage.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int32_t Int32
Type entier signé sur 32 bits.
Espace de nom de Arccore.