Table of Contents
Commit 2008-11-21
Modifs
ALE - activable ReZoners
Les ReZoner
s sont maintenant Activable
s. Ceci permet de les activer/désactiver en cours de calcul. L'intêret est évident: changer de méthode en cours de calcul.
tsm = metafor.getTimeStepManager() tsm.setInitialTime(0.0, 1.0e-4) tsm.setNextTime(0.06, 1, 0.1) tsm.setNextTime(1.0, 1, 0.1) stages = metafor.getStageManager() rez1 = UpdEulerCurveReZoner(curve) rez1.deactivate(stages[1]) rez.add(rez1) rez2 = SplineCurveReZoner(curve) rez2.deactivate(stages[0]) rez2.activate(stages[1]) rez.add(rez2)
La courbe curve
est remaillée via UpdEulerCurveReZoner
entre t=0 et t=0.06 et SplineCurveReZoner
pour la suite.
ALE - Nouveau rezoner
MirrorReZoner: permet de conserver la même distance entre deux MeshedObject
s au cours du temps selon une direction spécifiée. Par exemple, si la distance est nulle, on retrouve la méthode “miroir” de la thèse de JPP.
ALE - contact
Précédemment, j'avais essayé de gérer le contact ALE (convection du gap tangent) de manière la plus externe possible vis à vis de l'élément de contact. Ceci dans l'esprit d'une “lib ALE” externe qui ne vient pas perturber le développeur non-ALE… Malheureusement, cette manière de faire me ralentit beaucoup dans mes développements et m'empêche d'essayer pas mal de trucs pour résoudre les derniers problèmes que j'ai dans la gestion du contact ALE. Et vu que rien d'autre est fait dans cet esprit, je devrais, pour continuer dans cette voie et pour bien faire, modifier tout le reste…
Donc, momentanément, j'ai modifié la manière utilisée pour gérer le “post” ALE (classe PostStep
). J'ai modifié l'ancien algo pour coller à ce qui existe déjà c'est à dire l'interface “beginStep”, “endStep”, “beginALE”, … et finalement “endALE”. Je trouve ça pas terrible puisqu'on vient mettre des commandes relatives au schéma d'intégration dans l'élément mais bon, tout le reste est fait ainsi (cfr. les “if conservatif” par exemple). Je n'ai pas le temps de continuer dans l'autre voie et faire du propre… ce sera pour plus tard.
Au niveau de l'interface utilisateur, rien ne change:
# recalcul du glissement pst = ContactPostStep() pst.add(ci1) pst.add(ci2) ale.add(pst)
Nouveautés:
- Recalcul de l'aire de contact après remaillage (et oui, c'était pas fait - je pense pas que ça soit fait en lagrangien)
- Traitement un peu plus malin des noeuds fixés dans une direction & en contact dans l'autre.
Nouveaux tests
ale.pyReZoner
: teste les méthodes de relocalisation ALE utilisateur (écrites en python). Le test a été calqué surale.defaut
et sera la base du TFE ALE de cette année.ale.dCupExtrusion
: “DCET” (Double Cup Extrusion Test), test sur lequel je travaille à Birmingham avec Prof. Hartley. Il s'agit de la simulation d'un test tribologique pour évaluer le frottement en forgeage. Ce test est un peu long pour l'instant (~10min). Je le modifierai plus tard pour qu'il prenne moins de temps.ale.parallelCurvesRZ
: testeParallelCurvesReZoner
. Une méthode de relocalisation utile pour la simulation du planage que j'avais introduite dans Metafor lors du stage de Ha Minh et qui n'était pas testée.
Autres
- Mailleur par extrusion: utilisation d'un stdSet au lieu d'un hashSet pour la generation de la liste des noeuds a extruder. Ca permet d'avoir toujours la même numérotation et, au final, de pouvoir recharger les facs correctement. Une raison de plus pour sauver le maillage dans les facs (entre autres).
Projet
Les SWIG directors de CurveReZoner
sont maintenant testés dans apps.ale.pyReZoner
. Normalement ça change rien mais si ce test ne passe pas chez vous, c'est qu'il y a une merde a ce niveau dans votre projet.
Fichiers ajoutés/supprimés
mtALE/MirrorReZoner.cpp added mtALE/MirrorReZoner.h added apps/ale/dCupExtrusion.py added apps/ale/parallelCurvesRZ.py added apps/ale/pyReZoner.py added
— Romain BOMAN 2008/11/21 09:39