Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::TimeLoopMng

Gestionnaire de la boucle en temps. Plus de détails...

+ Graphe d'héritage de Arcane::TimeLoopMng:
+ Graphe de collaboration de Arcane::TimeLoopMng:

Classes

struct  ModuleState
 

Types publics

enum  eVerifType {
  VerifNone , VerifWrite , VerifRead , VerifSync ,
  VerifSameReplica
}
 
typedef std::map< String, ModuleStateModuleStateMap
 Liste des états des modules.
 
typedef std::map< String, ITimeLoop * > TimeLoopMap
 Liste de boucles en temps.
 
typedef std::map< String, IModuleFactoryInfo * > ModuleFactoryMap
 Liste des fabriques des modules indéxés par leur nom.
 

Fonctions membres publiques

 TimeLoopMng (ISubDomain *sd)
 
void build () override
 
ISubDomainsubDomain () const override
 < Retourne le gestionnaire du sous-domaine
 
void execExitEntryPoints () override
 Exécute les points d'entrée de terminaison.
 
void execBuildEntryPoints () override
 Exécute les points d'entrée de construction.
 
void execInitEntryPoints (bool is_continue) override
 Exécute les points d'entrée d'initialisation.
 
void stopComputeLoop (bool is_final_time, bool has_error) override
 Indique que la boucle de calcul doit s'interrompre.
 
bool finalTimeReached () const override
 Retourne true si le temps final est atteint.
 
Real cpuTimeUsed () const override
 Retourne le temps CPU utilisé en secondes.
 
EntryPointCollection loopEntryPoints () override
 Retourne la liste des points d'entrée de type 'ComputeLoop' de la boucle en temps.
 
EntryPointCollection usedTimeLoopEntryPoints () override
 Liste de tous les points d'entrée pour la boucle en temps actuelle.
 
void registerTimeLoop (ITimeLoop *timeloop) override
 Enregistrement et choix de la boucle en temps.
 
void setUsedTimeLoop (const String &name) override
 Positionne la boucle en temps à exécuter. Sélectionne la boucle en temps de nom name comme celle qui sera exécutée. Cette méthode effectue les opérations suivantes:
 
ITimeLoopusedTimeLoop () const override
 Retourne la boucle en temps utilisée.
 
void doExecNextEntryPoint (bool &is_last) override
 
IEntryPointnextEntryPoint () override
 Retourne la fonction suivante à appeler.
 
IEntryPointcurrentEntryPoint () override
 Retourne le point d'entrée en cours d'exécution ou 0 s'il n'y en a pas.
 
int doOneIteration () override
 Lance l'exécution d'une itération de la boucle de calcul.
 
void setBackwardMng (IBackwardMng *backward_mng) override
 
IBackwardMnggetBackwardMng () const override
 
void goBackward () override
 Effectue un retour arrière.
 
bool isDoingBackward () override
 Vrai si on est actuellement dans un retour-arrière.
 
void setBackwardSavePeriod (Integer n) override
 Positionne la période entre deux sauvegarde pour le retour arrière. Si cette valeur est nulle, le retour arrière est désactivé.
 
void setVerificationActive (bool is_active) override
 Positionne l'état du mode de vérification.
 
void doVerification (const String &name) override
 Effectue une vérification.
 
void registerActionMeshPartition (IMeshPartitionerBase *mesh_partitioner) override
 Programme un repartitionnement du maillage avec l'outil de partition mesh_partitioner.
 
void timeLoopsName (StringCollection &names) const override
 Retourne dans names la liste des noms des boucles en temps.
 
void timeLoops (TimeLoopCollection &time_loops) const override
 Retourne dans time_loops la liste des boucles en temps.
 
ITimeLoopcreateTimeLoop (const String &name) override
 Crée une boucle en temps de nom name.
 
int doComputeLoop (Integer max_loop) override
 Exécute la boucle de calcul.
 
Integer nbLoop () const override
 Nombre de boucles de calcul (ComputeLoop) effectuées.
 
void setStopReason (eTimeLoopStopReason reason) override
 Positionne la raison pour laquelle on arrête le code.
 
eTimeLoopStopReason stopReason () const override
 Raison pour laquelle on arrête le code.
 
void execRestoreEntryPoints ()
 
void execOnMeshChangedEntryPoints () override
 Exécute les points d'entrée après rééquilibrage.
 
void execOnMeshRefinementEntryPoints () override
 Exécute les points d'entrée après raffinement.
 
ITraceMngtraceMng ()
 
IObservableobservable (eTimeLoopEventType type) override
 Observable sur l'instance.
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 
- Fonctions membres publiques hérités de Arcane::ITimeLoopMng
virtual ~ITimeLoopMng ()
 Libère les ressources.
 

Fonctions membres protégées

void _addExecuteEntryPoint (IEntryPoint *)
 Ajoute un point d'entrée à exécuter.
 
bool _createModule (const String &module_name)
 Crée un module à partir de son nom.
 
void _processEntryPoints (EntryPointList &entry_points, const TimeLoopEntryPointInfoCollection &entry_points_info, const char *where)
 Ajoute à la liste entry_points les points d'entrée proposés dans entry_points_info.
 
void _fillModuleStateMap (ITimeLoop *time_loop)
 
- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Fonctions membres protégées statiques

static void _extractModuleAndEntryPointName (const String &timeloop_call_name, String &module_name, String &entry_point_name)
 

Fonctions membres privées

void _execOneEntryPoint (IEntryPoint *ic, Integer index_value=0, bool do_verif=false)
 
void _dumpTimeInfos (JSONWriter &json_writer)
 
void _resetTimer () const
 
void _checkVerif (const String &entry_point_name, Integer index, bool do_verif)
 
void _checkVerifSameOnAllReplica (const String &entry_point_name)
 
void _createOwnDefaultBackwardMng ()
 
void _doMeshPartition ()
 Effectue un repartitionnement des maillages.
 
void _fillModuleFactoryMap ()
 Remplit m_module_factory_map avec la liste des fabriques disponibles.
 
void _createSingletonServices (IServiceLoader *service_loader)
 
void _callSpecificEntryPoint ()
 

Attributs privés

ISubDomainm_sub_domain
 Gestionnaire du sous-domaine.
 
IEntryPointMngm_entry_point_mng
 Gestionnaire de points d'entrée.
 
ModuleList m_list_execute_module
 Liste des modules à éxécuter.
 
EntryPointList m_build_entry_points
 Liste des points d'entrée à exécuter lors de la construction.
 
EntryPointList m_loop_entry_points
 Liste des points d'entrée à exécuter.
 
EntryPointList m_init_entry_points
 Liste des points d'entrée à exécuter à l'initialisation.
 
EntryPointList m_exit_entry_points
 Liste des points d'entrée à exécuter à la terminaison.
 
EntryPointList m_restore_entry_points
 Liste des points d'entrée à exécuter lors d'un retour arrière.
 
EntryPointList m_on_mesh_changed_entry_points
 Liste des points d'entrée à exécuter après un changement de maillage.
 
EntryPointList m_on_mesh_refinement_entry_points
 Liste des points d'entrée à exécuter après un raffinement.
 
EntryPointList m_used_time_loop_entry_points
 Liste de tous les points d'entrée de la boucle en temps utilisée.
 
TimeLoopMap m_time_loop_list
 Liste des boucles en temps.
 
ITimeLoopm_default_time_loop
 Boucle en temps par défaut.
 
ITimeLoopm_used_time_loop
 Boucle en temps utilisée.
 
IEntryPointm_current_entry_point_ptr
 Point d'entrée en cours d'exécution.
 
bool m_stop_time_loop
 
bool m_stop_has_error
 
bool m_final_time_reached
 
Integer m_current_entry_point
 Prochain point d'entrée à exécuter.
 
eVerifType m_verif_type
 Type de vérifications.
 
bool m_verif_same_parallel
 
String m_verif_path
 Répertoire de sauvegarde/lecture des verifs.
 
bool m_verification_active
 
bool m_verification_at_entry_point
 Si vrai, effectue vérifications à chaque point d'entrée, sinon uniquement en fin d'itération.
 
bool m_verification_only_at_exit = false
 
IBackwardMngm_backward_mng
 Gestionnaire du retour-arrière;.
 
bool m_my_own_backward_mng
 
ModuleStateMap m_module_state_list
 
ModuleFactoryMap m_module_factory_map
 Etat de tous les modules référencés.
 
ModuleFactoryMap m_lang_module_factory_map
 Liste des fabriques des modules.
 
Ref< IVerifierServicem_verifier_service
 Liste des fabriques des modules dans la langue du JDD.
 
UniqueArray< IMeshPartitionerBase * > m_mesh_partitioner
 
String m_message_class_name
 
Integer m_alarm_timer_value
 
Integer m_nb_loop
 
ObservablePool< eTimeLoopEventType > m_observables
 
eTimeLoopStopReason m_stop_reason
 
Ref< IMessagePassingProfilingServicem_msg_pass_prof_srv
 
String m_specific_entry_point_name
 Pour test, point d'entrée spécifique à appeler.
 

Description détaillée

Gestionnaire de la boucle en temps.

Définition à la ligne 96 du fichier TimeLoopMng.cc.

Documentation des définitions de type membres

◆ ModuleFactoryMap

Liste des fabriques des modules indéxés par leur nom.

Définition à la ligne 125 du fichier TimeLoopMng.cc.

◆ ModuleStateMap

Liste des états des modules.

Définition à la ligne 121 du fichier TimeLoopMng.cc.

◆ TimeLoopMap

Liste de boucles en temps.

Définition à la ligne 123 du fichier TimeLoopMng.cc.

Documentation des énumérations membres

◆ eVerifType

Valeurs énumérées
VerifNone 

Indique qu'on ne fait pas de vérifications.

VerifWrite 

Indique qu'on génère des valeurs pour vérifier.

VerifRead 

Indique qu'on relit et vérifie des valeurs.

VerifSameReplica 

Vérifie que les variables sont synchronisées.

Vérifie que les variables ont les mêmes valeurs sur tous les réplica.

Définition à la ligne 111 du fichier TimeLoopMng.cc.

Documentation des constructeurs et destructeur

◆ TimeLoopMng()

Arcane::TimeLoopMng::TimeLoopMng ( ISubDomain sd)
explicit

Définition à la ligne 334 du fichier TimeLoopMng.cc.

◆ ~TimeLoopMng()

Arcane::TimeLoopMng::~TimeLoopMng ( )
override

Définition à la ligne 382 du fichier TimeLoopMng.cc.

Documentation des fonctions membres

◆ _addExecuteEntryPoint()

◆ _callSpecificEntryPoint()

void Arcane::TimeLoopMng::_callSpecificEntryPoint ( )
private

Définition à la ligne 1035 du fichier TimeLoopMng.cc.

◆ _checkVerif()

void Arcane::TimeLoopMng::_checkVerif ( const String entry_point_name,
Integer  index,
bool  do_verif 
)
private

Définition à la ligne 657 du fichier TimeLoopMng.cc.

◆ _checkVerifSameOnAllReplica()

void Arcane::TimeLoopMng::_checkVerifSameOnAllReplica ( const String entry_point_name)
private

Définition à la ligne 761 du fichier TimeLoopMng.cc.

◆ _createModule()

bool Arcane::TimeLoopMng::_createModule ( const String module_name)
protected

Crée un module à partir de son nom.

Définition à la ligne 1420 du fichier TimeLoopMng.cc.

Références Arccore::TraceAccessor::info(), et m_module_factory_map.

Référencé par setUsedTimeLoop().

◆ _createOwnDefaultBackwardMng()

void Arcane::TimeLoopMng::_createOwnDefaultBackwardMng ( )
private

Définition à la ligne 488 du fichier TimeLoopMng.cc.

◆ _createSingletonServices()

void Arcane::TimeLoopMng::_createSingletonServices ( IServiceLoader service_loader)
private

Définition à la ligne 1184 du fichier TimeLoopMng.cc.

◆ _doMeshPartition()

◆ _dumpTimeInfos()

void Arcane::TimeLoopMng::_dumpTimeInfos ( JSONWriter json_writer)
private

Définition à la ligne 1485 du fichier TimeLoopMng.cc.

◆ _execOneEntryPoint()

void Arcane::TimeLoopMng::_execOneEntryPoint ( IEntryPoint ic,
Integer  index_value = 0,
bool  do_verif = false 
)
private

Définition à la ligne 633 du fichier TimeLoopMng.cc.

◆ _extractModuleAndEntryPointName()

void Arcane::TimeLoopMng::_extractModuleAndEntryPointName ( const String timeloop_call_name,
String module_name,
String entry_point_name 
)
staticprotected

Retourne le nom du module et le nom du point d'entrée à partir du nom référencé dans la boucle en temps, de type ModuleName.EntryPointName.

Définition à la ligne 1360 du fichier TimeLoopMng.cc.

Références ARCANE_FATAL.

Référencé par _processEntryPoints().

◆ _fillModuleFactoryMap()

void Arcane::TimeLoopMng::_fillModuleFactoryMap ( )
private

Remplit m_module_factory_map avec la liste des fabriques disponibles.

Définition à la ligne 1382 du fichier TimeLoopMng.cc.

Références ARCANE_FATAL, Arcane::ISubDomain::caseMng(), Arccore::TraceAccessor::info(), m_lang_module_factory_map, m_module_factory_map, m_sub_domain, subDomain(), et Arccore::TraceAccessor::warning().

Référencé par setUsedTimeLoop().

◆ _fillModuleStateMap()

void Arcane::TimeLoopMng::_fillModuleStateMap ( ITimeLoop time_loop)
protected

Renseigne la liste d'état des modules en fonction des informations contenues dans les éléments <modules> de la boucle en temps et du fichier de données.

Définition à la ligne 1281 du fichier TimeLoopMng.cc.

Références ARCANE_FATAL, Arcane::ISubDomain::caseMng(), m_lang_module_factory_map, m_sub_domain, et Arccore::TraceAccessor::pwarning().

Référencé par setUsedTimeLoop().

◆ _processEntryPoints()

void Arcane::TimeLoopMng::_processEntryPoints ( EntryPointList entry_points,
const TimeLoopEntryPointInfoCollection entry_points_info,
const char where 
)
protected

◆ _resetTimer()

void Arcane::TimeLoopMng::_resetTimer ( ) const
private

Définition à la ligne 1910 du fichier TimeLoopMng.cc.

◆ build()

void Arcane::TimeLoopMng::build ( )
overridevirtual

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 397 du fichier TimeLoopMng.cc.

◆ cpuTimeUsed()

Real Arcane::TimeLoopMng::cpuTimeUsed ( ) const
overridevirtual

Retourne le temps CPU utilisé en secondes.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1657 du fichier TimeLoopMng.cc.

Références Arcane::IEntryPointMng::entryPoints(), et m_entry_point_mng.

◆ createTimeLoop()

ITimeLoop * Arcane::TimeLoopMng::createTimeLoop ( const String name)
overridevirtual

Crée une boucle en temps de nom name.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1718 du fichier TimeLoopMng.cc.

Références Arcane::ISubDomain::application(), et m_sub_domain.

◆ currentEntryPoint()

IEntryPoint * Arcane::TimeLoopMng::currentEntryPoint ( )
inlineoverridevirtual

Retourne le point d'entrée en cours d'exécution ou 0 s'il n'y en a pas.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 156 du fichier TimeLoopMng.cc.

Références m_current_entry_point_ptr.

◆ doComputeLoop()

int Arcane::TimeLoopMng::doComputeLoop ( Integer  max_loop)
overridevirtual

Exécute la boucle de calcul.

La boucle de calcul est exécutée jusqu'à l'appel à la méthode stopComputeLoop() ou que le nombre de boucles effectuées est égal à max_loop si max_loop est différent de 0.

Valeurs retournées
1si le code s'arrête normalement suite au temps final atteint
2si le code s'arrête normalement suite à max_loop atteint
<0si le calcul s'arrête suite à une erreur.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1773 du fichier TimeLoopMng.cc.

Références Arcane::ISubDomain::commonVariables(), Arcane::IParallelMng::commRank(), doOneIteration(), doVerification(), Arccore::ITraceMng::flush(), Arcane::platform::getProfilingService(), Arccore::TraceAccessor::info(), m_backward_mng, m_specific_entry_point_name, Arcane::MaxIterationReached, Arccore::String::null(), Arcane::ISubDomain::parallelMng(), Arccore::TraceAccessor::pinfo(), stopComputeLoop(), subDomain(), et Arcane::ISubDomain::variableMng().

◆ doExecNextEntryPoint()

void Arcane::TimeLoopMng::doExecNextEntryPoint ( bool is_last)
overridevirtual

Execute le point d'entrée suivant dans la liste.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 804 du fichier TimeLoopMng.cc.

Références ARCANE_FATAL, m_current_entry_point, m_loop_entry_points, et m_used_time_loop.

◆ doOneIteration()

int Arcane::TimeLoopMng::doOneIteration ( )
overridevirtual

◆ doVerification()

void Arcane::TimeLoopMng::doVerification ( const String name)
overridevirtual

Effectue une vérification.

Cette opération est collective.

Cette opération permet d'effectuer manuellement une opération de vérification, dont le nom est name. Ce nom name doit être unique pour une itération donnée.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 648 du fichier TimeLoopMng.cc.

Référencé par doComputeLoop().

◆ execBuildEntryPoints()

void Arcane::TimeLoopMng::execBuildEntryPoints ( )
overridevirtual

Exécute les points d'entrée de construction.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 536 du fichier TimeLoopMng.cc.

Références Arccore::TraceAccessor::info(), m_build_entry_points, m_sub_domain, et Arcane::IEntryPoint::WBuild.

◆ execExitEntryPoints()

void Arcane::TimeLoopMng::execExitEntryPoints ( )
overridevirtual

Exécute les points d'entrée de terminaison.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 599 du fichier TimeLoopMng.cc.

Références Arccore::ITraceMng::flush(), Arccore::TraceAccessor::info(), m_exit_entry_points, m_sub_domain, Arccore::ITraceMng::plog(), et subDomain().

◆ execInitEntryPoints()

void Arcane::TimeLoopMng::execInitEntryPoints ( bool  is_continue)
overridevirtual

Exécute les points d'entrée d'initialisation.

Paramètres
is_continueest vrai si on est en reprise

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 518 du fichier TimeLoopMng.cc.

Références Arccore::TraceAccessor::info(), m_init_entry_points, m_sub_domain, Arcane::IEntryPoint::WContinueInit, Arcane::IEntryPoint::WInit, et Arcane::IEntryPoint::WStartInit.

◆ execOnMeshChangedEntryPoints()

void Arcane::TimeLoopMng::execOnMeshChangedEntryPoints ( )
overridevirtual

Exécute les points d'entrée après rééquilibrage.

Exécute les points d'entrée après rééquilibrage

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 567 du fichier TimeLoopMng.cc.

Références Arccore::TraceAccessor::info(), m_on_mesh_changed_entry_points, et m_sub_domain.

Référencé par _doMeshPartition().

◆ execOnMeshRefinementEntryPoints()

void Arcane::TimeLoopMng::execOnMeshRefinementEntryPoints ( )
overridevirtual

Exécute les points d'entrée après raffinement.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 583 du fichier TimeLoopMng.cc.

Références Arccore::TraceAccessor::info(), m_on_mesh_refinement_entry_points, et m_sub_domain.

◆ execRestoreEntryPoints()

void Arcane::TimeLoopMng::execRestoreEntryPoints ( )

Définition à la ligne 552 du fichier TimeLoopMng.cc.

◆ finalTimeReached()

bool Arcane::TimeLoopMng::finalTimeReached ( ) const
inlineoverridevirtual

Retourne true si le temps final est atteint.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 142 du fichier TimeLoopMng.cc.

◆ getBackwardMng()

IBackwardMng * Arcane::TimeLoopMng::getBackwardMng ( ) const
inlineoverridevirtual

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 162 du fichier TimeLoopMng.cc.

◆ goBackward()

void Arcane::TimeLoopMng::goBackward ( )
overridevirtual

Effectue un retour arrière.

Cette méthode positionne juste un marqueur. Le retour arrière a effectivement lieu lorsque le point d'entrée actuellement en cours d'exécution se termine.

Après retour-arrière, les points d'entrée de retour-arrière sont appelés.

Avertissement
Lors d'une exécution parallèle, cette méthode doit être appelée par tous les sous-domaines.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1683 du fichier TimeLoopMng.cc.

Références Arcane::IBackwardMng::goBackward(), et m_backward_mng.

◆ isDoingBackward()

bool Arcane::TimeLoopMng::isDoingBackward ( )
overridevirtual

Vrai si on est actuellement dans un retour-arrière.

Un retour arrière est actif tant que le temps physique est inférieur au temps physique atteint avant le déclechement du retout-arrière.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1672 du fichier TimeLoopMng.cc.

Références Arcane::IBackwardMng::isLocked(), et m_backward_mng.

◆ loopEntryPoints()

EntryPointCollection Arcane::TimeLoopMng::loopEntryPoints ( )
inlineoverridevirtual

Retourne la liste des points d'entrée de type 'ComputeLoop' de la boucle en temps.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 145 du fichier TimeLoopMng.cc.

Références m_loop_entry_points.

◆ nbLoop()

Integer Arcane::TimeLoopMng::nbLoop ( ) const
inlineoverridevirtual

Nombre de boucles de calcul (ComputeLoop) effectuées.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 183 du fichier TimeLoopMng.cc.

◆ nextEntryPoint()

IEntryPoint * Arcane::TimeLoopMng::nextEntryPoint ( )
overridevirtual

Retourne la fonction suivante à appeler.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 832 du fichier TimeLoopMng.cc.

Références m_current_entry_point, et m_loop_entry_points.

◆ observable()

IObservable * Arcane::TimeLoopMng::observable ( eTimeLoopEventType  type)
inlineoverridevirtual

Observable sur l'instance.

Le type de l'observable est donné par type

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 196 du fichier TimeLoopMng.cc.

◆ registerActionMeshPartition()

void Arcane::TimeLoopMng::registerActionMeshPartition ( IMeshPartitionerBase mesh_partitioner)
overridevirtual

Programme un repartitionnement du maillage avec l'outil de partition mesh_partitioner.

Cette méthode positionne juste un marqueur. Le repartitionnement a effectivement lieu lorsque le dernier point d'entrée de la boucle de calcul est terminé (fin d'une itération).

Après partitionnement, les points d'entrée de changement de maillage sont appelés.

Avertissement
Lors d'une exécution parallèle, cette méthode doit être appelée par tous les sous-domaines.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1757 du fichier TimeLoopMng.cc.

Références Arccore::TraceAccessor::info(), Arcane::IBackwardMng::isBackwardEnabled(), Arcane::IBackwardMng::isLocked(), et m_backward_mng.

◆ registerTimeLoop()

void Arcane::TimeLoopMng::registerTimeLoop ( ITimeLoop time_loop)
overridevirtual

Enregistrement et choix de la boucle en temps.

Enregistre une boucle en temps. Enregistre la boucle en temps time_loop.

Si une boucle en temps de même nom que time_loop est déjà référencée, la nouvelle remplace l'ancienne.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1048 du fichier TimeLoopMng.cc.

Références ARCANE_FATAL, Arccore::TraceAccessor::log(), m_time_loop_list, et Arcane::ITimeLoop::name().

◆ setBackwardMng()

void Arcane::TimeLoopMng::setBackwardMng ( IBackwardMng backward_mng)
overridevirtual

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 499 du fichier TimeLoopMng.cc.

◆ setBackwardSavePeriod()

void Arcane::TimeLoopMng::setBackwardSavePeriod ( Integer  n)
inlineoverridevirtual

Positionne la période entre deux sauvegarde pour le retour arrière. Si cette valeur est nulle, le retour arrière est désactivé.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 166 du fichier TimeLoopMng.cc.

Références m_backward_mng.

◆ setStopReason()

void Arcane::TimeLoopMng::setStopReason ( eTimeLoopStopReason  reason)
overridevirtual

Positionne la raison pour laquelle on arrête le code.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1728 du fichier TimeLoopMng.cc.

◆ setUsedTimeLoop()

void Arcane::TimeLoopMng::setUsedTimeLoop ( const String name)
overridevirtual

Positionne la boucle en temps à exécuter. Sélectionne la boucle en temps de nom name comme celle qui sera exécutée. Cette méthode effectue les opérations suivantes:

  • à partir du nom name, recherche la boucle en temps à utiliser. Cette boucle en temps doit avoir été référencée par l'appel à registerTimeLoop()
  • pour chaque nom de point d'entrée de la boucle en temps, recherche le point d'entrée (IEntryPoint) correspondant enregistré dans l'architecture
  • contruit la liste des points d'entrée à appeler lors de l'initialisation, dans la boucle de calcul et lors de la terminaison en prenant en compte les points d'entrée qui sont chargés automatiquement.
  • détermine la liste des modules utilisés en considérant qu'un module est utilisé si et seulement si l'un de ses points d'entrée est utilisé

L'opération est un échec et provoque une erreur fatal dans l'un des cas suivants:

  • cette méthode a déjà été appelée,
  • aucune boucle en temps de nom name n'est enregistrée,
  • un des noms des points d'entrée de la liste ne correspondant à aucun point d'entrée référencé.

Si name est nulle, la boucle en temps utilisée est la boucle par défaut qui ne contient aucune point d'entrée explicite. Elle contient uniquement les points d'entrée automatiquement enregistrés.

Valeurs retournées
trueen cas d'erreur,
falsesinon.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1068 du fichier TimeLoopMng.cc.

Références _addExecuteEntryPoint(), _createModule(), _fillModuleFactoryMap(), _fillModuleStateMap(), _processEntryPoints(), ARCANE_FATAL, Arcane::CollectionBase::clear(), Arcane::ITimeLoop::configuration(), Arcane::IEntryPointMng::entryPoints(), Arcane::ITimeLoop::entryPoints(), Arccore::TraceAccessor::info(), Arccore::TraceAccessor::logdate(), m_default_time_loop, m_entry_point_mng, m_sub_domain, m_time_loop_list, m_used_time_loop, m_used_time_loop_entry_points, Arcane::IEntryPoint::PAutoLoadBegin, Arcane::IEntryPoint::PAutoLoadEnd, Arcane::ITimeLoop::WBuild, Arcane::ITimeLoop::WComputeLoop, Arcane::ITimeLoop::WExit, Arcane::ITimeLoop::WInit, Arcane::ITimeLoop::WOnMeshChanged, Arcane::ITimeLoop::WOnMeshRefinement, et Arcane::ITimeLoop::WRestore.

◆ setVerificationActive()

void Arcane::TimeLoopMng::setVerificationActive ( bool  is_active)
inlineoverridevirtual

Positionne l'état du mode de vérification.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 173 du fichier TimeLoopMng.cc.

◆ stopComputeLoop()

void Arcane::TimeLoopMng::stopComputeLoop ( bool  is_final_time,
bool  has_error 
)
overridevirtual

Indique que la boucle de calcul doit s'interrompre.

Si is_final_time est vrai, cela indique que le temps final est atteint. Si has_error est vrai, cela indique que le calcul est arrété suite à une erreur. Dans ce cas, le code de retour de l'application sera différent de 0.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1737 du fichier TimeLoopMng.cc.

Références Arcane::Error, Arcane::FinalTimeReached, Arcane::NoReason, et Arcane::NoStop.

Référencé par doComputeLoop().

◆ stopReason()

eTimeLoopStopReason Arcane::TimeLoopMng::stopReason ( ) const
inlineoverridevirtual

Raison pour laquelle on arrête le code.

Si la valeur est eTimeLoopStopReason::NoStop, alors le code n'est pas en arrêt.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 186 du fichier TimeLoopMng.cc.

◆ subDomain()

ISubDomain * Arcane::TimeLoopMng::subDomain ( ) const
inlineoverridevirtual

< Retourne le gestionnaire du sous-domaine

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 136 du fichier TimeLoopMng.cc.

Références m_sub_domain.

Référencé par _doMeshPartition(), _fillModuleFactoryMap(), doComputeLoop(), doOneIteration(), et execExitEntryPoints().

◆ timeLoops()

void Arcane::TimeLoopMng::timeLoops ( TimeLoopCollection time_loops) const
overridevirtual

Retourne dans time_loops la liste des boucles en temps.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1708 du fichier TimeLoopMng.cc.

Références m_time_loop_list.

◆ timeLoopsName()

void Arcane::TimeLoopMng::timeLoopsName ( StringCollection names) const
overridevirtual

Retourne dans names la liste des noms des boucles en temps.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 1698 du fichier TimeLoopMng.cc.

Références m_time_loop_list.

◆ traceMng()

ITraceMng * Arcane::TimeLoopMng::traceMng ( )
inline

Définition à la ligne 194 du fichier TimeLoopMng.cc.

◆ usedTimeLoop()

ITimeLoop * Arcane::TimeLoopMng::usedTimeLoop ( ) const
inlineoverridevirtual

Retourne la boucle en temps utilisée.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 151 du fichier TimeLoopMng.cc.

Références m_used_time_loop.

◆ usedTimeLoopEntryPoints()

EntryPointCollection Arcane::TimeLoopMng::usedTimeLoopEntryPoints ( )
inlineoverridevirtual

Liste de tous les points d'entrée pour la boucle en temps actuelle.

Implémente Arcane::ITimeLoopMng.

Définition à la ligne 146 du fichier TimeLoopMng.cc.

Références m_used_time_loop_entry_points.

Documentation des données membres

◆ m_alarm_timer_value

Integer Arcane::TimeLoopMng::m_alarm_timer_value
private

Définition à la ligne 294 du fichier TimeLoopMng.cc.

◆ m_backward_mng

IBackwardMng* Arcane::TimeLoopMng::m_backward_mng
private

Gestionnaire du retour-arrière;.

Définition à la ligne 283 du fichier TimeLoopMng.cc.

Référencé par _doMeshPartition(), doComputeLoop(), doOneIteration(), goBackward(), isDoingBackward(), registerActionMeshPartition(), et setBackwardSavePeriod().

◆ m_build_entry_points

EntryPointList Arcane::TimeLoopMng::m_build_entry_points
private

Liste des points d'entrée à exécuter lors de la construction.

Définition à la ligne 237 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), et execBuildEntryPoints().

◆ m_current_entry_point

Integer Arcane::TimeLoopMng::m_current_entry_point
private

Prochain point d'entrée à exécuter.

Définition à la ligne 273 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), doExecNextEntryPoint(), et nextEntryPoint().

◆ m_current_entry_point_ptr

IEntryPoint* Arcane::TimeLoopMng::m_current_entry_point_ptr
private

Point d'entrée en cours d'exécution.

Définition à la ligne 267 du fichier TimeLoopMng.cc.

Référencé par currentEntryPoint().

◆ m_default_time_loop

ITimeLoop* Arcane::TimeLoopMng::m_default_time_loop
private

Boucle en temps par défaut.

Définition à la ligne 263 du fichier TimeLoopMng.cc.

Référencé par setUsedTimeLoop().

◆ m_entry_point_mng

IEntryPointMng* Arcane::TimeLoopMng::m_entry_point_mng
private

Gestionnaire de points d'entrée.

Définition à la ligne 231 du fichier TimeLoopMng.cc.

Référencé par _processEntryPoints(), cpuTimeUsed(), et setUsedTimeLoop().

◆ m_exit_entry_points

EntryPointList Arcane::TimeLoopMng::m_exit_entry_points
private

Liste des points d'entrée à exécuter à la terminaison.

Définition à la ligne 246 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), et execExitEntryPoints().

◆ m_final_time_reached

bool Arcane::TimeLoopMng::m_final_time_reached
private

Définition à la ligne 271 du fichier TimeLoopMng.cc.

◆ m_init_entry_points

EntryPointList Arcane::TimeLoopMng::m_init_entry_points
private

Liste des points d'entrée à exécuter à l'initialisation.

Définition à la ligne 243 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), et execInitEntryPoints().

◆ m_lang_module_factory_map

ModuleFactoryMap Arcane::TimeLoopMng::m_lang_module_factory_map
private

Liste des fabriques des modules.

Définition à la ligne 289 du fichier TimeLoopMng.cc.

Référencé par _fillModuleFactoryMap(), et _fillModuleStateMap().

◆ m_list_execute_module

ModuleList Arcane::TimeLoopMng::m_list_execute_module
private

Liste des modules à éxécuter.

Définition à la ligne 234 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint().

◆ m_loop_entry_points

EntryPointList Arcane::TimeLoopMng::m_loop_entry_points
private

Liste des points d'entrée à exécuter.

Définition à la ligne 240 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), doExecNextEntryPoint(), doOneIteration(), loopEntryPoints(), et nextEntryPoint().

◆ m_mesh_partitioner

UniqueArray<IMeshPartitionerBase*> Arcane::TimeLoopMng::m_mesh_partitioner
private

Définition à la ligne 292 du fichier TimeLoopMng.cc.

◆ m_message_class_name

String Arcane::TimeLoopMng::m_message_class_name
private

Définition à la ligne 293 du fichier TimeLoopMng.cc.

◆ m_module_factory_map

ModuleFactoryMap Arcane::TimeLoopMng::m_module_factory_map
private

Etat de tous les modules référencés.

Définition à la ligne 288 du fichier TimeLoopMng.cc.

Référencé par _createModule(), et _fillModuleFactoryMap().

◆ m_module_state_list

ModuleStateMap Arcane::TimeLoopMng::m_module_state_list
private

Définition à la ligne 286 du fichier TimeLoopMng.cc.

◆ m_msg_pass_prof_srv

Ref<IMessagePassingProfilingService> Arcane::TimeLoopMng::m_msg_pass_prof_srv
private

Définition à la ligne 302 du fichier TimeLoopMng.cc.

◆ m_my_own_backward_mng

bool Arcane::TimeLoopMng::m_my_own_backward_mng
private

Définition à la ligne 284 du fichier TimeLoopMng.cc.

◆ m_nb_loop

Integer Arcane::TimeLoopMng::m_nb_loop
private

Définition à la ligne 295 du fichier TimeLoopMng.cc.

◆ m_observables

ObservablePool<eTimeLoopEventType> Arcane::TimeLoopMng::m_observables
private

Définition à la ligne 297 du fichier TimeLoopMng.cc.

◆ m_on_mesh_changed_entry_points

EntryPointList Arcane::TimeLoopMng::m_on_mesh_changed_entry_points
private

Liste des points d'entrée à exécuter après un changement de maillage.

Définition à la ligne 252 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), et execOnMeshChangedEntryPoints().

◆ m_on_mesh_refinement_entry_points

EntryPointList Arcane::TimeLoopMng::m_on_mesh_refinement_entry_points
private

Liste des points d'entrée à exécuter après un raffinement.

Définition à la ligne 255 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), et execOnMeshRefinementEntryPoints().

◆ m_restore_entry_points

EntryPointList Arcane::TimeLoopMng::m_restore_entry_points
private

Liste des points d'entrée à exécuter lors d'un retour arrière.

Définition à la ligne 249 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint().

◆ m_specific_entry_point_name

String Arcane::TimeLoopMng::m_specific_entry_point_name
private

Pour test, point d'entrée spécifique à appeler.

Définition à la ligne 305 du fichier TimeLoopMng.cc.

Référencé par doComputeLoop().

◆ m_stop_has_error

bool Arcane::TimeLoopMng::m_stop_has_error
private

Définition à la ligne 270 du fichier TimeLoopMng.cc.

◆ m_stop_reason

eTimeLoopStopReason Arcane::TimeLoopMng::m_stop_reason
private

Définition à la ligne 299 du fichier TimeLoopMng.cc.

◆ m_stop_time_loop

bool Arcane::TimeLoopMng::m_stop_time_loop
private

Définition à la ligne 269 du fichier TimeLoopMng.cc.

◆ m_sub_domain

◆ m_time_loop_list

TimeLoopMap Arcane::TimeLoopMng::m_time_loop_list
private

Liste des boucles en temps.

Définition à la ligne 261 du fichier TimeLoopMng.cc.

Référencé par registerTimeLoop(), setUsedTimeLoop(), timeLoops(), et timeLoopsName().

◆ m_used_time_loop

ITimeLoop* Arcane::TimeLoopMng::m_used_time_loop
private

Boucle en temps utilisée.

Définition à la ligne 265 du fichier TimeLoopMng.cc.

Référencé par doExecNextEntryPoint(), doOneIteration(), setUsedTimeLoop(), et usedTimeLoop().

◆ m_used_time_loop_entry_points

EntryPointList Arcane::TimeLoopMng::m_used_time_loop_entry_points
private

Liste de tous les points d'entrée de la boucle en temps utilisée.

Définition à la ligne 258 du fichier TimeLoopMng.cc.

Référencé par _addExecuteEntryPoint(), setUsedTimeLoop(), et usedTimeLoopEntryPoints().

◆ m_verif_path

String Arcane::TimeLoopMng::m_verif_path
private

Répertoire de sauvegarde/lecture des verifs.

Définition à la ligne 277 du fichier TimeLoopMng.cc.

◆ m_verif_same_parallel

bool Arcane::TimeLoopMng::m_verif_same_parallel
private

Définition à la ligne 276 du fichier TimeLoopMng.cc.

◆ m_verif_type

eVerifType Arcane::TimeLoopMng::m_verif_type
private

Type de vérifications.

Définition à la ligne 275 du fichier TimeLoopMng.cc.

Référencé par doOneIteration().

◆ m_verification_active

bool Arcane::TimeLoopMng::m_verification_active
private

Définition à la ligne 278 du fichier TimeLoopMng.cc.

◆ m_verification_at_entry_point

bool Arcane::TimeLoopMng::m_verification_at_entry_point
private

Si vrai, effectue vérifications à chaque point d'entrée, sinon uniquement en fin d'itération.

Définition à la ligne 280 du fichier TimeLoopMng.cc.

Référencé par doOneIteration().

◆ m_verification_only_at_exit

bool Arcane::TimeLoopMng::m_verification_only_at_exit = false
private

Définition à la ligne 281 du fichier TimeLoopMng.cc.

◆ m_verifier_service

Ref<IVerifierService> Arcane::TimeLoopMng::m_verifier_service
private

Liste des fabriques des modules dans la langue du JDD.

Définition à la ligne 291 du fichier TimeLoopMng.cc.


La documentation de cette classe a été générée à partir du fichier suivant :