Interface du gestionnaire de la boucle en temps. Plus de détails...
#include <arcane/core/ITimeLoopMng.h>
Fonctions membres publiques | |
virtual | ~ITimeLoopMng () |
Libère les ressources. | |
virtual void | build ()=0 |
virtual ISubDomain * | subDomain () 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 IEntryPoint * | nextEntryPoint ()=0 |
Retourne le prochain point d'entrée à exécuter ou 0 s'il n'y en a pas. | |
virtual IEntryPoint * | currentEntryPoint ()=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 ITimeLoop * | usedTimeLoop () const =0 |
Retourne la boucle en temps utilisée. | |
virtual void | setBackwardMng (IBackwardMng *backward_mng)=0 |
virtual IBackwardMng * | getBackwardMng () 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 ITimeLoop * | createTimeLoop (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 IObservable * | observable (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. | |
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 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.
|
inlinevirtual |
Libère les ressources.
Définition à la ligne 72 du fichier ITimeLoopMng.h.
|
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.
1 | si le code s'arrête normalement suite au temps final atteint |
2 | si le code s'arrête normalement suite à max_loop atteint |
<0 | si le calcul s'arrête suite à une erreur. |
|
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.
|
pure virtual |
Lance l'exécution d'une itération de la boucle de calcul.
0 | si le code doit continuer. |
>0 | si le calcul s'arrête normalement. |
<0 | si le calcul s'arrête suite à une erreur. |
|
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.
|
pure virtual |
Exécute les points d'entrée d'initialisation.
is_continue | est vrai si on est en reprise |
Référencé par Arcane::CodeService::initCase().
|
pure virtual |
Exécute les points d'entrée après rééquilibrage.
Exécute les points d'entrée après rééquilibrage
|
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.
|
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.
|
pure virtual |
Observable sur l'instance.
Le type de l'observable est donné par type
|
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.
|
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.
|
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:
L'opération est un échec et provoque une erreur fatal dans l'un des cas suivants:
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.
true | en cas d'erreur, |
false | sinon. |
|
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.
|
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.