====== 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é sur ''ale.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'': teste ''ParallelCurvesReZoner''. 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 --- //[[r_boman@yahoo.fr|Romain BOMAN]] 2008/11/21 09:39//