Interface gérant les stratégies de retour-arrière. Plus de détails...
#include <arcane/core/IBackwardMng.h>
Types publics | |
enum | eAction { Save , Restore } |
Fonctions membres publiques | |
virtual void | init ()=0 |
Initialisation du manager de retour en arrière. | |
virtual void | beginAction ()=0 |
Indique qu'on commence les actions de sauvegarde/restauration sont terminées. | |
virtual bool | checkAndApplyRestore ()=0 |
Vérifie et applique la restauration si nécessaire. | |
virtual bool | checkAndApplySave (bool is_forced)=0 |
Vérifie et applique la sauvegarde des variables si nécessaire. Si is_forced est vrai, force la sauvegarde. | |
virtual void | endAction ()=0 |
Indique que les actions de sauvegarde/restauration sont terminées. | |
virtual void | setSavePeriod (Integer n)=0 |
virtual Integer | savePeriod () const =0 |
virtual void | goBackward ()=0 |
Signale qu'on souhaite effectué un retour arrière. | |
virtual bool | isLocked () const =0 |
Indique si les sauvegardes de retour-arrière sont vérouillées. | |
virtual bool | isBackwardEnabled () const =0 |
Indique si un retour-arrière est programmé. | |
virtual void | clear ()=0 |
Supprime les ressources associées au retour-arrière. | |
Interface gérant les stratégies de retour-arrière.
Cette interface est utilisée par le ITimeLoopMng pour gérer les retour-arrière. Le principe du retour-arrière est de sauvegarder à une itération donnée les valeurs des variables pour pouvoir revenir à cette itération, par exemple en cas de problème dans le calcul.
Il est possible de positionner une instance spécifique via ITimeLoopMng::setBackwardMng();
L'enchainement des opérations, effectué à la fin de chaque itération, est géré par l'instance de ITimeLoopMng. Il est comme suit:
Définition à la ligne 54 du fichier IBackwardMng.h.
Valeurs énumérées | |
---|---|
Save | Sauvegarde. |
Restore | Restauration. |
Définition à la ligne 59 du fichier IBackwardMng.h.
|
inlinevirtual |
Définition à la ligne 69 du fichier IBackwardMng.h.
Indique qu'on commence les actions de sauvegarde/restauration sont terminées.
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::doOneIteration().
Vérifie et applique la restauration si nécessaire.
true | si une restauration est effectuée. |
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::doOneIteration().
Vérifie et applique la sauvegarde des variables si nécessaire. Si is_forced est vrai, force la sauvegarde.
true | si une sauvegarde est effectuée. |
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::doOneIteration().
Supprime les ressources associées au retour-arrière.
Cette méthode est appelé pour désallouer les ressources comme les sauvegardes des variables. Cette méthode est appelée entre autre avant un équilibrage de charge puisqu'il ne sera pas possible de faire un retour-arrière avant cet équilibrage.
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::_doMeshPartition().
Indique que les actions de sauvegarde/restauration sont terminées.
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::doOneIteration().
Signale qu'on souhaite effectué un retour arrière.
Le retour arrière aura lieu lors de l'appel à checkAndApplyRestore().
En général il ne faut pas appeler directement cette méthode mais plutôt ITimeLoopMng::goBackward().
Depuis l'appel à cette méthode jusqu'à l'action effective du retour-arrière lors de l'appel à checkAndApplyRestore(), isBackwardEnabled() retourne true.
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::doOneIteration(), et Arcane::TimeLoopMng::goBackward().
Initialisation du manager de retour en arrière.
Implémenté dans Arcane::DefaultBackwardMng.
Indique si un retour-arrière est programmé.
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::doOneIteration(), et Arcane::TimeLoopMng::registerActionMeshPartition().
Indique si les sauvegardes de retour-arrière sont vérouillées.
isLocked() est vrai s'il n'est pas possible de faire une sauvegarde. C'est le cas par exemple lorsqu'on a effectué à l'itération M un retour arrière vers l'itération N et qu'on n'est pas encore revenu à l'itération M.
Implémenté dans Arcane::DefaultBackwardMng.
Référencé par Arcane::TimeLoopMng::isDoingBackward(), et Arcane::TimeLoopMng::registerActionMeshPartition().