Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MeshMaterial.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/* MeshMaterial.h (C) 2000-2024 */
9/* */
10/* Matériau d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_MESHMATERIAL_H
13#define ARCANE_MATERIALS_INTERNAL_MESHMATERIAL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
19#include "arcane/core/ItemGroup.h"
20#include "arcane/core/materials/IMeshMaterial.h"
21#include "arcane/core/materials/MatItem.h"
22#include "arcane/core/materials/internal/IMeshComponentInternal.h"
23
24#include "arcane/materials/internal/MeshComponentData.h"
25#include "arcane/materials/internal/MeshMaterialVariableIndexer.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Arcane::Materials
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class IMeshMaterialMng;
37class MeshEnvironment;
38class MatItemVectorView;
39
40/*---------------------------------------------------------------------------*/
41/*---------------------------------------------------------------------------*/
51: public TraceAccessor
52, public IMeshMaterial
53{
56 {
57 public:
58 InternalApi(MeshMaterial* mat) : m_material(mat){}
59 public:
61 {
62 return m_material->variableIndexer();
63 }
65 {
66 return m_material->constituentItemListView();
67 }
68 Int32 variableIndexerIndex() const override;
71
72 private:
73 MeshMaterial* m_material;
74 };
75
76 public:
77
79 const String& name,Int16 mat_id);
80
81 public:
82
83 IMeshMaterialMng* materialMng() override { return m_material_mng; }
84 ITraceMng* traceMng() override { return TraceAccessor::traceMng(); }
85 MeshMaterialInfo* infos() const override { return m_infos; }
86 String name() const override { return m_data.name(); }
87 IMeshEnvironment* environment() const override;
88 CellGroup cells() const override;
89
90 MeshMaterialVariableIndexer* variableIndexer() const
91 {
92 return m_data.variableIndexer();
93 }
94
95 ConstituentItemLocalIdListView constituentItemListView() const
96 {
97 return m_data.constituentItemListView();
98 }
99
100 Int32 id() const override { return m_data.componentId(); }
101
102 IUserMeshMaterial* userMaterial() const override { return m_user_material; }
103 void setUserMaterial(IUserMeshMaterial* umm) override { m_user_material = umm; }
104
105 MatCell findMatCell(AllEnvCell c) const override;
107
108 MatItemVectorView matView() const override;
109 ComponentItemVectorView view() const override;
110
111 void checkValid() override;
112
113 bool isMaterial() const override { return true; }
114 bool isEnvironment() const override { return false; }
115 bool hasSpace(MatVarSpace space) const override { return space==MatVarSpace::MaterialAndEnvironment; }
116 IMeshMaterial* asMaterial() override { return this; }
117 IMeshEnvironment* asEnvironment() override { return nullptr; }
118
122
125 MatPartItemVectorView partMatItems(eMatPart part) const override;
126
127 public:
128
129 IMeshComponentInternal* _internalApi() override { return &m_internal_api; }
130
131 public:
132
133 void setConstituentItem(Int32 index, ConstituentItemIndex id)
134 {
135 m_data._setConstituentItem(index,id);
136 }
137 Int16 componentId() const { return m_data.componentId(); }
138
139 public:
140
142
143 void build();
144 void resizeItemsInternal(Integer nb_item);
145 MeshComponentData* componentData() { return &m_data; }
146 MeshEnvironment* trueEnvironment() { return m_environment; }
147 const MeshEnvironment* trueEnvironment() const { return m_environment; }
149
150 private:
151
152 IMeshMaterialMng* m_material_mng;
153 MeshMaterialInfo* m_infos;
154 MeshEnvironment* m_environment;
155 IUserMeshMaterial* m_user_material;
156 MeshComponentData m_data;
157 MeshMaterial* m_non_const_this;
158 InternalApi m_internal_api;
159};
160
161/*---------------------------------------------------------------------------*/
162/*---------------------------------------------------------------------------*/
163
164} // End namespace Arcane::Materials
165
166/*---------------------------------------------------------------------------*/
167/*---------------------------------------------------------------------------*/
168
169#endif
170
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Maille arcane avec info matériaux et milieux.
Représente un composant d'une maille multi-matériau.
Vue sur un vecteur sur les entités d'un composant.
Vue sur une partie pure ou partielles des entités d'un composant.
Index d'une entité constituant dans la liste des entités constituants.
Vue sur une instance de ConstituentItemLocalIdList.
API interne Arcane de 'IMeshComponent'.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Interface d'un matériau d'un maillage.
Interface d'un matériau utilisateur.
Représente un matériau d'une maille multi-matériau.
Vue sur la partie impure des entités d'un matériau.
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.
Infos d'un matériau d'un maillage.
ConstituentItemLocalIdListView constituentItemListView() const override
Vue sur les mailles du constituant.
Ref< IConstituentItemVectorImpl > createItemVectorImpl() const override
Créé une instance de l'implémentation de 'ConstituentItemVectorImpl'.
MeshMaterialVariableIndexer * variableIndexer() const override
Indexeur pour accéder aux variables partielles.
Int32 variableIndexerIndex() const override
Index pour accéder aux variables partielles.
Matériau d'un maillage.
void build()
Fonctions publiques mais réservées au IMeshMaterialMng.
Int32 id() const override
Identifiant du composant.
IMeshEnvironment * environment() const override
Milieu auquel appartient ce matériau.
bool hasSpace(MatVarSpace space) const override
Indique si le composant est défini pour l'espace space.
MatItemVectorView matView() const override
Vue associée à ce matériau.
ComponentImpurePartItemVectorView impureItems() const override
Vue sur la liste des entités impures (partielles) partielles du composant.
MatCell findMatCell(AllEnvCell c) const override
Maille de ce matériau pour la maille c.
IMeshComponentInternal * _internalApi() override
API interne.
bool isMaterial() const override
Vrai si le composant est un matériau.
ComponentPurePartItemVectorView pureItems() const override
Vue sur la liste des entités pures (associées à la maille globale) du composant.
ComponentItemVectorView view() const override
Vue associée à ce composant.
ComponentCell findComponentCell(AllEnvCell c) const override
Maille de ce composant pour la maille c.
IMeshEnvironment * asEnvironment() override
Retourne le composant sous la forme d'un IMeshMaterial.
IMeshMaterialMng * materialMng() override
Gestionnaire associé.
ComponentPartItemVectorView partItems(eMatPart part) const override
Vue sur la partie pure ou impure des entités du composant.
MatPurePartItemVectorView pureMatItems() const override
Vue sur la liste des entités pures (associées à la maille globale) du matériau.
String name() const override
Nom du composant.
void checkValid() override
Vérifie que le composant est valide.
MatPartItemVectorView partMatItems(eMatPart part) const override
Vue sur la partie pure ou impure des entités du matériau.
void setUserMaterial(IUserMeshMaterial *umm) override
Positionne le matériau utilisateur associé
MeshMaterialInfo * infos() const override
Infos du matériau.
MatImpurePartItemVectorView impureMatItems() const override
Vue sur la liste des entités impures (partielles) partielles du matériau.
IUserMeshMaterial * userMaterial() const override
Matériau utilisateur associé
IMeshMaterial * asMaterial() override
Retourne le composant sous la forme d'un IMeshMaterial.
ITraceMng * traceMng() override
Gestionnaire de trace associé.
CellGroup cells() const override
Groupe des mailles de ce matériau.
bool isEnvironment() const override
Vrai si le composant est un milieu.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
ITraceMng * traceMng() const
Gestionnaire de trace.
Active toujours les traces dans les parties Arcane concernant les matériaux.
MatVarSpace
Espace de définition d'une variable matériau.
@ MaterialAndEnvironment
Variable ayant des valeurs sur les milieux et matériaux.
eMatPart
Partie d'un composant.