Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2006:11_24



Commit 2006-11-24

Modifs

  • Nettoyage de apps pour introduire la nouvelle formulation de la géométrie (voir précédent commit Robo).
  • Correction dans apps.stp.cont2, seule la partie inférieure de la matrice se déplaçait (pas très joli).
  • Nettoyage des cas tests utilisant tpoi.define (par exemple apps.qs.elbowModif4b) quand c'était possible. Les fichiers de données sont à présent lisibles et beaucoup plus petits!
  • Nettoyage de toolbox.createMaterial (uniformisation des noms des fonctions)
  • Ajout d'un outil de sélection de noeuds selon un anneau circulaire : AnnealedSelector (j'ai hésité à appeler la classe AnalSelector). Ce n'est encore possible que selon un cylindre orienté selon x, y ou z.

Utilisation (voir aussi apps.qs.sph3d) :

groupset.copy(Group(numero))
groupset(numero).addMeshPointsFromObject(nobj, type_id, AnnealedSelector(lock, cx, cy, cx, Rmin, Rmax))

numero numéro du groupe
nobj numéro de l'entité
type_id identificateur de l'entité (CURVE_ID, SIDE_ID, GROUP_ID, etc) - voir PhySet
lock TX, TY ou TZ : direction de l'axe du cylindre
cx, cy, cz coordonnées du centre du cercle générant l'anneau
Rmin, Rmax rayon minimum et maximum de l'anneau
  • Regroupement des paramètres de l'algorithme d'adaptation de pression (loadAdaptationManager). Il y en avait dans le loadAdaptationManager (LAM_METHOD), dans le matériau (DEVP_OPT pour la vitesse de déformation optimale) et dans l'élément de traction (POPT_MAT pour le numéro du matériau où on appliquait la pression et qui déterminait aussi si la LoadingInteraction était à prendre en compte dans l'adaptation de pression!!). A présent, tout est stocké dans le loadAdaptationManager.

Par exemple :

lam = metafor.getLoadAdaptationManager()
lam.setMethod(LAM_METHOD2) # Methode de calcul de l'adaptation de pression
lam.setOptimalStrainRate(3.0E-4) # Vitesse de defo optimale (ancien DEVP_OPT)
lam.setOptimalPressureMaterial(3) # Numero du materiau ou s'applique l'adaptation de pression (ancien POPT_MAT)
lam.setOptimalPressureProperty(1) # Numero du property ou s'applique l'adaptation de pression
  • Endommagement :
    • Réécriture des lois de Laurent Adam (et corrections diverses) selon la formulation utilisant les materialLaws.
    • Outre l'aspect esthétique des routines (ce n'était pas toujours du luxe), cela permet de n'avoir plus qu'une seule formulation des matériaux dans Metafor.
    • C'est maintenant possible aussi (en théorie) de rajouter des lois d'endommagement sans y passer 6 mois.
    • En pratique, sur le même modèle que IsotropicHardening, une classe mère Damage a été créée pour rentrer une nouvelle loi d'endommagement. Le matériau d'endommagement ne fait qu'appeler les objets de cette classe pour l'intégration de la loi constitutive. Ainsi, les 3 matériaux evpdHypoMaterial, spfHypoMaterial (qui comprend 2 lois) sont regroupés en un seul matériau EvpIsoHDamageHypoMaterial et 3 lois d'endommagement sont à présent dans Metafor : Gurson-Tvergaard, Khaleel et celle que j'ai appelée “Adam-Khaleel” qui est le modèle de Khaleel modifié par Laurent Adam dans sa thèse (ancien spfHypoMaterial).
    • Tout n'est pas encore parfait : pas d'écrouissage mixte, pas de thermomec, pas de choix du critère de plasticité (seul Von-Mises existe) et pas encore non plus de matrice de raideur tangente analytique (qui n'a jamais existé pour ce matériau d'ailleurs)
  • Doc :
    • Mise en format Dokuwiki des petits mémos.
    • Mise à jour de la doc du mailleur d'extrusion.
    • Mise à jour de la doc des matériaux.
    • Doc sur les lois d'endommagement.

Fichiers ajoutés/supprimés

A apps/monosMaterials/evpIsoDamage2dAxiCis.py
A apps/monosMaterials/evpIsoDamage2dAxiCis2.py
A apps/monosMaterials/evpIsoDamage2dAxiComp2.py
A apps/monosMaterials/evpIsoDamage2dAxiComp2Visco.py
A apps/monosMaterials/evpIsoDamage2dAxiTrac.py
A apps/monosMaterials/evpIsoDamage2dEpeCis.py
A apps/monosMaterials/evpIsoDamage2dEpeCis2.py
A apps/monosMaterials/evpIsoDamage2dEpeCis2Visco.py
A apps/monosMaterials/evpIsoDamage2dEpeTrac.py
A apps/monosMaterials/evpIsoDamage2dEpeTrac2.py
A apps/monosMaterials/evpIsoDamage3dCis.py
A apps/monosMaterials/evpIsoDamage3dTrac.py
R apps/monosMaterials/evpdHypo2dAxiCis.py
R apps/monosMaterials/evpdHypo2dAxiComp2.py
R apps/monosMaterials/evpdHypo2dAxiComp2Visco.py
R apps/monosMaterials/evpdHypo2dAxiTrac.py
R apps/monosMaterials/evpdHypo2dEpeCis.py
R apps/monosMaterials/evpdHypo2dEpeCis2.py
R apps/monosMaterials/evpdHypo2dEpeCis2Visco.py
R apps/monosMaterials/evpdHypo2dEpeTrac.py
R apps/monosMaterials/evpdHypo2dEpeTrac2.py
R apps/monosMaterials/evpdHypo3dCis.py
R apps/monosMaterials/evpdHypo3dTrac.py
A mtMaterialLaws/damage
A mtMaterialLaws/damage/AdamKhaleelDamage.cpp
A mtMaterialLaws/damage/AdamKhaleelDamage.h
A mtMaterialLaws/damage/AdamKhaleelDamageShcuts.h
A mtMaterialLaws/damage/AdamKhaleelDamageShcuts.inl
A mtMaterialLaws/damage/Damage.cpp
A mtMaterialLaws/damage/Damage.h
A mtMaterialLaws/damage/DamageShcuts.h
A mtMaterialLaws/damage/DamageShcuts.inl
A mtMaterialLaws/damage/GursonTvergaardDamage.cpp
A mtMaterialLaws/damage/GursonTvergaardDamage.h
A mtMaterialLaws/damage/GursonTvergaardDamageShcuts.h
A mtMaterialLaws/damage/GursonTvergaardDamageShcuts.inl
A mtMaterialLaws/damage/KhaleelDamage.cpp
A mtMaterialLaws/damage/KhaleelDamage.h
A mtMaterialLaws/damage/KhaleelDamageShcuts.h
A mtMaterialLaws/damage/KhaleelDamageShcuts.inl
A mtMaterials/volumes/EvpIsoHDamageHypoGpState.cpp
A mtMaterials/volumes/EvpIsoHDamageHypoGpState.h
A mtMaterials/volumes/EvpIsoHDamageHypoMatShcuts.cpp
A mtMaterials/volumes/EvpIsoHDamageHypoMatShcuts.h
A mtMaterials/volumes/EvpIsoHDamageHypoMaterial.cpp
A mtMaterials/volumes/EvpIsoHDamageHypoMaterial.h
R mtMaterials/volumes/EvpdHypoGpState.cpp
R mtMaterials/volumes/EvpdHypoGpState.h
R mtMaterials/volumes/EvpdHypoGpkState.cpp
R mtMaterials/volumes/EvpdHypoGpkState.h
R mtMaterials/volumes/EvpdHypoMatShcuts.cpp
R mtMaterials/volumes/EvpdHypoMatShcuts.h
R mtMaterials/volumes/EvpdHypoMaterial.cpp
R mtMaterials/volumes/EvpdHypoMaterial.h
R mtMaterials/volumes/SpfEvpdHypoGpState.cpp
R mtMaterials/volumes/SpfEvpdHypoGpState.h
R mtMaterials/volumes/SpfEvpdHypoMaterial.cpp
R mtMaterials/volumes/SpfEvpdHypoMaterial.h

Pierre-Paul Jeunechamps 2006/11/24 11:42

commit/2006/11_24.txt · Last modified: 2016/03/30 15:23 (external edit)