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
ISubDomain.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* ISubDomain.h (C) 2000-2021 */
9/* */
10/* Interface d'un sous-domaine. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ISUBDOMAIN_H
13#define ARCANE_ISUBDOMAIN_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19#include "arcane/IBase.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class IVariableMng;
31class IModuleMng;
32class IServiceMng;
33class IEntryPointMng;
34class IModule;
35class IMeshIOService;
36class IMesh;
37class IMeshMng;
38class ApplicationInfo;
39class IIOMng;
40class ITimeLoopMng;
41class CaseOptionsMain;
42class IParallelMng;
43class IThreadMng;
44class IDirectory;
45class ITimeHistoryMng;
46class ICaseMng;
47class IInterfaceMng;
48class ITimerMng;
49class ITimeStats;
50class IRessourceMng;
51class CommonVariables;
52class IMainFactory;
53class ICaseDocument;
54class XmlNode;
55class IMemoryInfo;
56class IObservable;
60class ILoadBalanceMng;
61class IModuleMaster;
62class ICheckpointMng;
63class IPropertyMng;
64class IConfiguration;
65class MeshHandle;
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
72class ARCANE_CORE_EXPORT ISubDomain
73: public IBase
74{
75 protected:
76
77 virtual ~ISubDomain() {}
78
79 public:
80
81 virtual void destroy() =0;
82
83 public:
84
87
89 virtual ISession* session() const =0;
90
93
96
98 virtual IModuleMng* moduleMng() =0;
99
102
105
115
117 virtual IThreadMng* threadMng() =0;
118
121
124
126 virtual IIOMng* ioMng() =0;
127
129 virtual ICaseMng* caseMng() =0;
130
132 virtual ITimerMng* timerMng() const =0;
133
135 virtual ICheckpointMng* checkpointMng() const =0;
136
138 virtual IPropertyMng* propertyMng() const =0;
139
141 virtual ITimeStats* timeStats() const =0;
142
144 virtual IMemoryInfo* memoryInfo() const =0;
145
148
151
153 virtual IMeshMng* meshMng() const =0;
154
156 virtual IModuleMaster* moduleMaster() const =0;
157
159 virtual const IConfiguration* configuration() const =0;
160
163
166
167 public:
168
170 virtual Int32 subDomainId() const =0;
171
173 virtual Int32 nbSubDomain() const =0;
174
176 virtual void readCaseMeshes() =0;
177
185 virtual void setIsContinue() =0;
186
188 virtual bool isContinue() const =0;
189
198 virtual void allocateMeshes() =0;
199
208 virtual void readOrReloadMeshes() =0;
209
216
221 virtual void doInitMeshPartition() =0;
222
224 ARCCORE_DEPRECATED_2020("Use meshMng()->meshFactoryMng() to create and add mesh")
225 virtual void addMesh(IMesh* mesh) =0;
226
228 virtual ConstArrayView<IMesh*> meshes() const =0;
229
235 virtual ARCANE_DEPRECATED_2018 void doInitModules() =0;
236
238 virtual void doExitModules() =0;
239
241 virtual void dumpInfo(std::ostream&) =0;
242
250 virtual IMesh* defaultMesh() =0;
251
258 virtual const MeshHandle& defaultMeshHandle() =0;
259
260 virtual ARCANE_DEPRECATED IMesh* mesh() =0;
261
268 ARCCORE_DEPRECATED_2019("Use meshMng()->findMeshHandle() instead")
269 virtual IMesh* findMesh(const String& name,bool throw_exception=true) =0;
270
272 virtual bool isInitialized() const =0;
273
278 virtual void setIsInitialized() =0;
279
281 virtual const ApplicationInfo& applicationInfo() const =0;
282
285
291 virtual void checkId(const String& where,const String& id) =0;
292
294 virtual const String& caseFullFileName() const =0;
295
297 virtual const String& caseName() const =0;
298
300 virtual void fillCaseBytes(ByteArray& bytes) const =0;
301
306 virtual void setCaseName(const String& name) =0;
307
320 virtual void setInitialPartitioner(IInitialPartitioner* partitioner) =0;
321
323 virtual const CaseOptionsMain* caseOptionsMain() const =0;
324
326 virtual const IDirectory& exportDirectory() const =0;
327
334 virtual void setExportDirectory(const IDirectory& dir) =0;
335
337 virtual const IDirectory& storageDirectory() const =0;
338
346 virtual void setStorageDirectory(const IDirectory& dir) =0;
347
349 virtual const IDirectory& listingDirectory() const =0;
350
357 virtual void setListingDirectory(const IDirectory& dir) =0;
358
360 virtual const CommonVariables& commonVariables() const =0;
361
368 virtual void dumpInternalInfos(XmlNode& elem) =0;
369
374 virtual Integer ARCANE_DEPRECATED meshDimension() const =0;
375
380
383
391};
392
393/*---------------------------------------------------------------------------*/
394/*---------------------------------------------------------------------------*/
395
396} // End namespace Arcane
397
398/*---------------------------------------------------------------------------*/
399/*---------------------------------------------------------------------------*/
400
401#endif
402
Interface du gestionnaire des accélérateurs.
Informations sur une application.
Variables communes d'un cas.
Vue constante d'un tableau de type T.
Interface de l'application.
Interface de la classe de base des objets principaux arcane.
Definition IBase.h:38
Interface d'une classe gérant un document XML du jeu de données.
Interface du gestionnaire de cas.
Definition ICaseMng.h:56
Interface du gestionnaire des informations des protections.
Interface d'une configuration.
Interface d'un service d'exécution direct.
Interface d'une classe gérant un répertoire.
Definition IDirectory.h:31
Interface du gestionnaire de point d'entrée.
Interface du gestionnaire des entrées sorties.
Definition IIOMng.h:42
Interface d'un partitionneur initial.
Interface d'enregistrement des variables pour l'equilibrage de charge.
Manufacture des classes d'Arcane.
Interface d'un collecteur d'informations sur l'usage mémoire.
Definition IMemoryInfo.h:60
Interface du gestionnaire des maillages.
Definition IMeshMng.h:40
Interface du module principal.
Interface du gestionnaire de modules.
Definition IModuleMng.h:39
Interface d'un module.
Definition IModule.h:39
Interface d'un observable.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'un système d'unité.
Interface du gestionnaire des propriétés.
Interface d'un gestionnaire de ressource.
Interface du gestionnaire de services.
Definition IServiceMng.h:31
Interface d'une session d'exécution d'un cas.
Definition ISession.h:44
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
virtual ARCANE_DEPRECATED_2018 void doInitModules()=0
Exécution des modules d'initialisation.
virtual IModuleMng * moduleMng()=0
Retourne le gestionnaire de modules.
virtual void checkId(const String &where, const String &id)=0
Vérifie qu'un identifiant est valide.
virtual IThreadMng * threadMng()=0
Retourne le gestionnaire de thread.
virtual Int32 subDomainId() const =0
Numéro du sous-domaine associé à ce gestionnaire.
virtual const String & caseName() const =0
Nom du cas.
virtual void doExitModules()=0
Exécution des modules de fin d'exécution.
virtual IIOMng * ioMng()=0
Retourne le gestionnaire des entrées/sorties.
virtual const IDirectory & storageDirectory() const =0
Répertoire de base des exportations nécessitant un archivage.
virtual void doInitMeshPartition()=0
Applique le partitionnement de maillage de l'initialisation.
virtual const CommonVariables & commonVariables() const =0
Informations sur les variables standards.
virtual IMesh * defaultMesh()=0
Maillage par défaut.
virtual const ApplicationInfo & applicationInfo() const =0
Informations sur l'exécutable.
virtual void dumpInfo(std::ostream &)=0
Affiche des informations sur l'instance.
virtual void setStorageDirectory(const IDirectory &dir)=0
Positionne le chemin de sortie des exportations nécessitant un archivage.
virtual IMemoryInfo * memoryInfo() const =0
Gestionnaire d'informations mémoire.
virtual ConstArrayView< IMesh * > meshes() const =0
Listes des maillages du sous-domaine.
virtual Integer ARCANE_DEPRECATED meshDimension() const =0
Dimension du maillage (1D, 2D ou 3D).
virtual void dumpInternalInfos(XmlNode &elem)=0
Sort les informations internes de l'architecture. Les informations sont stockées dans un arbre XML ay...
virtual ICheckpointMng * checkpointMng() const =0
Gestionnaire de protections.
virtual ICaseDocument * caseDocument()=0
Document XML du cas.
virtual ITimeStats * timeStats() const =0
Statistiques des temps d'exécution.
virtual void setListingDirectory(const IDirectory &dir)=0
Positionne le chemin de sortie des infos listing.
virtual ~ISubDomain()
Libère les ressources.
Definition ISubDomain.h:77
virtual IApplication * application()=0
Application.
virtual IConfiguration * configuration()=0
Configuration associée.
virtual void fillCaseBytes(ByteArray &bytes) const =0
Remplit bytes avec le contenue du jeu de données.
virtual IPropertyMng * propertyMng() const =0
Gestionnaire de propriétés.
virtual IParallelMng * parallelMng()=0
Retourne le gestionnaire de parallélisme.
virtual const IConfiguration * configuration() const =0
Configuration associée.
virtual IMeshMng * meshMng() const =0
Retourne le gestionnaire de maillage.
virtual ISession * session() const =0
Session.
virtual const IDirectory & listingDirectory() const =0
Répertoire de base des listings (logs, info exécution).
virtual void setIsInitialized()=0
Indique que le sous-domaine est initialié.
virtual bool isContinue() const =0
Vrai si on effectue une reprise, faux sinon.
virtual const String & caseFullFileName() const =0
Chemin complet du fichier contenant le jeu de données.
virtual IDirectExecution * directExecution() const =0
Service d'exécution directe (ou null)
virtual void setDirectExecution(IDirectExecution *v)=0
Positionne le service d'exécution directe.
virtual ITimeLoopMng * timeLoopMng()=0
Retourne le gestionnaire de la boucle en temps.
virtual void setExportDirectory(const IDirectory &dir)=0
Positionne le chemin de sortie des exportations (protections et reprises)
virtual void initializeMeshVariablesFromCaseFile()=0
Initialise les variables dont les valeurs sont spécifiées dans le jeu de données.
virtual ITimeHistoryMng * timeHistoryMng()=0
Retourne le gestionnaire d'historique.
virtual Int32 nbSubDomain() const =0
Nombre total de sous-domaines.
virtual IMesh * findMesh(const String &name, bool throw_exception=true)=0
Recherche le maillage de nom name.
virtual const CaseOptionsMain * caseOptionsMain() const =0
Options générales du jeu de donnée.
virtual const IDirectory & exportDirectory() const =0
Répertoire de base des exportations.
virtual IModuleMaster * moduleMaster() const =0
Interface du module maître.
virtual IVariableMng * variableMng()=0
Retourne le gestionnaire de variables.
virtual ITimerMng * timerMng() const =0
Retourne le gestionnaire de timers.
virtual void readOrReloadMeshes()=0
Lit ou relit les maillages.
virtual void setCaseName(const String &name)=0
Positionne le nom du cas.
virtual IObservable * onDestroyObservable()=0
Notification avant destruction du sous-domaine.
virtual void readCaseMeshes()=0
Lit les informations de maillage du jeu de données.
virtual IMainFactory * mainFactory()=0
Manufacture principale.
virtual bool isInitialized() const =0
Indique si la session a été initialisée.
virtual void setInitialPartitioner(IInitialPartitioner *partitioner)=0
Positionne le partitionneur initial.
virtual void allocateMeshes()=0
Alloue les instances.
virtual IEntryPointMng * entryPointMng()=0
Retourne le gestionnaire de points d'entrée.
virtual IPhysicalUnitSystem * physicalUnitSystem()=0
Système d'unité du sous-domaine.
virtual const MeshHandle & defaultMeshHandle()=0
Handle sur le maillage par défaut.
virtual void addMesh(IMesh *mesh)=0
Ajoute un maillage au sous-domaine.
virtual ICaseMng * caseMng()=0
Retourne le gestionnaire du jeu de données.
virtual void setIsContinue()=0
Positionne un flag indiquant qu'on effectue une reprise.
virtual IParallelMng * allReplicaParallelMng() const =0
Retourne le gestionnaire de parallélisme pour tous les réplicats.
virtual ILoadBalanceMng * loadBalanceMng()=0
Retourne le gestionnaire d'équilibrage de charge.
virtual IAcceleratorMng * acceleratorMng()=0
Gestionnaire de l'accélérateur associé
Interface d'un gestionnaire de thread.
Definition IThreadMng.h:30
Classe gérant un historique de valeurs.
Interface du gestionnaire de la boucle en temps.
Interface gérant les statistiques sur les temps d'exécution.
Definition ITimeStats.h:43
Interface d'un gestionnaire de timer.
Definition ITimerMng.h:53
Interface du gestionnaire de variables.
Handle sur un maillage.
Definition MeshHandle.h:47
Chaîne de caractères unicode.
Noeud d'un arbre DOM.
Definition XmlNode.h:51
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
Array< Byte > ByteArray
Tableau dynamique à une dimension de caractères.
Definition UtilsTypes.h:208
std::int32_t Int32
Type entier signé sur 32 bits.