J'ai interfacé la classe AugLagCriterionNormMethod qui permet de choisir le type de norme pour l'évaluation des critères d'arrêt du lagrangien augmenté.
J'ai éliminé la variable booléenne loadingValuesAllowed et j'ai introduit deux variables pour conserver les valeurs initiales keptInitialInternalEnergy et keptInitialWorkOfExternalForces. Ces différentes variables étaient mises à jour lors de la phase d'équilibrage de n pas de temps explicite de taille deltaTexplicite par un pas de temps implicite équivalent deltaTimplicite = n *deltaTexplicite.
Nous sommes forcés d'instancier cet objet dans le jeux de données lors de l'utilisation du shift explicite/implicite :
iesm = IeShiftManager(metafor)
Nous sommes forcés d'instancier cet objet dans le jeux de données lors de l'utilisation du schéma implicite consistent :
caf = ConsistentAlgorithmFunctions(metafor)
J'ai éliminé la référence vers le domaine dans les objets suivants : IeShiftManager, ConsistentAlgorithmFunctions, IterationManager, TimeIntegration, car on peut y accéder via l'objet metafor.
J'ai inséré la fonction computeTimeStep() à la fin de la fonction initialise du schéma d'intégration explicite.
J'ai déplacé deux fonctions de metafor vers cette classe (exportConfigurationToBalanceTheExplicitSolution et importConfigurationToBalanceTheExplicitSolution ), uniquement appelée dans ce schéma d'intégration !
J'ai éliminé un maximum d'include de “TimeStepManager” dans l'ensemble du code source.
Afin de rendre plus claire la lecture de ce type de schéma d'intégration spécifique, des fonctions dans la classe ImplicitTimeIntegration ont été descendues dans la classe ConsistentTimeIntegration et on évite les tests du genre isMethodConsistent() un peu partout !
Cette fonction était redéfinie dans le schéma d'intégration implicite explicite alors qu'elle devrait être identique pour tous les schémas !
La différence était dans un gardien où on utilisait metafor.getCurrentTime() au lieu de metafor.getOldTime().
J'ai résolu cette différence en indiquant explicitement que metafor.setCurrentTime(metafor.getOldTime()) lors de la phase errorManagement() des schémas d'intégration !
[a]: [r]:
[r]: [a]:
— Gaëtan WAUTELET 2015/09/23