Arcane  v4.1.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
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.
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 d'un maillage.
Definition ItemTypeMng.h:65
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:111
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:482
ConstArrayView< ItemInternal * > ItemInternalList
Type de la liste interne des entités.
Definition ItemTypes.h:466
eMeshEventType
Evènements générés par IMesh.
Definition MeshEvents.h:30
SharedMeshVariableScalarRefT< Node, Real3 > SharedVariableNodeReal3
Grandeur au noeud de type coordonnées.
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.