Arcane  v3.16.8.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IMeshBase.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* IMeshBase.h (C) 2000-2025 */
9/* */
10/* Interface for base mesh operations */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMESHBASE_H
13#define ARCANE_CORE_IMESHBASE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34namespace Arcane
35{
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
41
42/*---------------------------------------------------------------------------*/
43/*---------------------------------------------------------------------------*/
44
46{
47 public:
48
49 virtual ~IMeshBase() = default;
50
51 public:
52
54 virtual MeshHandle handle() const = 0;
55
56 public:
57
59 virtual String name() const = 0;
60
62 virtual Integer nbNode() = 0;
63
65 virtual Integer nbEdge() = 0;
66
68 virtual Integer nbFace() = 0;
69
71 virtual Integer nbCell() = 0;
72
77 virtual Integer nbItem(eItemKind ik) = 0;
78
80 virtual ITraceMng* traceMng() = 0;
81
90 virtual Integer dimension() = 0;
91
93 virtual NodeGroup allNodes() = 0;
94
96 virtual EdgeGroup allEdges() = 0;
97
99 virtual FaceGroup allFaces() = 0;
100
102 virtual CellGroup allCells() = 0;
103
105 virtual NodeGroup ownNodes() = 0;
106
108 virtual EdgeGroup ownEdges() = 0;
109
111 virtual FaceGroup ownFaces() = 0;
112
114 virtual CellGroup ownCells() = 0;
115
117 virtual FaceGroup outerFaces() = 0;
118
119 public:
120
123
130 virtual IItemFamily* findItemFamily(eItemKind ik, const String& name, bool create_if_needed = false,
131 bool register_modifier_if_created = false) = 0;
132
139 virtual IItemFamily* findItemFamily(const String& name, bool throw_exception = false) = 0;
140
147
154
156 virtual IItemFamily* nodeFamily() = 0;
158 virtual IItemFamily* edgeFamily() = 0;
160 virtual IItemFamily* faceFamily() = 0;
162 virtual IItemFamily* cellFamily() = 0;
163
164 virtual IItemFamilyCollection itemFamilies() = 0;
165};
166
167/*---------------------------------------------------------------------------*/
168/*---------------------------------------------------------------------------*/
169
170} // namespace Arcane
171
172/*---------------------------------------------------------------------------*/
173/*---------------------------------------------------------------------------*/
174
175#endif //ARCANE_IMESHBASE_H
176
177/*---------------------------------------------------------------------------*/
178/*---------------------------------------------------------------------------*/
Déclarations de types sur les entités.
Interface de modification d'une famille.
Interface d'une famille d'entités.
Definition IItemFamily.h:84
virtual ITraceMng * traceMng()=0
Gestionnaire de message associé
virtual NodeGroup ownNodes()=0
Groupe de tous les noeuds propres au domaine.
virtual MeshHandle handle() const =0
Handle sur ce maillage.
virtual IItemFamily * nodeFamily()=0
Retourne la famille des noeuds.
virtual String name() const =0
Nom du maillage.
virtual Integer nbCell()=0
Nombre de mailles du maillage.
virtual IItemFamilyModifier * findItemFamilyModifier(eItemKind ik, const String &name)=0
Retourne l'interface IItemFamilyModifier pour famille de nom name et de type ik.
virtual CellGroup ownCells()=0
Groupe de toutes les mailles propres au domaine.
virtual FaceGroup ownFaces()=0
Groupe de toutes les faces propres au domaine.
virtual FaceGroup allFaces()=0
Groupe de toutes les faces.
virtual Integer nbEdge()=0
Nombre d'arêtes du maillage.
virtual IItemFamily * itemFamily(eItemKind ik)=0
Retourne la famille d'entité de type ik.
virtual IItemFamily * edgeFamily()=0
Retourne la famille des arêtes.
virtual Integer nbNode()=0
Nombre de noeuds du maillage.
virtual FaceGroup outerFaces()=0
Groupe de toutes les faces sur la frontière.
virtual IItemFamily * findItemFamily(eItemKind ik, const String &name, bool create_if_needed=false, bool register_modifier_if_created=false)=0
Retourne la famille de nom name.
virtual Integer nbItem(eItemKind ik)=0
Nombre d'éléments du genre ik.
virtual Integer dimension()=0
Dimension du maillage (1D, 2D ou 3D).
virtual IItemFamily * findItemFamily(const String &name, bool throw_exception=false)=0
Retourne la famille de nom name.
virtual IItemFamily * faceFamily()=0
Retourne la famille des faces.
virtual EdgeGroup ownEdges()=0
Groupe de toutes les arêtes propres au domaine.
virtual NodeGroup allNodes()=0
Groupe de tous les noeuds.
virtual CellGroup allCells()=0
Groupe de toutes les mailles.
virtual Integer nbFace()=0
Nombre de faces du maillage.
virtual IItemFamily * cellFamily()=0
Retourne la famille des mailles.
virtual IItemFamily * createItemFamily(eItemKind ik, const String &name)=0
Créé une famille de particule de nom name.
virtual EdgeGroup allEdges()=0
Groupe de toutes les arêtes.
Interface du gestionnaire de traces.
Handle sur un maillage.
Definition MeshHandle.h:47
Chaîne de caractères unicode.
ItemGroupT< Cell > CellGroup
Groupe de mailles.
Definition ItemTypes.h:183
ItemGroupT< Face > FaceGroup
Groupe de faces.
Definition ItemTypes.h:178
ItemGroupT< Edge > EdgeGroup
Groupe d'arêtes.
Definition ItemTypes.h:173
ItemGroupT< Node > NodeGroup
Groupe de noeuds.
Definition ItemTypes.h:167
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
Collection< IItemFamily * > IItemFamilyCollection
Collection de familles d'entités.
eItemKind
Genre d'entité de maillage.