Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
core/materials/IMeshComponent.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/* IMeshComponent.h (C) 2000-2023 */
9/* */
10/* Interface d'un composant (matériau ou milieu) d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_CORE_IMESHCOMPONENT_H
13#define ARCANE_MATERIALS_CORE_IMESHCOMPONENT_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemTypes.h"
18#include "arcane/core/materials/MaterialsCoreGlobal.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane::Materials
24{
25class IMeshComponentInternal;
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \ingroup ArcaneMaterials
31 * \brief Interface d'un composant (matériau ou milieu) d'un maillage.
32 */
33class ARCANE_CORE_EXPORT IMeshComponent
34{
35 public:
36
37 virtual ~IMeshComponent() = default;
38
39 public:
40
41 //! Gestionnaire associé.
43
44 //! Gestionnaire de trace associé.
45 virtual ITraceMng* traceMng() =0;
46
47 //! Nom du composant
48 virtual String name() const =0;
49
50 /*!
51 * \brief Groupe des mailles de ce matériau.
52 *
53 * \warning Ce groupe ne doit pas être modifié. Pour changer
54 * le nombre d'éléments d'un matériau, il faut passer
55 * par le materialMng().
56 */
57 virtual CellGroup cells() const =0;
58
59 /*!
60 * \brief Identifiant du composant.
61 *
62 * Il s'agit aussi de l'indice (en commençant par 0) de ce composant
63 * dans la liste des composants de ce type.
64 * Il existe une liste spécifique pour les matériaux et les milieux
65 * et donc un composant qui représente un matériau peut avoir le
66 * même id qu'un composant représentant un milieu.
67 */
68 virtual Int32 id() const =0;
69
70 /*!
71 * \brief Maille de ce composant pour la maille \a c.
72 *
73 * Si le composant n'est pas présent dans la présent dans la maille,
74 * la maille nulle est retournée.
75 *
76 * Le coût de cette fonction est proportionnel au nombre de composants
77 * présents dans la maille.
78 */
80
81 //! Vue associée à ce composant
82 virtual ComponentItemVectorView view() const =0;
83
84 //! Vérifie que le composant est valide.
85 virtual void checkValid() =0;
86
87 //! Vrai si le composant est un matériau
88 virtual bool isMaterial() const =0;
89
90 //! Vrai si le composant est un milieu
91 virtual bool isEnvironment() const =0;
92
93 //! Indique si le composant est défini pour l'espace \a space
94 virtual bool hasSpace(MatVarSpace space) const =0;
95
96 //! Vue sur la liste des entités pures (associées à la maille globale) du composant
98
99 //! Vue sur la liste des entités impures (partielles) partielles du composant
101
102 //! Vue sur la partie pure ou impure des entités du composant
104
105 /*!
106 * \brief Retourne le composant sous la forme d'un IMeshMaterial.
107 *
108 * Si isMaterial()==false, retourne \a nullptr
109 */
111
112 /*!
113 * \brief Retourne le composant sous la forme d'un IMeshMaterial.
114 *
115 * Si isEnvironment()==false, retourne \a nullptr
116 */
118
119 public:
120
121 //! API interne
122 virtual IMeshComponentInternal* _internalApi() =0;
123};
124
125/*---------------------------------------------------------------------------*/
126/*---------------------------------------------------------------------------*/
127
128} // End namespace Arcane::Materials
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133#endif
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.
Interface d'un composant (matériau ou milieu) d'un maillage.
virtual ComponentPartItemVectorView partItems(eMatPart part) const =0
Vue sur la partie pure ou impure des entités du composant.
virtual String name() const =0
Nom du composant.
virtual CellGroup cells() const =0
Groupe des mailles de ce matériau.
virtual Int32 id() const =0
Identifiant du composant.
virtual bool isEnvironment() const =0
Vrai si le composant est un milieu.
virtual IMeshMaterial * asMaterial()=0
Retourne le composant sous la forme d'un IMeshMaterial.
virtual ComponentImpurePartItemVectorView impureItems() const =0
Vue sur la liste des entités impures (partielles) partielles du composant.
virtual IMeshEnvironment * asEnvironment()=0
Retourne le composant sous la forme d'un IMeshMaterial.
virtual ITraceMng * traceMng()=0
Gestionnaire de trace associé.
virtual ComponentItemVectorView view() const =0
Vue associée à ce composant.
virtual IMeshComponentInternal * _internalApi()=0
API interne.
virtual bool hasSpace(MatVarSpace space) const =0
Indique si le composant est défini pour l'espace space.
virtual bool isMaterial() const =0
Vrai si le composant est un matériau.
virtual ComponentCell findComponentCell(AllEnvCell c) const =0
Maille de ce composant pour la maille c.
virtual void checkValid()=0
Vérifie que le composant est valide.
virtual ComponentPurePartItemVectorView pureItems() const =0
Vue sur la liste des entités pures (associées à la maille globale) du composant.
virtual IMeshMaterialMng * materialMng()=0
Gestionnaire associé.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Interface d'un matériau d'un maillage.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.
MatVarSpace
Espace de définition d'une variable matériau.
eMatPart
Partie d'un composant.