Arcane  v4.1.1.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
src/arcane/cartesianmesh/ICartesianMesh.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/* ICartesianMesh.h (C) 2000-2025 */
9/* */
10/* Interface d'un maillage cartésien. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CARTESIANMESH_ICARTESIANMESH_H
13#define ARCANE_CARTESIANMESH_ICARTESIANMESH_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/cartesianmesh/CartesianMeshGlobal.h"
18
20#include "arcane/core/MeshHandle.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
35class ARCANE_CARTESIANMESH_EXPORT ICartesianMesh
36{
37 public:
38
39 virtual ~ICartesianMesh() {} //<! Libère les ressources
40
50 static ICartesianMesh* getReference(const MeshHandleOrMesh& mesh, bool create = true);
51
52 public:
53
54 virtual void build() = 0;
55
56 public:
57
59 virtual IMesh* mesh() const = 0;
60
62 virtual ITraceMng* traceMng() const = 0;
63
66
69
72
75
78
81
91 virtual void computeDirections() = 0;
92
99 virtual void recreateFromDump() = 0;
100
103
111 virtual Int32 nbPatch() const = 0;
112
120 virtual ICartesianMeshPatch* patch(Int32 index) const = 0;
121
131 virtual CartesianPatch amrPatch(Int32 index) const = 0;
132
139
154 virtual void refinePatch2D(Real2 position, Real2 length) = 0;
155
170 virtual void refinePatch3D(Real3 position, Real3 length) = 0;
171
186 virtual void refinePatch(const AMRZonePosition& position) = 0;
187
208 virtual void coarseZone2D(Real2 position, Real2 length) = 0;
209
230 virtual void coarseZone3D(Real3 position, Real3 length) = 0;
231
252 virtual void coarseZone(const AMRZonePosition& position) = 0;
253
272 virtual Integer reduceNbGhostLayers(Integer level, Integer target_nb_ghost_layers) = 0;
273
282
284 virtual void checkValid() const = 0;
285
290 ARCANE_DEPRECATED_REASON("Y2024: Use Arcane::CartesianMeshUtils::createCartesianMeshCoarsening2() instead")
292
293 public:
294
297};
298
299/*---------------------------------------------------------------------------*/
300/*---------------------------------------------------------------------------*/
306extern "C++" ARCANE_CARTESIANMESH_EXPORT ICartesianMesh*
308
309/*---------------------------------------------------------------------------*/
310/*---------------------------------------------------------------------------*/
311
312} // End namespace Arcane
313
314/*---------------------------------------------------------------------------*/
315/*---------------------------------------------------------------------------*/
316
317#endif
318
Déclarations des types généraux de Arcane.
Classe permettant de définir une zone d'un maillage.
Informations de connectivité d'un maillage cartésien.
Déraffine un maillage cartésien par 2.
Patch AMR d'un maillage cartésien.
Infos sur les mailles d'une direction spécifique X,Y ou Z d'un maillage structuré.
Infos sur les face d'une direction spécifique X,Y ou Z d'un maillage structuré.
Partie interne de ICartesianMesh.
Interface d'un patch AMR d'un maillage cartésien.
Interface d'un maillage cartésien.
static ICartesianMesh * getReference(const MeshHandleOrMesh &mesh, bool create=true)
Récupère ou créé la référence associée à mesh.
virtual FaceDirectionMng faceDirection(eMeshDirection dir)=0
Liste des faces dans la direction dir.
virtual CellDirectionMng cellDirection(eMeshDirection dir)=0
Liste des mailles dans la direction dir.
virtual CartesianConnectivity connectivity()=0
Informations sur la connectivité
virtual ITraceMng * traceMng() const =0
Gestionnaire de trace associé.
virtual void recreateFromDump()=0
Recalcule les informations de cartésiennes après une reprise.
virtual FaceDirectionMng faceDirection(Integer idir)=0
Liste des faces dans la direction dir (0, 1 ou 2)
virtual void renumberItemsUniqueId(const CartesianMeshRenumberingInfo &v)=0
Renumérote les uniqueId() des entités.
virtual IMesh * mesh() const =0
Maillage associé à ce maillage cartésien.
virtual void refinePatch(const AMRZonePosition &position)=0
Raffine un bloc du maillage cartésien.
virtual ICartesianMeshPatch * patch(Int32 index) const =0
Retourne le index-ième patch du maillage.
virtual CellDirectionMng cellDirection(Integer idir)=0
Liste des mailles dans la direction dir (0, 1 ou 2)
virtual void refinePatch2D(Real2 position, Real2 length)=0
Raffine en 2D un bloc du maillage cartésien.
virtual void refinePatch3D(Real3 position, Real3 length)=0
Raffine en 3D un bloc du maillage cartésien.
virtual ICartesianMeshInternal * _internalApi()=0
API interne à Arcane.
virtual CartesianMeshPatchListView patches() const =0
Vue sur la liste des patchs.
virtual CartesianPatch amrPatch(Int32 index) const =0
Retourne le index-ième patch du maillage.
virtual NodeDirectionMng nodeDirection(Integer idir)=0
Liste des noeuds dans la direction dir (0, 1 ou 2)
virtual void coarseZone3D(Real3 position, Real3 length)=0
Dé-raffine en 3D un bloc du maillage cartésien.
virtual void coarseZone2D(Real2 position, Real2 length)=0
Dé-raffine en 2D un bloc du maillage cartésien.
virtual void coarseZone(const AMRZonePosition &position)=0
Dé-raffine un bloc du maillage cartésien.
virtual Ref< CartesianMeshCoarsening > createCartesianMeshCoarsening()=0
Créé une instance pour gérer le déraffinement du maillage.
virtual NodeDirectionMng nodeDirection(eMeshDirection dir)=0
Liste des noeuds dans la direction dir.
virtual void computeDirections()=0
Calcule les infos pour les accès par direction.
virtual Int32 nbPatch() const =0
Nombre de patchs du maillage.
virtual void checkValid() const =0
Effectue des vérifications sur la validité de l'instance.
virtual Integer reduceNbGhostLayers(Integer level, Integer target_nb_ghost_layers)=0
Méthode permettant de supprimer une ou plusieurs couches de mailles fantômes sur un niveau de raffine...
Interface du gestionnaire de traces.
Classe de compatibilité pour contenir un MeshHandle ou un IMesh*.
Definition MeshHandle.h:194
Infos sur les noeuds d'une direction spécifique X,Y ou Z d'un maillage structuré.
Classe gérant un vecteur de réel de dimension 2.
Definition Real2.h:121
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Référence à une instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
eMeshDirection
Type de la direction pour un maillage structuré
ICartesianMesh * arcaneCreateCartesianMesh(IMesh *mesh)
std::int32_t Int32
Type entier signé sur 32 bits.