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
'ObjectBrowser
du flagisActive
dans 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
JohnsonCookMecIsotropicHardening
etJohnsonCookMecPlasticViscosity
. 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_TQ
etDISSIP_TE
dans la classe de baseTmMaterial
- Regroupement de
HEAT_CAPACITY
etCONDUCTIVITY
dans 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
Vect3
etVect2
(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