Table of Contents

Commit 2015-08-05

Grand nettoyage

Maintenant que mes routines de remaillage et rééquilibrage semblent fonctionner, j'ai fait un peu de nettoyage pour rendre ça plus propre. L'algo de rééquilibrage a été réécrit pour ressembler un maximum aux autres schémas d'intégrations, les remailleurs ont été vidés de tous les copier-coller qui traînaient, et le brouillon de procédure automatique de remaillage a été réécrit sous forme d'une classe.

Afin de pouvoir éliminer les copier-coller des remailleurs, j'ai dû modifier la classe Gen4Mesher de meshers.py. J'ai surtout divisé la fonction execute en plusieurs fonctions afin de pouvoir redéfinir ce qu'il fallait dans les classes dérivées. Je pense ne pas avoir trop foutu le bordel, mais si Romain veut vérifier, ses commentaires sont les bienvenus.

Les remailleurs ont également été renommés (l'ancien remailleur, pour ceux qui l'utilisent, s'appelle désormais Gen4RemesherPB).

Estimation des forces résiduelles

Pour faire un rééquilibrage en dynamique implicite, il faut connaitre les “forces résiduelles”, qui ne sont calculées que si un flag est mis à True dans le cas-test. Dans le cas d'une simulation où on souhaiterait quand même remailler et rééquilibrer sans avoir mis ce flag à True, on estime ces forces résiduelles sur base des forces internes, externes et d'inertie au pas de temps courant (au lieu de leur valeur au pas de temps précédent), en espérant que cette estimation conduisent à un meilleur résultat que de simplement les négliger.

AIC_ONCEPERSTEP

Concernant l'aire de contact (voir Commit 2015-07-29), de nouvelles pistes ont été explorées mais au final rien de conséquent n'a été modifié. Le calcul de l'aire se trouve toujours bien dans le metafor.beginStep(). J'ai juste enlevé un flag (metafor.isRecomputed()) que j'avais précédemment ajouté dans ContactElement.inl. Si le pas de temps précédent est rejeté, l'air est recalculée inutilement, mais ça évite d'avoir des flags de haut niveau dans les routines de contact.

Descriptions des cas-tests

La série “forgeDynGF0” vérifie le transfert des données et le remaillage lorsque les forces résiduelles doivent être estimées sur base de la configuration courante.

La série “forgeDynV2” vérifie la procédure de remaillage “automatique”, où les étapes de remaillage, transfert, rééquilibrage et rédémarrage s'enchainent dans le fichier “forgeDynV2_2”

Fichiers ajoutés/supprimés

A : 
R : 

Tests ajoutés/supprimés

A : apps.remeshing2.forgeDynGF0_1.py
A : apps.remeshing2.forgeDynGF0_2.py
A : apps.remeshing2.forgeDynGF0_3.py
A : apps.remeshing2.forgeDynGF0_4.py
A : apps.remeshing2.forgeDynV2_1.py
A : apps.remeshing2.forgeDynV2_2.py
R : 

Pierre Joris 2015/08/05