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é dansVolumeElement
, 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 typeStrainCalcMethodNormal
qui est créé et rien ne change par rapport à l'approche normale. Pour utiliser les ANS, on joue sur le paramètreSTRAINCALCMETH
deElementProperties
: 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
etDamageEpIsoHOrthoHypoMaterial
. 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 by 127.0.0.1