Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
core/materials/IMeshMaterial.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* IMeshMaterial.h (C) 2000-2023 */
9/* */
10/* Interface d'un matériau d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MATERIALS_IMESHMATERIAL_H
13#define ARCANE_CORE_MATERIALS_IMESHMATERIAL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/materials/IMeshComponent.h"
18
19// Cet include n'est pas utile pour ce '.h' mais on le laisse temporairement
20// pour compatibilité avec l'existant (Juin 2022).
21#include "arcane/core/materials/IMeshMaterialMng.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26namespace Arcane::Materials
27{
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \ingroup ArcaneMaterials
33 * \brief Interface d'un matériau utilisateur.
34 */
35class ARCANE_CORE_EXPORT IUserMeshMaterial
36{
37 public:
38
39 virtual ~IUserMeshMaterial(){}
40};
41
42/*---------------------------------------------------------------------------*/
43/*---------------------------------------------------------------------------*/
44/*!
45 * \ingroup ArcaneMaterials
46 * \brief Interface d'un matériau d'un maillage.
47 *
48 * Un matériau appartient à un milieu (IMeshEnvironment). Il est possible
49 * de récupérer la liste des mailles de ce matériau via cells().
50 */
51class ARCANE_CORE_EXPORT IMeshMaterial
52: public IMeshComponent
53{
54 public:
55
56 virtual ~IMeshMaterial(){}
57
58 public:
59
60 //! Infos du matériau.
61 virtual MeshMaterialInfo* infos() const =0;
62
63 //! Milieu auquel appartient ce matériau.
64 virtual IMeshEnvironment* environment() const =0;
65
66 //! Matériau utilisateur associé
67 virtual IUserMeshMaterial* userMaterial() const =0;
68
69 //! Positionne le matériau utilisateur associé
70 virtual void setUserMaterial(IUserMeshMaterial* umm) =0;
71
72 /*!
73 * \brief Maille de ce matériau pour la maille \a c.
74 *
75 * Si ce matériau n'est pas présent dans la présent dans la maille,
76 * la maille matériau nulle est retournée.
77 *
78 * Le coût de cette fonction est proportionnel au nombre de matériaux
79 * présents dans la maille.
80 */
81 virtual MatCell findMatCell(AllEnvCell c) const =0;
82
83 //! Vue associée à ce matériau
84 virtual MatItemVectorView matView() const =0;
85
86 //! Vue sur la liste des entités pures (associées à la maille globale) du matériau
88
89 //! Vue sur la liste des entités impures (partielles) partielles du matériau
91
92 //! Vue sur la partie pure ou impure des entités du matériau
94
95 public:
96
97 void setImiInfo(Int32 first_imi,Int32 nb_imi)
98 {
99 m_first_imi = first_imi;
100 m_nb_imi = nb_imi;
101 }
102 Int32 firstImi() const { return m_first_imi; }
103 Int32 nbImi() const { return m_nb_imi; }
104
105 protected:
106
107 IMeshMaterial() : m_first_imi(-1), m_nb_imi(0){}
108
109 private:
110
111 Int32 m_first_imi;
112 Int32 m_nb_imi;
113};
114
115/*---------------------------------------------------------------------------*/
116/*---------------------------------------------------------------------------*/
117
118} // End namespace Arcane::Materials
119
120/*---------------------------------------------------------------------------*/
121/*---------------------------------------------------------------------------*/
122
123#endif
124
Maille arcane avec info matériaux et milieux.
Interface d'un composant (matériau ou milieu) d'un maillage.
Interface d'un matériau d'un maillage.
virtual IMeshEnvironment * environment() const =0
Milieu auquel appartient ce matériau.
virtual MatPartItemVectorView partMatItems(eMatPart part) const =0
Vue sur la partie pure ou impure des entités du matériau.
virtual IUserMeshMaterial * userMaterial() const =0
Matériau utilisateur associé
virtual MatImpurePartItemVectorView impureMatItems() const =0
Vue sur la liste des entités impures (partielles) partielles du matériau.
virtual MeshMaterialInfo * infos() const =0
Infos du matériau.
virtual MatCell findMatCell(AllEnvCell c) const =0
Maille de ce matériau pour la maille c.
virtual MatItemVectorView matView() const =0
Vue associée à ce matériau.
virtual void setUserMaterial(IUserMeshMaterial *umm)=0
Positionne le matériau utilisateur associé
virtual MatPurePartItemVectorView pureMatItems() const =0
Vue sur la liste des entités pures (associées à la maille globale) du matériau.
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.
Active toujours les traces dans les parties Arcane concernant les matériaux.
eMatPart
Partie d'un composant.