Table of Contents
Commit 2008-11-12
Modifs
Trièdre
Introduction d'un objet géométrique de type trièdre. Ce trièdre est défini par 3 points pt0, pt1 et pt2. pt0 est l'origine du trièdre. La droite pt0-pt1 est la direction du premier axe (axe x local). La troisième direction (axe z local) est définie par le produit vectoriel des directions pt0-pt1 et pt0-pt2. Enfin, la deuxième direction (axe y local) est défini par le produit vectoriel des directions x et z local. Syntaxiquement, on écrit:
triedre1 = Triedre(pt0,pt1,pt2)
pt0, pt1 et pt2 sont définis, soit via des points géométriques, soit des noeuds topologiques.
Doc qui va avec.
Opérateur géométrique d'alignement
Introduction d'un opérateur géométrique d'alignement qui permet d'effectuer un changement de repère et de repositionner un objet géométrique (maillé ou non). C'est utile quand, par exemple, Techspace-Aero envoie des maillages dans un mauvais système d'axes… Cet opérateur d'alignement est défini par deux trièdres (d'où la définition de l'objet Triedre ci-dessus):
opAl = AlignmentOperator(triedreRef,triedreMesh) tpointset.move(opAl)
si on veut bouger les points topologiques. triedreRef est le trièdre dans lequel on veut placer le maillage et triedreMesh est le trièdre modélisant un système d'axes local du trièdre à déplacer.
Optimisation de forme
Modification de la fonction ShapeValueExtractor pour utiliser le trièdre plutôt que des axes comme c'était fait jusque maintenant. On écrit à présent:
sve1 = ShapeValueExtractor(object1, object2) sve1.setTriedreRef(triedreRef) sve1.setTriedreMesh(triedreMesh)
où object1 et object2 sont respectivement la forme à optimiser (géométrie maillée) et la forme optimisée. Les fonctions setTriedreRef(triedreRef) et setTriedreMesh(triedreMesh) définissent les systèmes d'axes de la forme optimisée et du maillage à optimiser.
Rupture
- Correction du numéro d'élément cassé (le numéro d'élément qui s'affichait n'était pas correct dans le cas d'éléments de frontière).
- Ajout dans l
'ObjectBrowserdu flagisActivedans l'ElementSet. - Appel plus judicieux de la fonction établissant si des éléments de frontière (contact, pression…) sont cassés ou non.
Matériaux
- Suite à une question récurrente de notre chef bien aimé “Et Johnson-Cook sans tenir compte de la température, ça donne quoi??”, j'ai commité (et ajouté des tests) une loi de Johnson-Cook purement mécanique
JohnsonCookMecIsotropicHardeningetJohnsonCookMecPlasticViscosity. La loi d'évolution de la limite d'élasticité s'écrit:
$$ \bar\sigma = \left(A+B\left(\bar\varepsilon^{pl}\right)^n\right)\left(1+C\ln\frac{\dot{\bar\varepsilon}^{pl}}{\dot\varepsilon_0}\right) $$
- Suppression de la fonction
getShearModulus()etgetCompressionModulus()dans les matériaux hypo qui n'était jamais appelé nulle part. Il y a de toute façon déjà les fonctionsgetG()etgetK() - Matériaux TM :
- Regroupement de
DISSIP_TQetDISSIP_TEdans la classe de baseTmMaterial - Regroupement de
HEAT_CAPACITYetCONDUCTIVITYdans la classe de baseThermalMaterial
Divers
- Importation des penta de Bacon avec
dat2py - Ajout d'un test de l'aube de ma thèse avec frottement
- Suppression de fonctions inutiles dans
Vect3etVect2(jamais appelées) - Suppression de cas-tests redondants dans les matériaux
- Doc des opérateurs de transformation géométrique et de la définition d'axes.
Fichiers ajoutés
R apps/monosMaterials/tmEvpIsoFast2dAxiImp.py R apps/monosMaterials/tmEvpIsoFast2dEpeImp.py R apps/monosMaterials/tmEvpIsoFast3dImp.py A apps/qs/Alignment2d.py A apps/qs/Alignment3d.py A mtGeo/mtGeoAlignmentOperator.cpp A mtGeo/mtGeoAlignmentOperator.h A mtGeo/mtGeoTriedre.cpp A mtGeo/mtGeoTriedre.h A mtMaterialLaws/isohard/JohnsonCookMecIsotropicHardening.cpp A mtMaterialLaws/isohard/JohnsonCookMecIsotropicHardening.h A mtMaterialLaws/plastvisco/JohnsonCookMecPlasticViscosity.cpp A mtMaterialLaws/plastvisco/JohnsonCookMecPlasticViscosity.h A techspace/tests/aubeImpametaFrot.dat A techspace/tests/aubeImpametaFrot.py
— Pierre-Paul Jeunechamps 2008/11/12 09:04
