Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IMeshBase.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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
148
155
157 virtual IItemFamily* nodeFamily() = 0;
159 virtual IItemFamily* edgeFamily() = 0;
161 virtual IItemFamily* faceFamily() = 0;
163 virtual IItemFamily* cellFamily() = 0;
164
165 virtual IItemFamilyCollection itemFamilies() = 0;
166};
167
168/*---------------------------------------------------------------------------*/
169/*---------------------------------------------------------------------------*/
170
171} // namespace Arcane
172
173/*---------------------------------------------------------------------------*/
174/*---------------------------------------------------------------------------*/
175
176#endif
Declarations of types on entities.
Interface for modifying a family.
Interface of an entity family.
Definition IItemFamily.h:83
virtual ITraceMng * traceMng()=0
Associated message manager.
virtual NodeGroup ownNodes()=0
Group of all domain-specific nodes.
virtual MeshHandle handle() const =0
Handle on this mesh.
virtual IItemFamily * nodeFamily()=0
Returns the node family.
virtual String name() const =0
Mesh name.
virtual Integer nbCell()=0
Number of mesh cells.
virtual IItemFamilyModifier * findItemFamilyModifier(eItemKind ik, const String &name)=0
Returns the IItemFamilyModifier interface for the family named name and of type ik.
virtual CellGroup ownCells()=0
Group of all domain-specific cells.
virtual FaceGroup ownFaces()=0
Group of all domain-specific faces.
virtual FaceGroup allFaces()=0
Group of all faces.
virtual Integer nbEdge()=0
Number of mesh edges.
virtual IItemFamily * itemFamily(eItemKind ik)=0
Returns the entity family of type ik.
virtual IItemFamily * edgeFamily()=0
Returns the edge family.
virtual Integer nbNode()=0
Number of mesh nodes.
virtual FaceGroup outerFaces()=0
Group of all faces on the boundary.
virtual IItemFamily * findItemFamily(eItemKind ik, const String &name, bool create_if_needed=false, bool register_modifier_if_created=false)=0
Returns the family named name.
virtual Integer nbItem(eItemKind ik)=0
Number of elements of type ik.
virtual Integer dimension()=0
Mesh dimension (1D, 2D, or 3D).
virtual IItemFamily * findItemFamily(const String &name, bool throw_exception=false)=0
Returns the family named name.
virtual IItemFamily * faceFamily()=0
Returns the face family.
virtual EdgeGroup ownEdges()=0
Group of all domain-specific edges.
virtual NodeGroup allNodes()=0
Group of all nodes.
virtual CellGroup allCells()=0
Group of all cells.
virtual Integer nbFace()=0
Number of mesh faces.
virtual IItemFamily * cellFamily()=0
Returns the cell family.
virtual IItemFamily * createItemFamily(eItemKind ik, const String &name)=0
Create a particle family named name.
virtual EdgeGroup allEdges()=0
Group of all edges.
Handle on a mesh.
Definition MeshHandle.h:48
ItemGroupT< Cell > CellGroup
Group of cells.
Definition ItemTypes.h:184
ItemGroupT< Face > FaceGroup
Group of faces.
Definition ItemTypes.h:179
ItemGroupT< Edge > EdgeGroup
Group of edges.
Definition ItemTypes.h:174
ItemGroupT< Node > NodeGroup
Group of nodes.
Definition ItemTypes.h:168
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
Collection< IItemFamily * > IItemFamilyCollection
Collection of item families.
eItemKind
Mesh entity type.