Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ITimeLoopMngabstract

Interface du gestionnaire de la boucle en temps. Plus de détails...

#include <arcane/core/ITimeLoopMng.h>

+ Graphe de collaboration de Arcane::ITimeLoopMng:

Fonctions membres publiques

virtual ~ITimeLoopMng ()
 Libère les ressources.
 
virtual void build ()=0
 
virtual ISubDomainsubDomain () const =0
 < Retourne le gestionnaire du sous-domaine
 
virtual void execExitEntryPoints ()=0
 Exécute les points d'entrée de terminaison.
 
virtual void execBuildEntryPoints ()=0
 Exécute les points d'entrée de construction.
 
virtual void execInitEntryPoints (bool is_continue)=0
 Exécute les points d'entrée d'initialisation.
 
virtual void execOnMeshChangedEntryPoints ()=0
 Exécute les points d'entrée après rééquilibrage.
 
virtual void execOnMeshRefinementEntryPoints ()=0
 Exécute les points d'entrée après raffinement.
 
virtual void stopComputeLoop (bool is_final_time, bool has_error=false)=0
 Indique que la boucle de calcul doit s'interrompre.
 
virtual bool finalTimeReached () const =0
 Retourne true si le temps final est atteint.
 
virtual Real cpuTimeUsed () const =0
 Retourne le temps CPU utilisé en secondes.
 
virtual EntryPointCollection loopEntryPoints ()=0
 Retourne la liste des points d'entrée de type 'ComputeLoop' de la boucle en temps.
 
virtual EntryPointCollection usedTimeLoopEntryPoints ()=0
 Liste de tous les points d'entrée pour la boucle en temps actuelle.
 
virtual void doExecNextEntryPoint (bool &is_last)=0
 
virtual IEntryPointnextEntryPoint ()=0
 Retourne le prochain point d'entrée à exécuter ou 0 s'il n'y en a pas.
 
virtual IEntryPointcurrentEntryPoint ()=0
 Retourne le point d'entrée en cours d'exécution ou 0 s'il n'y en a pas.
 
virtual int doOneIteration ()=0
 Lance l'exécution d'une itération de la boucle de calcul.
 
virtual int doComputeLoop (Integer max_loop=0)=0
 Exécute la boucle de calcul.
 
virtual void registerTimeLoop (ITimeLoop *time_loop)=0
 Enregistrement et choix de la boucle en temps.
 
virtual void setUsedTimeLoop (const String &name)=0
 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:
 
virtual ITimeLoopusedTimeLoop () const =0
 Retourne la boucle en temps utilisée.
 
virtual void setBackwardMng (IBackwardMng *backward_mng)=0
 
virtual IBackwardMnggetBackwardMng () const =0
 
virtual void goBackward ()=0
 Effectue un retour arrière.
 
virtual bool isDoingBackward ()=0
 Vrai si on est actuellement dans un retour-arrière.
 
virtual void registerActionMeshPartition (IMeshPartitionerBase *mesh_partitioner)=0
 Programme un repartitionnement du maillage avec l'outil de partition mesh_partitioner.
 
virtual void setBackwardSavePeriod (Integer n)=0
 Positionne la période entre deux sauvegarde pour le retour arrière. Si cette valeur est nulle, le retour arrière est désactivé.
 
virtual void setVerificationActive (bool is_active)=0
 Positionne l'état du mode de vérification.
 
virtual void doVerification (const String &name)=0
 Effectue une vérification.
 
virtual void timeLoopsName (StringCollection &names) const =0
 Retourne dans names la liste des noms des boucles en temps.
 
virtual void timeLoops (TimeLoopCollection &time_loops) const =0
 Retourne dans time_loops la liste des boucles en temps.
 
virtual ITimeLoopcreateTimeLoop (const String &name)=0
 Crée une boucle en temps de nom name.
 
virtual Integer nbLoop () const =0
 Nombre de boucles de calcul (ComputeLoop) effectuées.
 
virtual IObservableobservable (eTimeLoopEventType type)=0
 Observable sur l'instance.
 
virtual void setStopReason (eTimeLoopStopReason reason)=0
 Positionne la raison pour laquelle on arrête le code.
 
virtual eTimeLoopStopReason stopReason () const =0
 Raison pour laquelle on arrête le code.
 

Description détaillée

Interface du gestionnaire de la boucle en temps.

La boucle en temps est composée de trois parties, exécutées dans l'ordre suivant:

  • l'initialisation (Init)
  • la boucle de calcul (ComputeLoop)
  • la terminaison (Exit)

L'initialisation et la terminaison ne sont appelés qu'une seule fois. Par contre, la boucle de calcul est exécutée tant que personne ne demande l'arrêt explicite par la méthode stopComputeLoop()

Définition à la ligne 68 du fichier ITimeLoopMng.h.

Documentation des constructeurs et destructeur

◆ ~ITimeLoopMng()

virtual Arcane::ITimeLoopMng::~ITimeLoopMng ( )
inlinevirtual

Libère les ressources.

Définition à la ligne 72 du fichier ITimeLoopMng.h.

Documentation des fonctions membres

◆ doComputeLoop()

virtual int Arcane::ITimeLoopMng::doComputeLoop ( Integer  max_loop = 0)
pure virtual

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.

◆ doExecNextEntryPoint()

virtual void Arcane::ITimeLoopMng::doExecNextEntryPoint ( bool &  is_last)
pure virtual

Exécute le point d'entrée suivant.

Retourne dans is_last true si le point d'entrée qui vient d'être exécuté est le dernier de l'itération.

◆ doOneIteration()

virtual int Arcane::ITimeLoopMng::doOneIteration ( )
pure virtual

Lance l'exécution d'une itération de la boucle de calcul.

Valeurs retournées
0si le code doit continuer.
>0si le calcul s'arrête normalement.
<0si le calcul s'arrête suite à une erreur.

◆ doVerification()

virtual void Arcane::ITimeLoopMng::doVerification ( const String name)
pure virtual

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.

◆ execInitEntryPoints()

virtual void Arcane::ITimeLoopMng::execInitEntryPoints ( bool  is_continue)
pure virtual

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

Paramètres
is_continueest vrai si on est en reprise

Référencé par Arcane::CodeService::initCase().

◆ execOnMeshChangedEntryPoints()

virtual void Arcane::ITimeLoopMng::execOnMeshChangedEntryPoints ( )
pure virtual

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

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

◆ goBackward()

virtual void Arcane::ITimeLoopMng::goBackward ( )
pure virtual

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.

◆ isDoingBackward()

virtual bool Arcane::ITimeLoopMng::isDoingBackward ( )
pure virtual

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.

◆ observable()

virtual IObservable * Arcane::ITimeLoopMng::observable ( eTimeLoopEventType  type)
pure virtual

Observable sur l'instance.

Le type de l'observable est donné par type

◆ registerActionMeshPartition()

virtual void Arcane::ITimeLoopMng::registerActionMeshPartition ( IMeshPartitionerBase mesh_partitioner)
pure virtual

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.

◆ registerTimeLoop()

virtual void Arcane::ITimeLoopMng::registerTimeLoop ( ITimeLoop time_loop)
pure virtual

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.

◆ setUsedTimeLoop()

virtual void Arcane::ITimeLoopMng::setUsedTimeLoop ( const String name)
pure virtual

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.

◆ stopComputeLoop()

virtual void Arcane::ITimeLoopMng::stopComputeLoop ( bool  is_final_time,
bool  has_error = false 
)
pure virtual

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.

◆ stopReason()

virtual eTimeLoopStopReason Arcane::ITimeLoopMng::stopReason ( ) const
pure virtual

Raison pour laquelle on arrête le code.

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


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