Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshAccessor.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* MeshAccessor.h (C) 2000-2020 */
9/* */
10/* Accès aux informations d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESHACCESSOR_H
13#define ARCANE_MESHACCESSOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemTypes.h"
18#include "arcane/VariableTypedef.h"
19#include "arcane/MeshHandle.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class ISubDomain;
31class IMesh;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35/*!
36 * \brief Accès aux informations d'un maillage.
37 * \ingroup Mesh
38 */
39class ARCANE_CORE_EXPORT MeshAccessor
40{
41 public:
42
43 ARCCORE_DEPRECATED_2020("Use constructor with MeshHande")
45 MeshAccessor(IMesh* mesh);
46 MeshAccessor(const MeshHandle& mesh_handle);
47
48 public:
49
50 //! Retourne le nombre de mailles du maillage
51 Integer nbCell() const;
52 //! Retourne le nombre de faces du maillage
53 Integer nbFace() const;
54 //! Retourne le nombre d'arêtes du maillage
55 Integer nbEdge() const;
56 //! Retourne le nombre de noeuds du maillage
57 Integer nbNode() const;
58
59 //! Retourne les coordonnées des noeuds du maillage
60 VariableNodeReal3& nodesCoordinates() const;
61
62 //! Retourne le groupe contenant tous les noeuds
63 NodeGroup allNodes() const;
64 //! Retourne le groupe contenant toutes les arêtes
65 EdgeGroup allEdges() const;
66 //! Retourne le groupe contenant toutes les faces
67 FaceGroup allFaces() const;
68 //! Retourne le groupe contenant toutes les mailles
69 CellGroup allCells() const;
70 //! Retourne le groupe contenant toutes les faces de le frontière.
71 FaceGroup outerFaces() const;
72 /*! \brief Retourne le groupe contenant tous les noeuds propres à ce domaine.
73 *
74 * En mode séquentiel, il s'agit de allNodes(). En mode parallèle, il s'agit de
75 * tous les noeuds qui ne sont pas des noeuds fantômes. L'ensemble des
76 * groupes ownNodes() de tous les sous-domaines forment une partition
77 * du maillage global.
78 */
79 NodeGroup ownNodes() const;
80 /*! \brief Retourne le groupe contenant toutes les mailles propres à ce domaine.
81 *
82 * En mode séquentiel, il s'agit de allCells(). En mode parallèle, il s'agit de
83 * toutes les mailles qui ne sont pas des mailles fantômes. L'ensemble des
84 * groupes ownCells() de tous les sous-domaines forment une partition
85 * du maillage global.
86 */
87 CellGroup ownCells() const;
88 /*! \brief Groupe contenant toutes les faces propres à ce domaine.
89 *
90 * En mode séquentiel, il s'agit de allFaces(). En mode parallèle, il s'agit de
91 * toutes les faces qui ne sont pas des faces fantômes. L'ensemble des
92 * groupes ownFaces() de tous les sous-domaines forment une partition
93 * du maillage global.
94 */
95 FaceGroup ownFaces() const;
96 /*! \brief Groupe contenant toutes les arêtes propres à ce domaine.
97 *
98 * En mode séquentiel, il s'agit de allEdges(). En mode parallèle, il s'agit de
99 * toutes les arêtes qui ne sont pas des arêtes fantômes. L'ensemble des
100 * groupes ownEdges() de tous les sous-domaines forment une partition
101 * du maillage global.
102 */
103 EdgeGroup ownEdges() const;
104
105
106 public:
107
108 inline IMesh* mesh() const { return m_mesh_handle.mesh(); }
109 inline const MeshHandle& meshHandle() const { return m_mesh_handle; }
110
111 private:
112
113 MeshHandle m_mesh_handle;
114};
115
116/*---------------------------------------------------------------------------*/
117/*---------------------------------------------------------------------------*/
118
119} // End namespace Arcane
120
121/*---------------------------------------------------------------------------*/
122/*---------------------------------------------------------------------------*/
123
124#endif
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Accès aux informations d'un maillage.
Handle sur un maillage.
Definition MeshHandle.h:47
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-