Arcane  v3.14.10.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-2024 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-2024 */
9/* */
10/* Interface de modification du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMESHMODIFIER_H
13#define ARCANE_IMESHMODIFIER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/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
207
209 virtual void addFaces(const MeshModifierAddFacesArgs& args);
210
230
249
259
260 virtual void removeCells(Int32ConstArrayView cells_local_id, bool update_ghost) = 0;
261
271
281
284 virtual void flagCellToCoarsen(Int32ConstArrayView cells_lids) = 0;
285 virtual void refineItems() = 0;
286 virtual void coarsenItems() = 0;
287 virtual void coarsenItemsV2(bool update_parent_flag) = 0;
288 virtual bool adapt() = 0;
289 virtual void registerCallBack(IAMRTransportFunctor* f) = 0;
290 virtual void unRegisterCallBack(IAMRTransportFunctor* f) = 0;
291 virtual void addHChildrenCells(Cell parent_cell, Integer nb_cell,
293
294 virtual void addParentCellToCell(Cell child, Cell parent) = 0;
295 virtual void addChildCellToCell(Cell parent, Cell child) = 0;
296
297 virtual void addParentFaceToFace(Face child, Face parent) = 0;
298 virtual void addChildFaceToFace(Face parent, Face child) = 0;
299
300 virtual void addParentNodeToNode(Node child, Node parent) = 0;
301 virtual void addChildNodeToNode(Node parent, Node child) = 0;
302
304 virtual void clearItems() = 0;
305
314 ARCANE_DEPRECATED_240 virtual void addCells(ISerializer* buffer) = 0;
315
327 ARCANE_DEPRECATED_240 virtual void addCells(ISerializer* buffer, Int32Array& cells_local_id) = 0;
328
334 virtual void endUpdate() = 0;
335
336 virtual void endUpdate(bool update_ghost_layer, bool remove_old_ghost) = 0; // SDC: this signature is needed @IFPEN.
337
338 public:
339
345 virtual void updateGhostLayers() = 0;
346
350 bool remove_old_ghost) = 0;
351
354
357
360
363
364 public:
365
367 virtual void mergeMeshes(ConstArrayView<IMesh*> meshes) = 0;
368
369 public:
370
373};
374
375/*---------------------------------------------------------------------------*/
376/*---------------------------------------------------------------------------*/
377
378} // End namespace Arcane
379
380/*---------------------------------------------------------------------------*/
381/*---------------------------------------------------------------------------*/
382
383#endif
Tableau d'items de types quelconques.
Maille d'un maillage.
Definition Item.h:1178
Face d'une maille.
Definition Item.h:932
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:120
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 Dom.h:204
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:638