Arcane  4.2.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ISubDomain.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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-2025 */
9/* */
10/* Interface d'un sous-domaine. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ISUBDOMAIN_H
13#define ARCANE_CORE_ISUBDOMAIN_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include "arcane/core/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/*---------------------------------------------------------------------------*/
75class ARCANE_CORE_EXPORT ISubDomain
76: public IBase
77{
78 protected:
79
80 virtual ~ISubDomain() {}
81
82 public:
83
84 virtual void destroy() =0;
85
86 public:
87
90
92 virtual ISession* session() const =0;
93
96
99
101 virtual IModuleMng* moduleMng() =0;
102
105
108
118
120 virtual IThreadMng* threadMng() =0;
121
124
127
129 virtual IIOMng* ioMng() =0;
130
132 virtual ICaseMng* caseMng() =0;
133
135 virtual ITimerMng* timerMng() const =0;
136
138 virtual ICheckpointMng* checkpointMng() const =0;
139
141 virtual IPropertyMng* propertyMng() const =0;
142
144 virtual ITimeStats* timeStats() const =0;
145
147 virtual IMemoryInfo* memoryInfo() const =0;
148
151
154
156 virtual IMeshMng* meshMng() const =0;
157
159 virtual IModuleMaster* moduleMaster() const =0;
160
162 virtual const IConfiguration* configuration() const =0;
163
166
169
170 public:
171
173 virtual Int32 subDomainId() const =0;
174
176 virtual Int32 nbSubDomain() const =0;
177
179 virtual void readCaseMeshes() =0;
180
188 virtual void setIsContinue() =0;
189
191 virtual bool isContinue() const =0;
192
201 virtual void allocateMeshes() =0;
202
211 virtual void readOrReloadMeshes() =0;
212
219
224 virtual void doInitMeshPartition() =0;
225
227 ARCCORE_DEPRECATED_2020("Use meshMng()->meshFactoryMng() to create and add mesh")
228 virtual void addMesh(IMesh* mesh) =0;
229
231 virtual ConstArrayView<IMesh*> meshes() const =0;
232
238 virtual ARCANE_DEPRECATED_2018 void doInitModules() =0;
239
241 virtual void doExitModules() =0;
242
244 virtual void dumpInfo(std::ostream&) =0;
245
253 virtual IMesh* defaultMesh() =0;
254
261 virtual const MeshHandle& defaultMeshHandle() =0;
262
263 virtual ARCANE_DEPRECATED IMesh* mesh() =0;
264
271 ARCCORE_DEPRECATED_2019("Use meshMng()->findMeshHandle() instead")
272 virtual IMesh* findMesh(const String& name,bool throw_exception=true) =0;
273
275 virtual bool isInitialized() const =0;
276
281 virtual void setIsInitialized() =0;
282
284 virtual const ApplicationInfo& applicationInfo() const =0;
285
288
294 virtual void checkId(const String& where,const String& id) =0;
295
297 virtual const String& caseFullFileName() const =0;
298
300 virtual const String& caseName() const =0;
301
303 virtual void fillCaseBytes(ByteArray& bytes) const =0;
304
309 virtual void setCaseName(const String& name) =0;
310
323 virtual void setInitialPartitioner(IInitialPartitioner* partitioner) =0;
324
326 virtual const CaseOptionsMain* caseOptionsMain() const =0;
327
329 virtual const IDirectory& exportDirectory() const =0;
330
337 virtual void setExportDirectory(const IDirectory& dir) =0;
338
340 virtual const IDirectory& storageDirectory() const =0;
341
349 virtual void setStorageDirectory(const IDirectory& dir) =0;
350
352 virtual const IDirectory& listingDirectory() const =0;
353
360 virtual void setListingDirectory(const IDirectory& dir) =0;
361
363 virtual const CommonVariables& commonVariables() const =0;
364
371 virtual void dumpInternalInfos(XmlNode& elem) =0;
372
377 virtual Integer ARCANE_DEPRECATED meshDimension() const =0;
378
383
386
394};
395
396/*---------------------------------------------------------------------------*/
397/*---------------------------------------------------------------------------*/
398
399} // End namespace Arcane
400
401/*---------------------------------------------------------------------------*/
402/*---------------------------------------------------------------------------*/
403
404#endif
405
Déclarations des types généraux de Arcane.
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:31
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.
Interface du gestionnaire de point d'entrée.
Interface du gestionnaire des entrées sorties.
Definition IIOMng.h:36
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 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:37
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:77
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:80
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:49
Interface du gestionnaire de variables.
Handle sur un maillage.
Definition MeshHandle.h:48
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:115
std::int32_t Int32
Type entier signé sur 32 bits.