14#include "arcane/utils/CheckedConvert.h"
16#include "arcane/core/IMeshUniqueIdMng.h"
17#include "arcane/core/CartesianGridDimension.h"
18#include "arcane/core/internal/CartesianMeshAllocateBuildInfoInternal.h"
20#include "arcane/mesh/DynamicMesh.h"
58 virtual void _buildCellList() = 0;
77 void _buildCellList()
override;
83void DynamicMeshCartesian2DBuilder::
116 for (Int32 i = 0; i < 4; ++i)
142 void _buildCellList()
override;
148void DynamicMeshCartesian3DBuilder::
183 for (Int32 i = 0; i < 8; ++i)
197DynamicMeshCartesianBuilder::
198DynamicMeshCartesianBuilder(DynamicMesh* mesh, CartesianMeshAllocateBuildInfoInternal* build_info)
199: TraceAccessor(mesh->traceMng())
201, m_build_info(build_info)
208void DynamicMeshCartesianBuilder::
211 auto* x = m_build_info;
212 const Int32 dimension = m_build_info->meshDimension();
216 Int32 face_builder_version = x->faceBuilderVersion();
217 if (face_builder_version >= 0)
219 Int32 edge_builder_version = x->edgeBuilderVersion();
220 if (edge_builder_version >= 0)
231ARCANE_MESH_EXPORT
void
232allocateCartesianMesh(DynamicMesh* mesh, CartesianMeshAllocateBuildInfo& build_info)
234 auto* x = build_info._internal();
235 Int32 dimension = x->meshDimension();
237 if (dimension == 3) {
238 DynamicMeshCartesian3DBuilder builder(mesh, x);
241 else if (dimension == 2) {
242 DynamicMeshCartesian2DBuilder builder(mesh, x);
246 ARCANE_FATAL(
"Not supported dimension '{0}'. Only 2 or 3 is supported", dimension);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Classe pour calculer en 2D le uniqueId() d'une maille en fonction de sa position dans la grille.
Classe pour calculer en 3D le uniqueId() d'une maille en fonction de sa position dans la grille.
Classe pour calculer en 2D le uniqueId() d'un noeud en fonction de sa position dans la grille.
Classe pour calculer en 3D le uniqueId() d'un noeud en fonction de sa position dans la grille.
Informations sur les dimensions d'une grille cartésienne.
Partie interne de CartesianMeshAllocateBuildInfo.
virtual void setFaceBuilderVersion(Integer n)=0
Positionne la version de la numérotation des faces.
virtual void setEdgeBuilderVersion(Integer n)=0
Positionne la version de la numérotation des arêtes.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Informations pour un échange de maillage entre sous-domaines.
Implémentation d'un maillage.
void setDimension(Integer dim) override
Positionne la dimension du maillage (1D, 2D ou 3D).
IMeshUniqueIdMng * meshUniqueIdMng() const override
Gestionnare de la numérotation des identifiants uniques.
void allocateCells(Integer mesh_nb_cell, Int64ConstArrayView cells_info, bool one_alloc) override
Allocation d'un maillage.
Classe d'accès aux traces.
Int32 toInt32(Int64 v)
Converti un Int64 en un Int32.