This is an old revision of the document!
−Table of Contents
Commit 2019-07-05
Ce commit est pour pouvoir utiliser la méthode du Lagrangien Augmenté directement dans la phase de l'initial balancing (mise en rotation quasi-statique).
Augmented Lagrangian Method
Initial Balancing - Major Refactoring
Dans l'objet DynamicTimeIntegration, il y a une phase de calcul dite “initial balancing” pour la mise en rotation quasi-statique initiale des structures. Cette partie du code
Notamment, le fait d'avoir nettoyé et clarifié les étapes de calcul (en comparant avec le QuasiStaticTimeIntegration), j'ai pu mettre en évidence un bug dans le cas où on combine l'initial balancing et une méthode de newton modifiée.
Par la même occasion, j'ai éliminé les multiples appels inutiles à des fonctions du style beginStep(), etc… pour simplifier la structure du code et ajouter des commentaires pour expliquer les différentes phases du calcul.
Au niveau de la visualisation, il est désormais possible d'interagir les différentes phases de l'initial balancing via le widget “TimeIntegrationInteractor”.
Finalement, j'ai ajouté la mise à jour des chargements nodaux imposés via un LoadingSet, des positions des outils en force driven, des degrés de liberté liés via la fonctionalité EqualityDofConstraint.
Structural Line Search - Refactoring
Le line search était implémenté dans TimeIntegration ⇒ iterationResolution() et aussi dans DynamicTimeIntegration ⇒ initialBalancing(), ce qui rend difficile la maintenance. J'ai déplacé l'entièreté des lignes de code dans IterationManager dans la fonction “void execute(TimeIntegration &ti, bool &rester, bool &forcesAreComputed, Field const *dofType);”
Fichiers ajoutés/supprimés
[a]: [r]:
Cas tests ajoutés/supprimés
[a]: [r]:
— gaëtan 2019/07/05 22:30