Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ModuleMaster.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/* ModuleMaster.h (C) 2000-2012 */
9/* */
10/* Module maître. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MODULEMASTER_H
13#define ARCANE_MODULEMASTER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/VersionInfo.h"
18
19#include "arcane/IModuleMaster.h"
20#include "arcane/AbstractModule.h"
21#include "arcane/VariableTypedef.h"
22#include "arcane/CommonVariables.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27ARCANE_BEGIN_NAMESPACE
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32class CaseOptionsMain;
33class ITimeLoopService;
34
35/*---------------------------------------------------------------------------*/
36/*---------------------------------------------------------------------------*/
44class ARCANE_CORE_EXPORT ModuleMaster
45: public AbstractModule
46, public CommonVariables
47, public IModuleMaster
48{
49 public:
50
53
55 virtual ~ModuleMaster();
56
57 public:
58
60 virtual VersionInfo versionInfo() const { return VersionInfo(1,0,0); }
61
62 public:
63
65 virtual CaseOptionsMain* caseoptions() { return m_case_options_main; }
66
68 virtual IModule* toModule() { return this; }
69
71 virtual CommonVariables* commonVariables() { return this; }
72
74
76 virtual void dumpStandardCurves();
77
79
85 void timeLoopBegin();
86
88
93 void timeLoopEnd();
94
96 void masterInit();
97
99
100 void masterStartInit();
101
103 void masterContinueInit();
104
105 protected:
106
108 // nb: IFPEN a une notion d'évènement. On peut connaître le prochain
109 // temps et pas de temps. Si on applique l'incrémentation par défaut,
110 // on a des erreurs d'arrondi...
111 virtual void timeIncrementation();
112
114 // nb: IFPEN souhaite des affichages paramétrables par application
115 virtual void timeStepInformation();
116
117 void _masterBeginLoop();
118 void _masterEndLoop();
119 void _masterStartInit();
120 void _masterContinueInit();
121 void _masterLoopExit();
122 void _masterMeshChanged();
123 void _masterRestore();
124
125 protected:
126
129
131 Integer m_nb_loop;
132
135
138
141
144
145 Real m_thm_mem_used;
146 Real m_thm_diff_cpu;
147 Real m_thm_global_cpu_time;
148 Real m_thm_diff_elapsed;
149 Real m_thm_global_elapsed_time;
150 Real m_thm_global_time;
151 bool m_has_thm_dump_at_iteration;
152
153 private:
154
155 void _dumpTimeInfo();
156};
157
158/*---------------------------------------------------------------------------*/
159/*---------------------------------------------------------------------------*/
160
161ARCANE_END_NAMESPACE
162
163/*---------------------------------------------------------------------------*/
164/*---------------------------------------------------------------------------*/
165
166#endif
167
Classe représentant un module.
Variables communes d'un cas.
Interface du module principal.
virtual void dumpStandardCurves()=0
Sort les courbes classiques.
virtual void addTimeLoopService(ITimeLoopService *tls)=0
Ajoute le service de boucle en temps.
Interface d'un module.
Definition IModule.h:39
Interface d'un service opérant lors de la boucle en temps.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Informations pour construire un module.
Module principal.
virtual IModule * toModule()
Conversion en IModule.
CaseOptionsMain * m_case_options_main
Instance des options du module.
bool m_is_first_loop
Indique si on est dans la première itération de l'exécution.
Real m_old_cpu_time
Valeur du temps CPU à la derniere itération.
Real m_old_elapsed_time
Valeur du temps horloge à la derniere itération.
virtual CommonVariables * commonVariables()
Accès aux variables 'communes' partagées entre tout service et module.
virtual CaseOptionsMain * caseoptions()
Accès aux options du module.
UniqueArray< ITimeLoopService * > m_timeloop_services
Liste des serviecs de boucle en temps.
Integer m_nb_loop
Nombre de boucles de calcul effectuées.
virtual VersionInfo versionInfo() const
Version du module.
Informations sur une version.
Definition VersionInfo.h:46