Arcane  v3.14.10.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-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/* IMeshBase.h (C) 2000-2023 */
9/* */
10/* Interface for base mesh operations */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#ifndef ARCANE_IMESHBASE_H
15#define ARCANE_IMESHBASE_H
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
20#include "arcane/ItemTypes.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37namespace Arcane
38{
39
40/*---------------------------------------------------------------------------*/
41/*---------------------------------------------------------------------------*/
42
43class IItemFamilyModifier;
44
45/*---------------------------------------------------------------------------*/
46/*---------------------------------------------------------------------------*/
47
49{
50 public:
51
52 virtual ~IMeshBase() = default;
53
54 public:
55
57 virtual MeshHandle handle() const = 0;
58
59 public:
60
62 virtual String name() const = 0;
63
65 virtual Integer nbNode() = 0;
66
68 virtual Integer nbEdge() = 0;
69
71 virtual Integer nbFace() = 0;
72
74 virtual Integer nbCell() = 0;
75
80 virtual Integer nbItem(eItemKind ik) = 0;
81
83 virtual ITraceMng* traceMng() = 0;
84
93 virtual Integer dimension() = 0;
94
96 virtual NodeGroup allNodes() = 0;
97
99 virtual EdgeGroup allEdges() = 0;
100
102 virtual FaceGroup allFaces() = 0;
103
105 virtual CellGroup allCells() = 0;
106
108 virtual NodeGroup ownNodes() = 0;
109
111 virtual EdgeGroup ownEdges() = 0;
112
114 virtual FaceGroup ownFaces() = 0;
115
117 virtual CellGroup ownCells() = 0;
118
120 virtual FaceGroup outerFaces() = 0;
121
122 public:
123
126
134 bool register_modifier_if_created = false) = 0;
135
142 virtual IItemFamily* findItemFamily(const String& name, bool throw_exception = false) = 0;
143
150
157
159 virtual IItemFamily* nodeFamily() = 0;
161 virtual IItemFamily* edgeFamily() = 0;
163 virtual IItemFamily* faceFamily() = 0;
165 virtual IItemFamily* cellFamily() = 0;
166
167 virtual IItemFamilyCollection itemFamilies() = 0;
168};
169
170/*---------------------------------------------------------------------------*/
171/*---------------------------------------------------------------------------*/
172
173} // namespace Arcane
174
175/*---------------------------------------------------------------------------*/
176/*---------------------------------------------------------------------------*/
177
178#endif //ARCANE_IMESHBASE_H
179
180/*---------------------------------------------------------------------------*/
181/*---------------------------------------------------------------------------*/
Interface de modification d'une famille.
Interface d'une famille d'entités.
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.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Handle sur un maillage.
Definition MeshHandle.h:47
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.