commit:2009:02_26
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
commit:2009:02_26 [2009/02/26 09:10] – boman | commit:2009:02_26 [2016/03/30 15:23] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Commit 2009-02-26 ====== | ||
+ | |||
+ | ===== Modifs ===== | ||
+ | |||
+ | ==== EAS ==== | ||
+ | |||
+ | J'ai travaillé sur l'EAS pour essayer de comprendre pourquoi mes tests ALE merdouillent quand on mixe des éléments de tailles différentes les uns à côté des autres. C'est ennuyeux puisque un gain CPU en ALE ne peut se faire qu'en raffinant et déraffinant le maillage. On doit faire ainsi cohabiter des grandes mailles avec des très petites au sein du même maillage. Ce problème, qui n'a rien à voir avec l'ALE, me force à utiliser des maillages inutilement fin en ALE + EAS et au final, l'ALE perd un peu son intérêt. | ||
+ | |||
+ | J'ai essayé de comprendre pourquoi ça plante en traçant l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Clairement, on arrivera jamais à atteindre un minimum du résidu à partir de cette config avec un N-R. J'ai donc ajouté un line-search pour converger malgré tout. | ||
+ | |||
+ | __Modifs:__ | ||
+ | * Ajout d'un line-search dans la routine de calcul des forces internes EAS dans le but d' | ||
+ | * Création d'une classe générique '' | ||
+ | |||
+ | EasLSFunction< | ||
+ | | ||
+ | GPM0, GPM1, GPM0_v, GPM1_v, | ||
+ | | ||
+ | | ||
+ | |||
+ | cette fonction sera appellée par l'algo via un appel virtuel '' | ||
+ | |||
+ | LineSearch linesearch(fct, | ||
+ | double alpha = linesearch.execute(); | ||
+ | |||
+ | * L'algo commence par un N-R classique. S'il ne converge pas (soit à cause d'un jacobien négatif ou un nombre d' | ||
+ | * En pratique, on arrive à converger beaucoup mieux et éviter ainsi des divisions de pas de temps. Mais, malheureusement, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Pour éviter ce genre de problème, Luc a eu l' | ||
+ | |||
+ | __En résumé:__ 2 nouveaux paramètres: | ||
+ | |||
+ | ^ Nom ^ type ^ défaut ^ ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | ==== ALE ==== | ||
+ | |||
+ | * Recalcul du "J1 centre EAS" après convection. Ca permet d' | ||
+ | * Ajout d'une vérification (facultative) du caractère déviatorique du déviateur des contraintes après convection. Par défaut, la totalité du déviateur du tenseur contrainte est convectée. Pour limiter les calcul en 2D, on peut ignorer les compos Z: | ||
+ | |||
+ | region.ignore(IF_SIG_XZ) | ||
+ | region.ignore(IF_SIG_YZ) | ||
+ | region.ignore(IF_DEV_SIG_ZZ) | ||
+ | |||
+ | A ce moment, il faut alors recalculer la compo ZZ qui est tout de même utile pour calculer le J2. | ||
+ | |||
+ | ale.getPostStep().getConfig().setSigZZ(SIGZEQ_COMPUTE) | ||
+ | |||
+ | En 3D, on peut s' | ||
+ | |||
+ | ale.getPostStep().getConfig().setSigZZ(SIGZEQ_TRUNCATE) | ||
+ | |||
+ | |||
+ | |||
+ | ==== Visu ==== | ||
+ | |||
+ | * Le destructeur de '' | ||
+ | * Ajout d'un '' | ||
+ | * Les lignes maillées sont maintenant affichées via leur maillage et se déforment au cours du temps. En pratique, ça évite les lignes pourries qui traversent l' | ||
+ | |||
+ | ==== Autres ==== | ||
+ | |||
+ | * Batterie multi-thread: | ||
+ | * Suppression d'un warning dans le '' | ||
+ | |||
+ | ===== Projet ====== | ||
+ | |||
+ | N' | ||
+ | |||
+ | ===== Fichiers ajoutés/ | ||
+ | |||
+ | __Source:__ | ||
+ | < | ||
+ | File Text status | ||
+ | mtElements/ | ||
+ | mtElements/ | ||
+ | mtElements/ | ||
+ | mtElements/ | ||
+ | mtElements/ | ||
+ | mtElements/ | ||
+ | mtFEMBase/ | ||
+ | mtFEMBase/ | ||
+ | mtMath/ | ||
+ | mtMath/ | ||
+ | </ | ||
+ | |||
+ | __Un test EAS sur maillage non uniforme: | ||
+ | < | ||
+ | apps/ | ||
+ | </ | ||
+ | |||
+ | --- // | ||