Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshArea.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/* MeshArea.h (C) 2000-2025 */
9/* */
10/* Zone du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MESHAREA_H
13#define ARCANE_CORE_MESHAREA_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/IMeshArea.h"
18#include "arcane/core/ItemGroup.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Zone du maillage.
30 */
31class ARCANE_CORE_EXPORT MeshArea
32: public IMeshArea
33{
34 public:
35
36 explicit MeshArea(IMesh* mesh);
37 ~MeshArea() override;
38
39 public:
40
41 //! Sous-domaine associé
42 ISubDomain* subDomain() override;
43
44 //! Gestionnaire de trace associé
45 ITraceMng* traceMng() override;
46
47 //! Maillage auquel appartient la zone
48 IMesh* mesh() override;
49
50 public:
51
52 //! Nombre de noeuds du maillage
53 Integer nbNode() override;
54
55 //! Nombre d'arêtes du maillage
56 virtual Integer nbEdge();
57
58 //! Nombre de faces du maillage
59 virtual Integer nbFace();
60
61 //! Nombre de mailles du maillage
62 Integer nbCell() override;
63
64 //! Nombre d'éléments du genre \a ik
65 virtual Integer nbItem(eItemKind ik);
66
67 public:
68
69 //! Groupe de tous les noeuds
70 NodeGroup allNodes() override;
71
72 //! Groupe de tous les arêtes
73 virtual EdgeGroup allEdges();
74
75 //! Groupe de toutes les faces
76 virtual FaceGroup allFaces();
77
78 //! Groupe de toutes les mailles
79 CellGroup allCells() override;
80
81 //! Groupe de toutes les entités du genre \a item_kind
82 virtual ItemGroup allItems(eItemKind item_kind);
83
84 //! Groupe de tous les noeuds propres au domaine
85 NodeGroup ownNodes() override;
86
87 //! Groupe de tous les arêtes propres au domaine
88 virtual EdgeGroup ownEdges();
89
90 //! Groupe de toutes les faces propres au domaine
91 virtual FaceGroup ownFaces();
92
93 //! Groupe de toutes les mailles propres au domaine
94 virtual CellGroup ownCells() override;
95
96 //! Groupe de toutes les entités propres au sous-domaine du genre \a item_kind
97 virtual ItemGroup ownItems(eItemKind item_kind);
98
99 public:
100
101 void setArea(const NodeGroup& nodes, const CellGroup& cells);
102
103 protected:
104
105 IMesh* m_mesh = nullptr;
106 ISubDomain* m_sub_domain = nullptr;
107 ITraceMng* m_trace_mng = nullptr;
108 NodeGroup m_all_nodes;
109 EdgeGroup m_all_edges;
110 FaceGroup m_all_faces;
111 CellGroup m_all_cells;
112};
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
116
117} // namespace Arcane
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122#endif
123
Interface d'une zone du maillage.
Definition IMeshArea.h:37
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface du gestionnaire de traces.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
virtual ItemGroup allItems(eItemKind item_kind)
Groupe de toutes les entités du genre item_kind.
Definition MeshArea.cc:113
ISubDomain * subDomain() override
Sous-domaine associé
Definition MeshArea.cc:51
virtual EdgeGroup ownEdges()
Groupe de tous les arêtes propres au domaine.
Definition MeshArea.cc:132
virtual FaceGroup ownFaces()
Groupe de toutes les faces propres au domaine.
Definition MeshArea.cc:133
virtual EdgeGroup allEdges()
Groupe de tous les arêtes.
Definition MeshArea.cc:110
ITraceMng * traceMng() override
Gestionnaire de trace associé
Definition MeshArea.cc:60
virtual Integer nbEdge()
Nombre d'arêtes du maillage.
Definition MeshArea.cc:88
IMesh * mesh() override
Maillage auquel appartient la zone.
Definition MeshArea.cc:69
virtual ItemGroup ownItems(eItemKind item_kind)
Groupe de toutes les entités propres au sous-domaine du genre item_kind.
Definition MeshArea.cc:135
virtual Integer nbFace()
Nombre de faces du maillage.
Definition MeshArea.cc:89
virtual Integer nbItem(eItemKind ik)
Nombre d'éléments du genre ik.
Definition MeshArea.cc:91
virtual FaceGroup allFaces()
Groupe de toutes les faces.
Definition MeshArea.cc:111
virtual CellGroup ownCells() override
Groupe de toutes les mailles propres au domaine.
Definition MeshArea.cc:134
CellGroup allCells() override
Groupe de toutes les mailles.
Definition MeshArea.cc:112
NodeGroup allNodes() override
Groupe de tous les noeuds.
Definition MeshArea.cc:109
NodeGroup ownNodes() override
Groupe de tous les noeuds propres au domaine.
Definition MeshArea.cc:131
Integer nbNode() override
Nombre de noeuds du maillage.
Definition MeshArea.cc:87
Integer nbCell() override
Nombre de mailles du maillage.
Definition MeshArea.cc:90
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.
eItemKind
Genre d'entité de maillage.