Arcane  v3.16.2.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshKind.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/* MeshKind.h (C) 2000-2025 */
9/* */
10/* Caractéristiques d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MESHKIND_H
13#define ARCANE_CORE_MESHKIND_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27//! Structure du maillage
29{
30 //! Structure inconnu ou pas initialisée
32 //! Maillage non structuré
34 //! Maillage cartésien
36 //! Maillage polyedrique
38};
39
40extern "C++" ARCANE_CORE_EXPORT std::ostream&
41operator<<(std::ostream& o, eMeshStructure r);
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
45
46//! Type de maillage AMR
47enum class eMeshAMRKind
48{
49 //! Le maillage n'est pas AMR
51 //! Le maillage est AMR par maille
53 //! Le maillage est AMR par patch
55 //! Le maillage est AMR par patch cartésien (rectangulaire)
57};
58
59extern "C++" ARCANE_CORE_EXPORT std::ostream&
60operator<<(std::ostream& o, eMeshAMRKind r);
61
62/*---------------------------------------------------------------------------*/
63/*---------------------------------------------------------------------------*/
64
65/*!
66 * \brief Types de gestion de la dimension du maillage.
67 *
68 * \warning Les modes autres que eMeshCellDimensionKind::MonoDimension sont
69 * expérimentaux et ne sont supportés que pour eMeshStructure::Unstructured.
70 */
72{
73 //! Les mailles ont la même dimension que le maillage
75 //! Les mailles ont la même dimension que le maillage ou une dimension inférieure
77 /*!
78 * \brief Maillage non manifold.
79 *
80 * Le maillage est MultiDimension et non manifold.
81 * Dans ce cas, si le maillage est 3D, les mailles 2D ont des arêtes (Edge)
82 * au lieu des faces (Face).
83 */
85};
86
87extern "C++" ARCANE_CORE_EXPORT std::ostream&
88operator<<(std::ostream& o, eMeshCellDimensionKind r);
89
90/*---------------------------------------------------------------------------*/
91/*---------------------------------------------------------------------------*/
92/*!
93 * \brief Caractéristiques d'un maillage.
94 *
95 * Pour l'instant les caractéristiques sont:
96 * - la structure du maillage (eMeshStructure)
97 * - le type d'AMR
98 * - la gestion de la dimension des mailles (eMeshDimensionKind). Cette dernière
99 *
100 * \note Le support de maillages autres que eMeshDimensionKind.MonoDimension
101 * est expérimental.
102 */
103class ARCANE_CORE_EXPORT MeshKind
104{
105 public:
106
107 eMeshStructure meshStructure() const { return m_structure; }
108 eMeshAMRKind meshAMRKind() const { return m_amr_kind; }
109 eMeshCellDimensionKind meshDimensionKind() const { return m_dimension_kind; }
110 bool isNonManifold() const { return m_dimension_kind == eMeshCellDimensionKind::NonManifold; }
111 bool isMonoDimension() const { return m_dimension_kind == eMeshCellDimensionKind::MonoDimension; }
112 void setMeshStructure(eMeshStructure v) { m_structure = v; }
113 void setMeshAMRKind(eMeshAMRKind v) { m_amr_kind = v; }
114 void setMeshDimensionKind(eMeshCellDimensionKind v) { m_dimension_kind = v; }
115
116 private:
117
119 eMeshAMRKind m_amr_kind = eMeshAMRKind::None;
121};
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
125
126} // namespace Arcane
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131#endif
Déclarations des types généraux de Arcane.
Maille d'un maillage.
Definition Item.h:1205
Caractéristiques d'un maillage.
Definition MeshKind.h:104
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eMeshCellDimensionKind
Types de gestion de la dimension du maillage.
Definition MeshKind.h:72
@ MultiDimension
Les mailles ont la même dimension que le maillage ou une dimension inférieure.
Definition MeshKind.h:76
@ NonManifold
Maillage non manifold.
Definition MeshKind.h:84
@ MonoDimension
Les mailles ont la même dimension que le maillage.
Definition MeshKind.h:74
eMeshStructure
Structure du maillage.
Definition MeshKind.h:29
@ Unknown
Structure inconnu ou pas initialisée.
Definition MeshKind.h:31
@ Cartesian
Maillage cartésien.
Definition MeshKind.h:35
@ Unstructured
Maillage non structuré
Definition MeshKind.h:33
@ Polyhedral
Maillage polyedrique.
Definition MeshKind.h:37
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Opérateur de sortie sur un flot.
eMeshAMRKind
Type de maillage AMR.
Definition MeshKind.h:48
@ Patch
Le maillage est AMR par patch.
Definition MeshKind.h:54
@ None
Le maillage n'est pas AMR.
Definition MeshKind.h:50
@ PatchCartesianMeshOnly
Le maillage est AMR par patch cartésien (rectangulaire)
Definition MeshKind.h:56