Arcane  v3.15.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;
30class IExtraGhostCellsBuilder;
31class IExtraGhostParticlesBuilder;
32class IAMRTransportFunctor;
33class IMeshModifierInternal;
34class IMeshModifier;
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
57{
58 public:
59
61 : m_nb_cell(nb_cell)
62 , m_cell_infos(cell_infos)
63 {}
64
68 {
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/*---------------------------------------------------------------------------*/
97{
98 public:
99
101 : m_nb_face(nb_face)
102 , m_face_infos(face_infos)
103 {}
104
108 {
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/*---------------------------------------------------------------------------*/
134class ARCANE_CORE_EXPORT IMeshModifier
135{
136 public:
137
138 virtual ~IMeshModifier() {} //<! Libère les ressources
139
140 public:
141
142 virtual void build() = 0;
143
144 public:
145
147 virtual IMesh* mesh() = 0;
148
149 public:
150
163 virtual void setDynamic(bool v) = 0;
164
184
186 virtual void addCells(const MeshModifierAddCellsArgs& args);
187
195
210 virtual void addFaces(const MeshModifierAddFacesArgs& args);
211
231
250
260
261 virtual void removeCells(Int32ConstArrayView cells_local_id, bool update_ghost) = 0;
262
272
282
285 virtual void flagCellToCoarsen(Int32ConstArrayView cells_lids) = 0;
286 virtual void refineItems() = 0;
287 virtual void coarsenItems() = 0;
288 virtual void coarsenItemsV2(bool update_parent_flag) = 0;
289 virtual bool adapt() = 0;
290 virtual void registerCallBack(IAMRTransportFunctor* f) = 0;
291 virtual void unRegisterCallBack(IAMRTransportFunctor* f) = 0;
292 virtual void addHChildrenCells(Cell parent_cell, Integer nb_cell,
294
295 virtual void addParentCellToCell(Cell child, Cell parent) = 0;
296 virtual void addChildCellToCell(Cell parent, Cell child) = 0;
297
298 virtual void addParentFaceToFace(Face child, Face parent) = 0;
299 virtual void addChildFaceToFace(Face parent, Face child) = 0;
300
301 virtual void addParentNodeToNode(Node child, Node parent) = 0;
302 virtual void addChildNodeToNode(Node parent, Node child) = 0;
303
305 virtual void clearItems() = 0;
306
315 ARCANE_DEPRECATED_240 virtual void addCells(ISerializer* buffer) = 0;
316
328 ARCANE_DEPRECATED_240 virtual void addCells(ISerializer* buffer, Int32Array& cells_local_id) = 0;
329
335 virtual void endUpdate() = 0;
336
337 virtual void endUpdate(bool update_ghost_layer, bool remove_old_ghost) = 0; // SDC: this signature is needed @IFPEN.
338
339 public:
340
346 virtual void updateGhostLayers() = 0;
347
351 bool remove_old_ghost) = 0;
352
355
358
361
364
365 public:
366
368 virtual void mergeMeshes(ConstArrayView<IMesh*> meshes) = 0;
369
370 public:
371
374};
375
376/*---------------------------------------------------------------------------*/
377/*---------------------------------------------------------------------------*/
378
379} // End namespace Arcane
380
381/*---------------------------------------------------------------------------*/
382/*---------------------------------------------------------------------------*/
383
384#endif
Déclarations des types généraux de Arcane.
Tableau d'items de types quelconques.
Maille d'un maillage.
Definition Item.h:1191
Face d'une maille.
Definition Item.h:944
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.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
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:573
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:570