Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2016:06_10

Commit 2016-06-10

Amélioration balancing

Lors de l'écriture de la doc du remaillage, je me suis rendu compte de certains petits détails qui ne fonctionnaient pas vraiment de la façon que j'avais en tête, alors j'ai pris le temps d'un peu réorganiser ça.

Avant, je sauvegardais les forces à rééquilibrer avant de rentrer dans le schéma, mais j'ai remarqué qu'elles étaient parfois modifiées en cours d'intégration, et donc le fait d'appliquer une partie de ces forces de déséquilibre n'aidait pas vraiment à converger vers la bonne solution.

Dorénavant, les forces sont sauvées pour la première fois dans la fonction “initialise”, après avoir été recalculées. Ensuite, on rentre dans la boucle d'intégration, et on essaie de résoudre l'équation d'équilibre. Si ça marche, tant mieux, sinon on applique une fraction de plus en plus élevée de ces forces de déséquilibre jusqu'à convergence. Une fois que ça a convergé, on remet à jour les forces de déséquilibre et on recommence à zéro, afin de garantir que les forces appliquées sont bien celles qui correspondent au déséquilibre.

Cela peut conduire à un rééquilibrage plus lent s'il faut vraiment appliquer une fraction élevée des forces pour atteindre convergence, mais je n'ai jamais rien observé de tel si on laisse les paramètres par défaut, et je pense que ça vaut la peine pour la robustesse.

L'explication plus détaillée est dans la doc.

Option - nombre d'ités

J'ai rajouté en option le fait de pouvoir modifier le nombre d'itérations mécaniques pour le balancing. Par défaut il est fixé à 7, comme pour les schémas traditionnels, ce qui est souvent largement suffisant pour converger en un ou deux pas de temps. Mais comme je veux vérifier ce qui se passe si on ne converge pas, j'ai du réduire ce nombre d'itérations dans les cas-tests de la batterie pour forcer l'existence plusieurs pas de temps.

Divers

A la demande d'Yves, dans le fichier contactInterction.cpp, des commandes ont été enlevées de la fonction load2(), et rajoutées commentarisées dans la fonction setStep(), ce qui semble être leur place. A décommentariser et vérifier au prochain commit.

Fichiers ajoutés/supprimés

A : 
R : 

Tests ajoutés/supprimés

A : 
R : 

Pierre Joris 2016/06/10

commit/2016/06_10.txt · Last modified: 2018/05/04 15:48 by boman