Arcane  v3.15.0.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-2024 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-2024 */
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;
41class ConstituentItemBase;
42}
43
44namespace Arcane::Materials
45{
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
50class AllCellToAllEnvCellContainer;
51class AllEnvCellVectorView;
52class ComponentItemInternalData;
53class ConstituentItem;
54using ComponentCell = ConstituentItem;
55class ConstituentItemVectorImpl;
56class ConstituentItemLocalIdList;
57class IMeshBlock;
58class IMeshComponent;
59class IMeshMaterial;
60class IMeshMaterialMng;
61class IMeshEnvironment;
62class MatVarIndex;
63class MeshMaterialVariableIndexer;
64class MeshMaterialInfo;
65class MatCell;
66class EnvCell;
67class MatItemVectorView;
68class EnvItemVectorView;
69class MatPurePartItemVectorView;
70class MatImpurePartItemVectorView;
71class MatPartItemVectorView;
72class EnvPurePartItemVectorView;
73class EnvImpurePartItemVectorView;
74class EnvPartItemVectorView;
75class ComponentItemInternal;
76class AllEnvCell;
77class ComponentItemVectorView;
78class ComponentPartItemVectorView;
79class ComponentPurePartItemVectorView;
80class ComponentImpurePartItemVectorView;
81class ConstituentItemLocalIdListView;
82class MeshComponentPartData;
83class MatCellEnumerator;
84class ComponentItemVector;
85class IMeshMaterialVariableFactoryMng;
86class IMeshMaterialVariableFactory;
87class IMeshMaterialVariable;
88class MaterialVariableBuildInfo;
89class MaterialVariableTypeInfo;
90class MeshMaterialVariableRef;
92{};
94{};
95class IMeshMaterialMngInternal;
98class IMeshMaterialMngInternal;
99class MeshMaterialModifierImpl;
108class MatItemLocalId;
109class EnvItemLocalId;
111
112class AllEnvData;
113class MeshMaterialMng;
114class MeshEnvironment;
115class MeshComponentData;
116class EnvCellVector;
117class MatCellVector;
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122using ComponentItemInternalPtr = ComponentItemInternal*;
126
127/*---------------------------------------------------------------------------*/
128/*---------------------------------------------------------------------------*/
129
130//! Liste de composants multi-matériaux du maillage.
132
133//! Liste de milieux du maillage.
135
136//! Liste de matériaux du maillage.
138
139/*---------------------------------------------------------------------------*/
140/*---------------------------------------------------------------------------*/
141
142//! Liste de ComponentCell issues d'un IMeshComponent.
144
145//! Type de la vue sur un EnvCellVector
147
148//! Type de la vue sur un MatCellVector
150
151//! Type de la vue sur un ComponentCellVector
153
154//! Liste de composants multi-matériaux du maillage.
156
157template <typename DataType> class CellMaterialVariableScalarRef;
158
159template <typename ItemType, typename DataType>
161template <typename ItemType, typename DataType>
163
164/*---------------------------------------------------------------------------*/
165/*---------------------------------------------------------------------------*/
166
168template <typename ConstituentCellType> class CellComponentCellEnumeratorT;
169
170//! Enumérateur sur les mailles matériaux d'une maille.
172
173//! Enumérateur sur les mailles milieux d'une maille.
175
176//! Index d'un MatItem dans une variable.
178
179//! Index d'un EnvItem dans une variable.
181
182/*---------------------------------------------------------------------------*/
183/*---------------------------------------------------------------------------*/
184
185static const Int32 LEVEL_MATERIAL = 1;
186static const Int32 LEVEL_ENVIRONMENT = 2;
187static const Int32 LEVEL_ALLENVIRONMENT = 0;
188
189/*---------------------------------------------------------------------------*/
190/*---------------------------------------------------------------------------*/
191/*!
192 * \brief Espace de définition d'une variable matériau.
193 */
194enum class MatVarSpace
195{
196 //! Variable ayant des valeurs sur les milieux et matériaux
198 //! Variable ayant des valeurs uniquement sur les milieux
200};
201
202/*---------------------------------------------------------------------------*/
203/*---------------------------------------------------------------------------*/
204
205//! Partie d'un composant
206enum class eMatPart
207{
208 Pure = 0,
209 Impure = 1
210};
211
212/*---------------------------------------------------------------------------*/
213/*---------------------------------------------------------------------------*/
214
215} // namespace Arcane::Materials
216
217/*---------------------------------------------------------------------------*/
218/*---------------------------------------------------------------------------*/
219
220namespace Arccore
221{
222ARCCORE_DEFINE_ARRAY_PODTYPE(Arcane::Materials::MatVarIndex);
223ARCCORE_DEFINE_ARRAY_PODTYPE(Arcane::Materials::ConstituentItemIndex);
224} // namespace Arccore
225
226/*---------------------------------------------------------------------------*/
227/*---------------------------------------------------------------------------*/
228
230
231/*---------------------------------------------------------------------------*/
232/*---------------------------------------------------------------------------*/
233
234#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.
Table de connectivité des 'Cell' vers leur(s) 'AllEnvCell' destinée à une utilisation sur accélérateu...
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. Pour l'instant, cette classe n'est insta...
Vue sur un vecteur sur les entités d'un composant.
Index d'un ConstituentItem dans une variable.
Vecteur sur les entités d'un milieu.
Index d'un EnvItem dans une variable.
Vue sur un vecteur sur les entités d'un milieu.
Interface pour l'implémentation de ComponentItemVector.
Interface d'un composant (matériau ou milieu) d'un maillage.
Interface d'un matériau d'un maillage.
Vecteur sur les 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.
Représente un index sur les variables matériaux et milieux.
Informations pour la création d'un milieu.
Informations pour la création d'un bloc.
Vue constante d'un tableau de type T.
Active toujours les traces dans les parties Arcane concernant les matériaux.
CellComponentCellEnumeratorT< EnvCell > CellEnvCellEnumerator
Enumérateur sur les mailles milieux d'une maille.
ConstArrayView< IMeshEnvironment * > MeshEnvironmentListView
Liste de milieux du maillage.
CellComponentCellEnumeratorT< MatCell > CellMatCellEnumerator
Enumérateur sur les mailles matériaux d'une maille.
ConstArrayView< IMeshMaterial * > MeshMaterialListView
Liste de matériaux du maillage.
ConstArrayView< IMeshComponent * > MeshComponentListView
Liste de composants multi-matériaux du maillage.
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.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Espace de nom de Arccore.
Definition ArcaneTypes.h:24