14#include "arcane/utils/ArgumentException.h"
15#include "arcane/utils/NotImplementedException.h"
16#include "arcane/utils/Ref.h"
18#include "arcane/core/IMesh.h"
19#include "arcane/core/IItemFamily.h"
20#include "arcane/core/internal/ItemGroupImplInternal.h"
21#include "arcane/core/materials/internal/IMeshMaterialMngInternal.h"
23#include "arcane/materials/MeshMaterialInfo.h"
24#include "arcane/materials/IMeshMaterialMng.h"
25#include "arcane/materials/MatItemEnumerator.h"
26#include "arcane/materials/ComponentItemVectorView.h"
27#include "arcane/materials/ComponentPartItemVectorView.h"
29#include "arcane/materials/internal/MeshMaterial.h"
30#include "arcane/materials/internal/MeshEnvironment.h"
31#include "arcane/materials/internal/ConstituentItemVectorImpl.h"
32#include "arcane/materials/internal/MeshComponentPartData.h"
45 const String& name,
Int16 mat_id)
46: TraceAccessor(infos->materialMng()->traceMng())
47, m_material_mng(infos->materialMng())
50, m_user_material(nullptr)
51, m_data(this, name, mat_id, m_material_mng->_internalApi()->componentItemSharedInfo(LEVEL_MATERIAL), true)
52, m_non_const_this(this)
56 ARCANE_THROW(ArgumentException,
"null environement for material '{0}'", name);
70 String group_name = m_material_mng->name() +
"_" +
name();
73 m_data._setItems(items);
91 Int32 mat_id = m_data.componentId();
93 for(
MatCell mc : env_cell.subMatItems()) {
94 Int32 mid = mc.materialId();
106ComponentCell MeshMaterial::
118 return { m_non_const_this, variableIndexer()->matvarIndexes(),
119 constituentItemListView(), variableIndexer()->localIds() };
135resizeItemsInternal(
Integer nb_item)
137 m_data._resizeItemsInternal(nb_item);
155 return m_data.items();
164 return m_data._partData()->pureView();
173 return m_data._partData()->impureView();
182 return m_data._partData()->partView(part);
191 return { m_non_const_this, m_data._partData()->pureView() };
198impureMatItems()
const
200 return { m_non_const_this, m_data._partData()->impureView() };
209 return { m_non_const_this, m_data._partData()->partView(part) };
216variableIndexerIndex()
const
225createItemVectorImpl()
const
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
Interface d'une famille d'entités.
virtual ItemGroup findGroup(const String &name) const =0
Recherche un groupe.
void setAsConstituentGroup()
Indique que le groupe est associé à un constituant.
ItemGroupImplInternal * _internalApi() const
API interne à Arcane.
Maille arcane avec info matériaux et milieux.
__host__ __device__ CellEnvCellEnumerator subEnvItems() const
Enumérateur sur les mailles milieux de cette maille.
Vue sur la partie impure d'un composant.
Vue sur un vecteur sur les entités d'un composant.
Vue sur une partie pure ou partielles des entités d'un composant.
Vue sur la partie pure d'un composant.
Implémentation de ComponentItemVector.
Maille arcane d'un milieu.
Interface d'un milieu d'un maillage.
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.
MeshMaterialVariableIndexer * variableIndexer() const override
Indexeur pour accéder aux variables partielles.
MatItemVectorView matView() const override
Vue associée à ce matériau.
MatCell findMatCell(AllEnvCell c) const override
Maille de ce matériau pour la maille c.
String name() const override
Nom du composant.
Référence à une instance.
Chaîne de caractères unicode.
ItemGroupT< Cell > CellGroup
Groupe de mailles.
Active toujours les traces dans les parties Arcane concernant les matériaux.
eMatPart
Partie d'un composant.
Int32 Integer
Type représentant un entier.
std::int16_t Int16
Type entier signé sur 16 bits.
auto makeRef(InstanceType *t) -> Ref< InstanceType >
Créé une référence sur un pointeur.
std::int32_t Int32
Type entier signé sur 32 bits.