Arcane  v3.16.0.0
Documentation développeur
Tout Classes Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Amis Macros Groupes Pages Concepts
IMesh.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/* IMesh.h (C) 2000-2024 */
9/* */
10/* Interface d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMESH_H
13#define ARCANE_CORE_IMESH_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19#include "arcane/core/IMeshBase.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class IParallelMng;
33class XmlNode;
34class IMeshUtilities;
35class IMeshModifier;
36class IMeshMng;
37class Properties;
40class IUserData;
41class IUserDataList;
42class IGhostLayerMng;
43class IMeshChecker;
44class IMeshCompactMng;
45class MeshPartInfo;
47class MeshHandle;
48class IVariableMng;
49class ItemTypeMng;
51class MeshEventArgs;
52enum class eMeshEventType;
53
54/*---------------------------------------------------------------------------*/
55/*---------------------------------------------------------------------------*/
56//INFO: La doc complete est dans Mesh.dox
57class IMesh
58: public IMeshBase
59{
60 public:
61
62 virtual ~IMesh() = default; //<! Libère les ressources
63
64 public:
65
66 virtual void build() =0;
67
68
70 virtual String factoryName() const =0;
71
74
77
79 virtual void checkValidMesh() =0;
80
92 virtual void checkValidMeshFull() =0;
93
100
101 public:
102
108 virtual bool isAllocated() =0;
109
117 virtual Int64 timestamp() =0;
118
119 public:
120
122 ARCANE_DEPRECATED_LONG_TERM("Y2020: Do not use this method. Try to get 'ISubDomain' from another way")
123 virtual ISubDomain* subDomain() =0;
124
125 public:
126
129
130 public:
131
133
135
139
142
144 virtual CellGroup allLevelCells(const Integer& level) =0;
145
147 virtual CellGroup ownLevelCells(const Integer& level) =0;
148
151
154
157
160
161 public:
162
165
167 virtual ItemGroup findGroup(const String& name) =0;
168
170 virtual void destroyGroups() =0;
171
172 public:
173
174 virtual MeshItemInternalList* meshItemInternalList() =0;
175
176 public:
177
178 virtual void updateGhostLayers(bool remove_old_ghost) =0;
183 ARCANE_DEPRECATED_240 virtual void serializeCells(ISerializer* buffer,Int32ConstArrayView cells_local_id) =0;
184
186 virtual void prepareForDump() =0;
187
189 virtual void initializeVariables(const XmlNode& init_node) =0;
190
198 virtual void setCheckLevel(Integer level) =0;
199
201 virtual Integer checkLevel() const =0;
202
204 virtual bool isDynamic() const =0;
205
207 virtual bool isAmrActivated() const =0;
208
209 public:
210
212
213
214 virtual void computeTiedInterfaces(const XmlNode& mesh_node) =0;
215
217 virtual bool hasTiedInterface() =0;
218
222
225
226 public:
227
230
232 virtual Properties* properties() =0;
233
234 public:
235
237 virtual IMeshModifier* modifier() =0;
238
239 public:
240
248
250
255 virtual void defineParentForBuild(IMesh * mesh, ItemGroup group) =0;
256
262 virtual IMesh* parentMesh() const = 0;
263
269 virtual ItemGroup parentGroup() const = 0;
270
272 virtual void addChildMesh(IMesh * sub_mesh) = 0;
273
275 virtual MeshCollection childMeshes() const = 0;
277
278 public:
279
288 virtual bool isPrimaryMesh() const =0;
289
297
298 public:
299
302
304 virtual const IUserDataList* userDataList() const =0;
305
306 public:
307
309 virtual IGhostLayerMng* ghostLayerMng() const =0;
310
313
315 virtual IMeshChecker* checker() const =0;
316
318 virtual const MeshPartInfo& meshPartInfo() const =0;
319
321 virtual bool useMeshItemFamilyDependencies() const =0;
322
325
328
330 virtual const MeshKind meshKind() const =0;
331
332 public:
333
336
337 public:
338
341
347
348 public:
349
351 virtual IMeshMng* meshMng() const =0;
352
354 virtual IVariableMng* variableMng() const =0;
355
357 virtual ItemTypeMng* itemTypeMng() const =0;
358
359 public:
360
371 virtual void computeSynchronizeInfos() =0;
372
373 public:
374
377};
378
379/*---------------------------------------------------------------------------*/
380/*---------------------------------------------------------------------------*/
381
382} // End namespace Arcane
383
384/*---------------------------------------------------------------------------*/
385/*---------------------------------------------------------------------------*/
386
387#endif
Déclarations des types généraux de Arcane.
Classe de base d'un handler d'évènement.
Definition Event.h:193
Interface d'un constructeur de mailles fantômes "extraordinaires".
Interface du gestionnaire des connectivités incrémentales indexées sur les entités.
virtual String name() const =0
Nom du maillage.
Interface de méthodes de vérification d'un maillage.
Interface du gestionnaire des compactages de familles d'un maillage.
Partie interne de IMesh.
Interface du gestionnaire des maillages.
Definition IMeshMng.h:40
Interface de modification du maillage.
Interface d'un gestionnaire de contraintes de partitionnement de maillage.
Interface d'une classe proposant des fonctions utilitaires sur maillage.
virtual void checkValidMeshFull()=0
Vérification de la validité du maillage.
virtual ItemGroup parentGroup() const =0
Groupe parent.
virtual VariableNodeReal3 & nodesCoordinates()=0
Coordonnées des noeuds.
virtual IIndexedIncrementalItemConnectivityMng * indexedConnectivityMng()=0
Interface du gestionnaire des connectivités incrémentales indexées.
virtual IParallelMng * parallelMng()=0
Gestionnaire de parallèlisme.
virtual IMeshUniqueIdMng * meshUniqueIdMng() const =0
Gestionnare de la numérotation des identifiants uniques.
virtual MeshCollection childMeshes() const =0
Liste des sous-maillages du maillage courant.
virtual IMeshChecker * checker() const =0
Interface du vérificateur.
virtual ItemInternalList itemsInternal(eItemKind)=0
Tableau interne des éléments du maillage de type type.
virtual void initializeVariables(const XmlNode &init_node)=0
Initialize les variables avec les valeurs du fichier de configuration (interne)
virtual IMeshModifier * modifier()=0
Interface de modification associée.
virtual void defineParentForBuild(IMesh *mesh, ItemGroup group)=0
Définit les maillage et groupe parents.
virtual InternalConnectivityPolicy _connectivityPolicy() const =0
Politique d'utilisation des connectivitées.
virtual FaceGroup outerActiveFaces()=0
Groupe de toutes les faces actives sur la frontière.
virtual ARCANE_DEPRECATED_240 void serializeCells(ISerializer *buffer, Int32ConstArrayView cells_local_id)=0
virtual bool useMeshItemFamilyDependencies() const =0
check if the network itemFamily dependencies is activated
virtual VariableScalarInteger connectivity()=0
Descripteur de connectivité
virtual void destroyGroups()=0
Détruit tous les groupes de toutes les familles.
virtual IMeshUtilities * utilities()=0
Interface des fonctions utilitaires associée.
virtual TiedInterfaceCollection tiedInterfaces()=0
Liste des interfaces semi-conformes.
virtual IMesh * parentMesh() const =0
Accès au maillage parent.
virtual CellGroup allLevelCells(const Integer &level)=0
Groupe de toutes les mailles de niveau level.
virtual void computeSynchronizeInfos()=0
Recalcule les informations de synchronisation.
virtual SharedVariableNodeReal3 sharedNodesCoordinates()=0
Coordonnées des noeuds.
virtual IUserDataList * userDataList()=0
Gestionnnaire de données utilisateurs associé
virtual FaceGroup innerActiveFaces()=0
Groupe de toutes les faces actives.
virtual void synchronizeGroupsAndVariables()=0
Synchronise tous les groupes et les variables du maillage.
virtual ItemGroupCollection groups()=0
Liste des groupes.
virtual ItemGroup findGroup(const String &name)=0
Retourne le groupe de nom name ou le groupe nul s'il n'y en a pas.
virtual String factoryName() const =0
Nom de la fabrique utilisée pour créer le maillage.
virtual void setCheckLevel(Integer level)=0
Positionne le niveau de vérification du maillage.
virtual IMeshInternal * _internalApi()=0
API interne à Arcane.
virtual CellGroup allActiveCells()=0
ARCANE_DEPRECATED_LONG_TERM("Y2020: Do not use this method. Try to get 'ISubDomain' from another way") virtual ISubDomain *subDomain()=0
Sous-domaine associé
virtual FaceGroup allActiveFaces()=0
Groupe de toutes les faces actives.
virtual Int64 timestamp()=0
Compteur indiquant le temps de dernière modification du maillage.
virtual EventObservable< const MeshEventArgs & > & eventObservable(eMeshEventType type)=0
Observable pour un évènement.
virtual const MeshKind meshKind() const =0
Caractéristiques du maillage.
virtual ItemTypeMng * itemTypeMng() const =0
Gestionnaire de types d'entités associé
virtual void prepareForDump()=0
Prépare l'instance en vue d'une protection.
virtual IMeshPartitionConstraintMng * partitionConstraintMng()=0
Gestionnaire des contraintes de partitionnement associées à ce maillage.
virtual CellGroup ownActiveCells()=0
Groupe de toutes les mailles actives et propres au domaine.
virtual IMeshMng * meshMng() const =0
Gestionnaire de maillage associé
virtual bool isAllocated()=0
Vrai si le maillage est allouée.
virtual CellGroup ownLevelCells(const Integer &level)=0
Groupe de toutes les mailles propres de niveau level.
virtual IPrimaryMesh * toPrimaryMesh()=0
Retourne l'instance sous la forme d'un IPrimaryMesh.
virtual IGhostLayerMng * ghostLayerMng() const =0
Gestionnare de couche fantômes associé
virtual bool isDynamic() const =0
Indique si le maillage est dynamique (peut évoluer)
virtual void checkValidMesh()=0
Vérification de la validité des structues internes de maillage (interne)
virtual Properties * properties()=0
Propriétés associées à ce maillage.
virtual FaceGroup ownActiveFaces()=0
Groupe de toutes les faces actives propres au domaine.
virtual void computeTiedInterfaces(const XmlNode &mesh_node)=0
Détermine les interfaces de semi-conformités.
virtual void addChildMesh(IMesh *sub_mesh)=0
Ajoute un sous-maillage au maillage parent.
virtual bool isPrimaryMesh() const =0
Indique si l'instance est un maillage primaire.
virtual IItemFamilyNetwork * itemFamilyNetwork()=0
Interface du réseau de familles (familles connectées)
virtual IMeshCompactMng * _compactMng()=0
virtual Integer checkLevel() const =0
Niveau actuel de vérification.
virtual IVariableMng * variableMng() const =0
Gestionnaire de variable associé
virtual bool hasTiedInterface()=0
Vrai s'il existe des interfaces semi-conformes dans le maillage.
virtual const MeshPartInfo & meshPartInfo() const =0
Informations sur les parties du maillage.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'un échangeur de particules.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface d'une liste qui gère des données utilisateurs.
Interface pour une donnée utilisateur attachée à un autre objet.
Definition IUserData.h:31
Interface du gestionnaire de variables.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Gestionnaire des types d'entités de maillage.
Definition ItemTypeMng.h:66
Arguments des évènements sur le maillage.
Definition MeshEvents.h:43
Handle sur un maillage.
Definition MeshHandle.h:47
Tableaux d'indirection sur les entités d'un maillage.
Caractéristiques d'un maillage.
Definition MeshKind.h:64
Informations un maillage partitionné.
Liste de propriétés.
Definition Properties.h:64
Chaîne de caractères unicode.
Noeud d'un arbre DOM.
Definition XmlNode.h:51
ItemGroupT< Cell > CellGroup
Groupe de mailles.
Definition ItemTypes.h:183
ItemGroupT< Face > FaceGroup
Groupe de faces.
Definition ItemTypes.h:178
MeshVariableScalarRefT< Node, Real3 > VariableNodeReal3
Grandeur au noeud de type coordonnées.
VariableRefScalarT< Integer > VariableScalarInteger
Variable scalaire de type entier.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Collection< ItemGroup > ItemGroupCollection
Collection de groupes d'éléments du maillage.
std::int64_t Int64
Type entier signé sur 64 bits.
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< ItemInternal * > ItemInternalList
Type de la liste interne des entités.
Definition ItemTypes.h:466
SharedMeshVariableScalarRefT< Node, Real3 > SharedVariableNodeReal3
Grandeur au noeud de type coordonnées.
eMeshEventType
Evènements générés par IMesh.
Definition MeshEvents.h:30
eItemKind
Genre d'entité de maillage.
Collection< IMesh * > MeshCollection
Collection de maillages.
InternalConnectivityPolicy
Politique d'utilisation des connectivités.
Definition ItemTypes.h:516
Collection< ITiedInterface * > TiedInterfaceCollection
Collection d'interfaces liées.