Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2013:12_09

Commit 2013-12-09

Assumed Natural Strains (ANS)

  • En bref, les éléments ANS ont été développés pour améliorer la précision d'éléments aplatis, avec un mauvais aspect ratio, dans les simulations de structures minces. On les combine avec les EAS (Enhanced Assumed Strains) pour obtenir des coques solides (solid shell). Le principe des ANS est de calculer certaines composantes des déformations dans l'élément en interpolant les valeurs des déformations calculées de façon classique en différents points, situés généralement sur les frontières avec les voisins. La méthode se décline en différentes variantes selon le nombre et la position des points d'interpolation.
  • Dans Metafor, les modifications apparaissent principalement au niveau des méthodes d'intégration (classes […]MechVolIntegMeth).
    • Le calcul des défos ne se fait plus directement par appel au matériau mais via un objet de type StrainCalcMethod, stocké dans VolumeElement, qui définit la méthode de calcul. Il était nécessaire de créer un objet au niveau de l'élément puisque le calcul des défos en un point de Gauss utilise des données calculées pour l'élément et communes à tous les points de Gauss.
    • C'est la classe StrainCalcMethodBuilder qui crée cet objet en fonction des paramètres utilisateur. Par défaut, c'est un objet de type StrainCalcMethodNormal qui est créé et rien ne change par rapport à l'approche normale. Pour utiliser les ANS, on joue sur le paramètre STRAINCALCMETH de ElementProperties : par exemple, prp.put( STRAINCALCMETH, SCM_ANS1 ).
    • La seule méthode ANS implantée pour l'instant est celle de Dvorkin-Bathe, disponible dans la classe StrainCalcMethodANS1Hexa.
    • La structure est conçue pour permettre facilement la définition d'autres éléments ANS, en dérivant StrainCalcMethod.
    • Par souci de cohérence, le calcul des défos nécessaires aux méthodes conservatives (barStrain, midConfigurationStrain) passe aussi par StrainCalcMethod.
    • Par effet de bord, dans les fonctions de forme, les fonctions getCellType() sont devenues const.
  • Il y a des limitations aux ANS qui ne peuvent être appliqués qu'aux hexaèdres. Normalement, un message d'erreur explicite sanctionne toute tentative d'utilisation illicite. La combinaison des ANS avec les XFEM reste également une question ouverte.
  • La structure est en place mais pour l'instant, les ANS ne sont pas fonctionnels: ça compile, ça tourne mais les résultats me semblent bizarres. Il reste des choses à régler, c'est d'ailleurs pour ça qu'il n'y a pas de cas-test dédié. J'y travaille.

Lois de comportement composites

  • Des lois d'écrouissage et d'endommagement particulières pour les plis composites ont été introduites. Elles permettent une bonne représentation du comportement en cisaillement des différents stratifiés à fibres tissées étudiés dans le projet E_COM.
    • PowTanhIsotropicHardening : loi d'écrouissage, \begin{equation}\sigma_y=\sigma^{el}+K_1*\overline{\varepsilon}^\gamma+K_2*\text{tanh}(\alpha*(\overline{\varepsilon}-\overline{\varepsilon}_0))\end{equation}
    • WovenCompositeDamagePow2 : loi d'endommagement, \begin{equation}d_{12}^s=K_0+K_1*\underline{Y}^\gamma+K_2*\underline{Y}^{2\gamma}\end{equation}
  • Correction d'erreurs dans les lois d'endommagement composites.
  • Modification des algorithmes de calcul de la plasticité dans les matériaux orthotropes EpIsoHOrthoHypoMaterial et DamageEpIsoHOrthoHypoMaterial. La convergence est améliorée et les plantages observés avec les lois d'écrouissage de type Hollomon, qui ont une dérivée infinie en 0, ont disparu.

Divers

  • Création de ShapeFunctionTemplate.hpp et de ShapeFunctionTemplate.cpp, pour instancier correctement les fonctions de la classe et éviter les problèmes de compilation sous Windows.
  • Modification par Philippe des fichiers de cas-tests suivants, qui plantaient sous Windows :
  apps/ale/forge.py
  apps/remeshing/forge_1.py
  apps/remeshing/forge_2.py
  • Mise à jour de la doc composite, il manque encore les dernières lois d'écrouissage/endo.

Fichiers ajoutés/supprimés

 
A     oo_meta/CMake/lanfeust.cmake
A     oo_meta/mtElements/volumes/methods/StrainCalcMethod.cpp
A     oo_meta/mtElements/volumes/methods/StrainCalcMethod.h
A     oo_meta/mtElements/volumes/methods/StrainCalcMethodANS1Hexa.cpp
A     oo_meta/mtElements/volumes/methods/StrainCalcMethodANS1Hexa.h
A     oo_meta/mtElements/volumes/methods/StrainCalcMethodBuilder.cpp
A     oo_meta/mtElements/volumes/methods/StrainCalcMethodBuilder.h
A     oo_meta/mtElements/volumes/methods/StrainCalcMethodNormal.cpp
A     oo_meta/mtElements/volumes/methods/StrainCalcMethodNormal.h
A     oo_meta/mtMaterialLaws/damage/WovenCompositeDamagePow2.cpp
A     oo_meta/mtMaterialLaws/damage/WovenCompositeDamagePow2.h
A     oo_meta/mtMaterialLaws/isohard/PowTanhIsotropicHardening.cpp
A     oo_meta/mtMaterialLaws/isohard/PowTanhIsotropicHardening.h
A     oo_meta/mtShapeFunctions/ShapeFunctionTemplate.cpp
A     oo_meta/mtShapeFunctions/ShapeFunctionTemplate.hpp
A     oo_meta/mtShapeFunctions/StrainCalcMethodEnums.h
D     oo_meta/mtShapeFunctions/ShapeFunctionTemplate.inl
commit/2013/12_09.txt · Last modified: 2016/03/30 15:23 (external edit)