Table of Contents
Commit 2010-03-06
Ce commit rassemble les derniers développements que j'ai faits lors de la rédaction de mon manuscrit de thèse. Je vais procéder en deux temps. Ce commit concerne uniquement le code source. Je commiterai ensuite les cas-tests.
Modifs
MirrorReZoner2
Ce nouveau ReZoner
ALE permet de repositionner les nœuds sur une entité géométrique (une courbe généralement) en “copiant” les coordonnées des nœuds d'une autre entité. Ça correspond au repositionnement “miroir” de la thèse de JPP.
rez = MirrorReZoner2(target, modele, comp, rev)
target
: entité ciblemodele
: l'entité qu'on copie (il faut le même nombre de nœuds quetarget
)comp
: la composante à copier (TX
,TY
ouTZ
)rev
: parcourt la liste des noeuds à l'envers (True
ouFalse
)
J'utilise ce ReZoner
pour la barre de Taylor dans ma thèse (pas encore commité).
Calcul des flux convectifs ALE
J'ai interfacé une méthode qui permet de choisir la manière dont les flux convectifs ALE sont calculés. Normalement, il n'est pas nécessaire de modifier ces paramètres sauf pour analyser finement ce qui se passe.
aleMethod.setFluxMethod(mth)
où mth
peut valoir:
FLX_NORLAG
: calcul des flux en se basant sur la normale lagrangienne aux facettes.FLX_NOREUL
: calcul des flux en se basant sur la normale eulérienne aux facettes.FLX_NORMOY
: calcul des flux en se basant sur la normale moyenne.FLX_REAL
: calcul des flux exacts (défaut).
Cette liberté sur le calcul des flux se traduit par une légère pertes de perf. sur les cas tests ALE.
Calcul des flux parasites aux frontières
Là aussi, cette option est seulement utile pour faire de la démo dans le cadre d'un manuscrit de thèse. Les valeurs par défaut fonctionnent très bien.
aleMethod.setBcFluxMethod(mth)
où mth
peut valoir:
BCFLX_ZERO
: Les flux sont considérés nulsBCFLX_CST
: Les flux parasites sont pris en compte et calculés en considérant une reconstruction constante du champ inconnu (défaut).BCFLX_LINEAR
: Les flux parasites sont pris en compte et calculés en considérant une reconstruction linéaire du champ inconnu.
Timer ALE
L'ALE est maintenant chronométrée. Un bilan récapitulatif du coût des différentes phases est simplement affiché en fin de calcul.
Splines / remaillage ALE spline
Les splines (CubicSpline
) et le repositionnement spline (SplineCurveReZoner
) peuvent être paramétrés:
rez = SplineCurveReZoner(curve) rez.setTangentType(mth)
avec mth
:
SPLINE_LS
: Spline de McConnalogue (LS pour Laurent Stainier)SPLINE_LITT
: Les splines du cours de Litt (est-il toujours vivant?)SPLINE_DISC
: Tangentes nulles ⇒ ligne brisée (correspond à ce que j'appelle “repositionnement naïf” dans ma thèse)
Loi de frottement à saturation variable
J'ai codé de manière un peu crade une loi de Tresca qui dépend de la limite élastique (ou la limite d'élasticité pour JPP ) courante extrapolée au nœud de contact.
Puisque c'est mal foutu, le code est commentarisé dans oo_meta\mtElements\boundaries\ContactElement.inl
. Idéalement, il faudrait nettoyer tout ça…
Bugs
- ALE: Recalcul de la matrice des masses dans
IsoTherStaggeredTmTimeIntegration
dans le cas de l'utilisation de l'ALE. - Batterie: Correction de
dat2py
pour la batterie multithread (ca merdouillait dans les nouvelles pierrepolades). - Batterie: Correction du multithread
- Batterie: Correction des matlabs qui freezent sous Windows en multi-cpu avec la version R2009a.
Écrouissage mixte en ALE
Il est possible de faire de l'écrouissage cinématique avec de l'ALE (EvpMixtHHypoGpState
). Le tenseur des backstress (1 seul) est convecté avec le reste des grandeurs aux points de Gauss.
Maillage variable
J'ai fait quelques modifs dans toolbox.varmesh
qui contient des classes permettant de gérer facilement des zones de raffinement de maillage. Testé dans le modèle de planage notamment.
Modèle de profilage lagrangien
Pour le travail du TFiste de Barbara Rossi, j'ai ajouté la sortie des grandeurs IF_YIELD
et IF_EPL
sur la section de mesure du modèle de profilage lagrangien.
Projet
Fichiers ajoutés/supprimés
mtALE/MirrorReZoner2.cpp added mtALE/MirrorReZoner2.h added
— Romain BOMAN 2010/03/06 16:25