Arcane  v3.16.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IMeshModifier.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/* IMeshModifier.h (C) 2000-2025 */
9/* */
10/* Interface de modification du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMESHMODIFIER_H
13#define ARCANE_CORE_IMESHMODIFIER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/core/Item.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class IMesh;
34class IMeshModifier;
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
56class MeshModifierAddCellsArgs
57{
58 public:
59
60 MeshModifierAddCellsArgs(Integer nb_cell, Int64ConstArrayView cell_infos)
61 : m_nb_cell(nb_cell)
62 , m_cell_infos(cell_infos)
63 {}
64
65 MeshModifierAddCellsArgs(Integer nb_cell, Int64ConstArrayView cell_infos,
66 Int32ArrayView cell_lids)
67 : MeshModifierAddCellsArgs(nb_cell, cell_infos)
68 {
69 m_cell_lids = cell_lids;
70 }
71
72 public:
73
74 Int32 nbCell() const { return m_nb_cell; }
75 Int64ConstArrayView cellInfos() const { return m_cell_infos; }
76 Int32ArrayView cellLocalIds() const { return m_cell_lids; }
77
79 void setAllowBuildFaces(bool v) { m_is_allow_build_faces = v; }
80 bool isAllowBuildFaces() const { return m_is_allow_build_faces; }
81
82 private:
83
84 Int32 m_nb_cell = 0;
85 Int64ConstArrayView m_cell_infos;
88 bool m_is_allow_build_faces = true;
89};
90
91/*---------------------------------------------------------------------------*/
92/*---------------------------------------------------------------------------*/
96class MeshModifierAddFacesArgs
97{
98 public:
99
100 MeshModifierAddFacesArgs(Int32 nb_face, Int64ConstArrayView face_infos)
101 : m_nb_face(nb_face)
102 , m_face_infos(face_infos)
103 {}
104
105 MeshModifierAddFacesArgs(Int32 nb_face, Int64ConstArrayView face_infos,
106 Int32ArrayView face_lids)
107 : MeshModifierAddFacesArgs(nb_face, face_infos)
108 {
109 m_face_lids = face_lids;
110 }
111
112 public:
113
114 Int32 nbFace() const { return m_nb_face; }
115 Int64ConstArrayView faceInfos() const { return m_face_infos; }
116 Int32ArrayView faceLocalIds() const { return m_face_lids; }
117
118 private:
119
120 Int32 m_nb_face = 0;
121 Int64ConstArrayView m_face_infos;
124};
125
126/*---------------------------------------------------------------------------*/
127/*---------------------------------------------------------------------------*/
142class ARCANE_CORE_EXPORT IMeshModifier
143{
144 public:
145
146 virtual ~IMeshModifier() {} //<! Libère les ressources
147
148 public:
149
150 virtual void build() = 0;
151
152 public:
153
155 virtual IMesh* mesh() = 0;
156
157 public:
158
171 virtual void setDynamic(bool v) = 0;
172
190 virtual void addCells(Integer nb_cell, Int64ConstArrayView cell_infos,
191 Int32ArrayView cells_lid = Int32ArrayView()) = 0;
192
194 virtual void addCells(const MeshModifierAddCellsArgs& args);
195
201 virtual void addFaces(Integer nb_face, Int64ConstArrayView face_infos,
202 Int32ArrayView face_lids = Int32ArrayView()) = 0;
203
218 virtual void addFaces(const MeshModifierAddFacesArgs& args);
219
237 virtual void addEdges(Integer nb_edge, Int64ConstArrayView edge_infos,
238 Int32ArrayView edge_lids = Int32ArrayView()) = 0;
239
256 virtual void addNodes(Int64ConstArrayView nodes_uid,
257 Int32ArrayView nodes_lid = Int32ArrayView()) = 0;
258
267 virtual void removeCells(Int32ConstArrayView cells_local_id) = 0;
268
269 virtual void removeCells(Int32ConstArrayView cells_local_id, bool update_ghost) = 0;
270
279 virtual void detachCells(Int32ConstArrayView cells_local_id) = 0;
280
289 virtual void removeDetachedCells(Int32ConstArrayView cells_local_id) = 0;
290
292 virtual void flagCellToRefine(Int32ConstArrayView cells_lids) = 0;
293 virtual void flagCellToCoarsen(Int32ConstArrayView cells_lids) = 0;
294 virtual void refineItems() = 0;
295 virtual void coarsenItems() = 0;
296 virtual void coarsenItemsV2(bool update_parent_flag) = 0;
297 virtual bool adapt() = 0;
298 virtual void registerCallBack(IAMRTransportFunctor* f) = 0;
299 virtual void unRegisterCallBack(IAMRTransportFunctor* f) = 0;
300 virtual void addHChildrenCells(Cell parent_cell, Integer nb_cell,
301 Int64ConstArrayView cells_infos, Int32ArrayView cells_lid = Int32ArrayView()) = 0;
302
303 virtual void addParentCellToCell(Cell child, Cell parent) = 0;
304 virtual void addChildCellToCell(Cell parent, Cell child) = 0;
305
306 virtual void addParentFaceToFace(Face child, Face parent) = 0;
307 virtual void addChildFaceToFace(Face parent, Face child) = 0;
308
309 virtual void addParentNodeToNode(Node child, Node parent) = 0;
310 virtual void addChildNodeToNode(Node parent, Node child) = 0;
311
313 virtual void clearItems() = 0;
314
323 ARCANE_DEPRECATED_240 virtual void addCells(ISerializer* buffer) = 0;
324
336 ARCANE_DEPRECATED_240 virtual void addCells(ISerializer* buffer, Int32Array& cells_local_id) = 0;
337
343 virtual void endUpdate() = 0;
344
345 virtual void endUpdate(bool update_ghost_layer, bool remove_old_ghost) = 0; // SDC: this signature is needed @IFPEN.
346
347 public:
348
354 virtual void updateGhostLayers() = 0;
355
357 virtual void updateGhostLayerFromParent(Array<Int64>& ghost_cell_to_refine,
358 Array<Int64>& ghost_cell_to_coarsen,
359 bool remove_old_ghost) = 0;
360
363
366
369
372
373 public:
374
376 virtual void mergeMeshes(ConstArrayView<IMesh*> meshes) = 0;
377
378 public:
379
382};
383
384/*---------------------------------------------------------------------------*/
385/*---------------------------------------------------------------------------*/
386
387} // End namespace Arcane
388
389/*---------------------------------------------------------------------------*/
390/*---------------------------------------------------------------------------*/
391
392#endif
Déclarations des types généraux de Arcane.
Tableau d'items de types quelconques.
Maille d'un maillage.
Definition Item.h:1205
Vue constante d'un tableau de type T.
Face d'une maille.
Definition Item.h:958
Interface d'un fonctor avec argument.
Interface d'un constructeur de mailles fantômes "extraordinaires".
Interface d'un constructeur de mailles fantômes "extraordinaires".
Partie interne de IMeshModifier.
Interface de modification du maillage.
virtual void updateGhostLayers()=0
Mise à jour de la couche fantôme.
virtual void setDynamic(bool v)=0
Positionne la propriété indiquant si le maillage peut évoluer.
virtual ARCANE_DEPRECATED_240 void addCells(ISerializer *buffer, Int32Array &cells_local_id)=0
Ajoute les mailles à partir des données contenues dans buffer.
virtual void removeCells(Int32ConstArrayView cells_local_id)=0
Supprime des mailles.
virtual void addExtraGhostParticlesBuilder(IExtraGhostParticlesBuilder *builder)=0
Ajout du algorithme d'ajout de particules fantômes "extraordinaires".
virtual void flagCellToRefine(Int32ConstArrayView cells_lids)=0
AMR.
virtual IMesh * mesh()=0
Maillage associé
virtual void addNodes(Int64ConstArrayView nodes_uid, Int32ArrayView nodes_lid=Int32ArrayView())=0
Ajoute des noeuds.
virtual void addFaces(Integer nb_face, Int64ConstArrayView face_infos, Int32ArrayView face_lids=Int32ArrayView())=0
Ajoute des faces.
virtual void removeExtraGhostParticlesBuilder(IExtraGhostParticlesBuilder *builder)=0
Supprime l'association à l'instance builder.
virtual void removeDetachedCells(Int32ConstArrayView cells_local_id)=0
Supprime les mailles détachées.
virtual IMeshModifierInternal * _modifierInternalApi()=0
API interne à Arcane.
virtual void detachCells(Int32ConstArrayView cells_local_id)=0
Détache des mailles du maillage.
virtual void addCells(Integer nb_cell, Int64ConstArrayView cell_infos, Int32ArrayView cells_lid=Int32ArrayView())=0
Ajoute des mailles.
virtual ARCANE_DEPRECATED_240 void addCells(ISerializer *buffer)=0
Ajoute les mailles à partir des données contenues dans buffer.
virtual void mergeMeshes(ConstArrayView< IMesh * > meshes)=0
Fusionne les maillages de meshes avec le maillage actuel.
virtual void endUpdate()=0
Notifie l'instance de la fin de la modification du maillage.
virtual void addExtraGhostCellsBuilder(IExtraGhostCellsBuilder *builder)=0
ajout du algorithme d'ajout de mailles fantômes "extraordinaires".
virtual void clearItems()=0
Supprime toutes les entitées de toutes les familles de ce maillage.
virtual void removeExtraGhostCellsBuilder(IExtraGhostCellsBuilder *builder)=0
Supprime l'association à l'instance builder.
virtual void updateGhostLayerFromParent(Array< Int64 > &ghost_cell_to_refine, Array< Int64 > &ghost_cell_to_coarsen, bool remove_old_ghost)=0
AMR.
virtual void addEdges(Integer nb_edge, Int64ConstArrayView edge_infos, Int32ArrayView edge_lids=Int32ArrayView())=0
Ajoute des arêtes.
Arguments pour IMeshModifier::addCells().
void setAllowBuildFaces(bool v)
Indique si on autorise la création des faces associées.
Int32ArrayView m_cell_lids
En retour, liste des localId() des mailles créées.
Arguments pour IMeshModifier::addFaces().
Int32ArrayView m_face_lids
En retour, liste des localId() des faces créées.
Noeud d'un maillage.
Definition Item.h:582
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:567
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:540
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:214
std::int32_t Int32
Type entier signé sur 32 bits.