Arcane  v3.14.10.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;
31class MeshItemInternalList;
32class IParticleExchanger;
33class XmlNode;
34class IMeshUtilities;
35class IMeshModifier;
36class IMeshMng;
37class Properties;
38class IMeshPartitionConstraintMng;
39class IExtraGhostCellsBuilder;
40class IUserData;
41class IUserDataList;
42class IGhostLayerMng;
43class IMeshChecker;
44class IMeshCompactMng;
45class MeshPartInfo;
46class IItemFamilyNetwork;
47class MeshHandle;
48class IVariableMng;
49class ItemTypeMng;
50class IMeshUniqueIdMng;
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")
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
168
171
172 public:
173
174 virtual MeshItemInternalList* meshItemInternalList() =0;
175
176 public:
177
178 virtual void updateGhostLayers(bool remove_old_ghost) =0;
184
187
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
215
218
222
225
226 public:
227
230
233
234 public:
235
238
239 public:
240
248
250
256
263
270
273
277
278 public:
279
288 virtual bool isPrimaryMesh() const =0;
289
297
298 public:
299
302
305
306 public:
307
310
313
316
319
322
325
328
330 virtual const MeshKind meshKind() const =0;
331
332 public:
333
336
337 public:
338
341
347
348 public:
349
352
355
358
359 public:
360
372
373 public:
374
377};
378
379/*---------------------------------------------------------------------------*/
380/*---------------------------------------------------------------------------*/
381
382} // End namespace Arcane
383
384/*---------------------------------------------------------------------------*/
385/*---------------------------------------------------------------------------*/
386
387#endif
#define ARCANE_DEPRECATED_LONG_TERM(reason)
Macro pour l'attribut 'deprecated' à long terme.
Déclarations des types généraux de Arcane.
Classe de base d'un handler d'évènement.
Definition Event.h:157
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 ISubDomain * subDomain()=0
Sous-domaine associé
virtual CellGroup allActiveCells()=0
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 du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface d'une liste qui gère des données utilisateurs.
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
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Arguments des évènements sur le maillage.
Definition MeshEvents.h:43
Tableaux d'indirection sur les entités d'un maillage.
Caractéristiques d'un maillage.
Definition MeshKind.h:59
Informations un maillage partitionné.
Liste de propriétés.
Definition Properties.h:64
Noeud d'un arbre DOM.
Definition XmlNode.h:51
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eMeshEventType
Evènements générés par IMesh.
Definition MeshEvents.h:30
eItemKind
Genre d'entité de maillage.
InternalConnectivityPolicy
Politique d'utilisation des connectivités.
Definition ItemTypes.h:516