Arcane  v3.16.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SimpleMeshGenerator.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/* SimpleMeshGenerator.h (C) 2000-2025 */
9/* */
10/* Service de génération de maillage 'Simple'. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_STD_SIMPLEMESHGENERATOR_H
13#define ARCANE_STD_SIMPLEMESHGENERATOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/internal/IMeshModifierInternal.h"
18#include "arcane/utils/TraceAccessor.h"
19#include "arcane/utils/Array.h"
20#include "arcane/std/IMeshGenerator.h"
21
22#include <map>
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
35class SimpleMeshGenerator
36: public TraceAccessor
37, public IMeshGenerator
38{
39public:
40
41 explicit SimpleMeshGenerator(IPrimaryMesh* mesh);
42
43 public:
44
45 ConstArrayView<Int32> communicatingSubDomains() const override { return {}; }
46 bool readOptions(XmlNode node) override;
47 bool generateMesh() override;
48
49 protected:
50
51 Integer _addNode(const Real3& position);
52 Integer _addNode(Real x,Real y,Real z);
53 void _addCell(Int16 type_id, ConstArrayView<Int64> nodes_id);
54
55 private:
56
57 Int32 m_mode = 1;
58 IPrimaryMesh* m_mesh = nullptr;
59 IMeshModifierInternal* m_mesh_modifier_internal = nullptr;
60 UniqueArray<Int64> m_nodes_unique_id;
61 UniqueArray<Real3> m_nodes_coords;
62 UniqueArray<Int64> m_cells_infos;
63 Integer m_current_nb_cell = 0;
64 typedef std::map<Real3,Integer> Real3Map;
71
72 private:
73
74 void _createSimpleDiTetra5(Real x0,Real y0,Real z1,Real z2);
75 void _createSimpleAntiWedgeRight6(Real x0,Real y0,Real z1,Real z2);
76 void _createSimpleAntiWedgeLeft6(Real x0,Real y0,Real z1,Real z2);
77 void _createSimpleHemiHexa5(Real x0,Real y0,Real z1,Real z2);
78 void _createSimpleHemiHexa6(Real x0,Real y0,Real z1,Real z2);
79 void _createSimpleHemiHexa7(Real x0,Real y0,Real z1,Real z2);
80 void _createSimpleOctaedron12(Real x0,Real y0,Real z1,Real z2);
81 void _createSimpleHeptaedron10(Real x0,Real y0,Real z1,Real z2);
82 void _createSimpleHexaedron8(Real x0,Real y0,Real z1,Real z2);
83 void _createSimplePentaedron6(Real x0,Real y0,Real z1,Real z2);
84 void _createSimplePyramid5(Real x0,Real y0,Real z1,Real z2);
85 void _createSimpleTetraedron4(Real x0,Real y0,Real z1,Real z2);
86};
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91} // End namespace Arcane
92
93/*---------------------------------------------------------------------------*/
94/*---------------------------------------------------------------------------*/
95
96#endif
Vue constante d'un tableau de type T.
Interface d'un générateur de maillage.
Partie interne de IMeshModifier.
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Real3Map m_coords_to_uid
Mapping Coordonnées --> Indice unique. Pour la fusion automatique des noeuds aux mêmes coordonnées,...
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Vecteur 1D de données avec sémantique par valeur (style STL).
Noeud d'un arbre DOM.
Definition XmlNode.h:51
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
std::int16_t Int16
Type entier signé sur 16 bits.
double Real
Type représentant un réel.
std::int32_t Int32
Type entier signé sur 32 bits.