Recommandations d’utilisation ============================= .. _RefHeading__29643080: Introduction du champ thêta --------------------------- .. _RefHeading__29652873: Conditions à respecter ~~~~~~~~~~~~~~~~~~~~~~ Le champ :math:`\theta` est un champ de vecteurs, défini sur le solide fissuré, qui représente la transformation du domaine lors d'une propagation de fissure. Ce champ doit vérifier les conditions suivantes : * La transformation ne doit modifier que la position du fond de fissure et pas le bord du domaine :math:`\partial \Omega`. Le champ :math:`\theta` doit donc être tangent à :math:`\partial \Omega` (en particulier aux lèvres de la fissure), c'est-à-dire, en notant :math:`n` la normale à :math:`\partial \Omega` : .. math:: \theta \cdot n = 0 \quad \text{sur } \partial \Omega. * Le champ :math:`\theta` doit être localement dans le plan tangent aux lèvres de la fissure et en 3D normal à l'arête à laquelle il appartient. Ceci correspond à la direction de propagation de la fissure. * Le champ :math:`\theta` doit également être continu sur :math:`\Omega` . Conseil sur le choix des couronnes Rinf et Rsup ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dans Code_Aster, le choix a été fait de définir le champ :math:`\theta` de la façon suivante : * la direction du champ est colinéaire à la direction de propagation de la fissure. En 3D, on prend la direction locale de la projection du nœud considéré sur le fond de fissure ; * la norme de :math:`\theta` est définie à partir de deux couronnes (ou tores en 3D) , de rayon :math:`{R}_{\inf}` et :math:`{R}_{\sup}` . En deçà de :math:`{R}_{\inf}` , le module du champ thêta est constant et égal à 1, au delà il est nul et il est linéaire entre les deux, cf. . .. image:: images/Object_127.svg :width: 471 :height: 170 .. _RefImage_Object_127.svg: **Figure** 4.1.2-1 **: Définition géométrique du champ thêta** La construction du champ théta est décrite précisément dans [:ref:`R7.02.01 `]. Elle est implantée dans la commande CALC_G. En 2D et en axisymétrique le fond de fissure :math:`{\Gamma}_{0}` se limite à un point. L'utilisateur définit: * les rayons :math:`{R}_{\inf}` et :math:`{R}_{\sup}` , En 3D l’utilisateur définit: * les rayons :math:`{R}_{\inf}(s)` et :math:`{R}_{\sup}(s)` , * la topologie du fond de fissure: ouvert ou fermé suivant si la fissure est débouchante ou non, **Remarque :** * *Les champs de déplacement et de contrainte sont singuliers en fond de fissure ; la précision du calcul est donc moins bonne au voisinage du fond. On note que la forme du champ thêta* *choisie (* :math:`\theta .m` *constant entre 0 et* :math:`{R}_{\inf}` *) permet justement d'annuler la contribution du terme classique de* :math:`G(\theta )` *à l'intérieur de la première couronne (terme en* :math:`{\int}_{\Omega}\left[\sigma (u):(\nabla u.\nabla \theta )-\Psi (\varepsilon (u))div\theta \right]d\Omega` *).* * *Ne pas oublier que les chargements appliqués au-delà de* :math:`{R}_{\sup}` *ont une contribution nulle dans les post-traitements de mécanique de la rupture. Ceci peut être utile si on applique un chargement non supporté comme* *FORCE_NODALE,* *DDL_IMPO(en 2D) ou* *FACE_IMPO(en 3D).* **Conseils sur le choix des rayons** :math:`{R}_{\inf}` **et** :math:`{R}_{\sup}` **:** le calcul des grandeurs de mécanique de la rupture est théoriquement indépendant du choix de la couronne d’intégration (en l'absence de chargement sur les lèvres, volumique ou thermique). Néanmoins il est préférable de respecter quelques règles: * ne jamais prendre :math:`{R}_{\inf}` ou trop petit par rapport aux dimensions du problème car les déplacements singuliers sont mal calculés au voisinage du fond de fissure (cf. remarque ci-dessus) ; * le rayon supérieur :math:`{R}_{\sup}` peut être aussi grand que l’on veut à condition que la couronne ainsi définie soit contenue dans le solide. En 3D, il ne faut pas prendre un rayon :math:`{R}_{\sup}` trop grand, sinon la direction du champ thêta (calculée par projection sur le fond de fissure) peut être imprécise ; * le choix des rayons :math:`{R}_{\inf}` et :math:`{R}_{\sup}` est indépendant de la topologie du maillage. Cependant, si le maillage est rayonnant en pointe de fissure, il est recommandé de prendre des couronnes d'intégration coïncidentes avec les couronnes du maillage (réduction des oscillations de :math:`G` le long du fond de fissure en 3D) ; * en thermo-élastoplasticité, on utilise une fissure comme entaille. On s’assurera que le rayon inférieur :math:`{R}_{\inf}` est bien supérieur au rayon de l’entaille. * Prendre plusieurs couronnes consécutives pour vérifier [:ref:`R1,R2 `], [:ref:`R2,R3 `], [:ref:`R3, R4 `],... Pour se fixer les idées, pour une fissure de longueur *a* en milieu infini, la taille des éléments en fond de fissure doit être inférieure à :math:`a/10` pour obtenir une erreur raisonnable (de l'ordre du % sur :math:`\mathrm{K1}` ). Pour les couronnes d'intégration, on prend alors généralement :math:`{R}_{\inf}` de l'ordre de 1 à 3 fois la taille des éléments au voisinage du fond ; et :math:`{R}_{\sup}` de 3 à 7 fois la taille des éléments. Une détermination automatique de :math:`{R}_{\inf}` et :math:`{R}_{\sup}` est possible (ces mot-clés sont facultatifs). S'ils ne sont pas indiqués, ils sont automatiquement calculés à partir du maximum :math:`h` des tailles de mailles connectées aux nœuds du fond de fissure. Il a été choisi de prendre :math:`{R}_{\sup}=4h` et :math:`{R}_{\inf}=2h` . Si on choisit la valeur automatiquement calculée pour :math:`{R}_{\inf}` et :math:`{R}_{\sup}` , il convient toutefois de s'assurer que ces valeurs (affichées dans le fichier .mess) sont cohérentes avec les dimensions de la structure. .. _RefHeading__343561511: Problème de la discrétisation en 3D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ En 3D, pour un nœud courant du fond de fissure, la direction de propagation est définie comme étant la moyenne des normales aux mailles segments du fond de fissure à sa gauche et à sa droite. Pour les nœuds extrémités, la normale est calculée à partir d'une seule maille, et peut donc être moins précise, voire fausse. **Fissure débouchante orthogonalement aux bords:** les vecteurs de direction de propagation à l'origine et à l'extrémité du fond sont automatiquement calculés en prenant en compte les bords de la structure. Les mots-clés DTAN_ORIG et DTAN_EXTR(commande DEFI_FOND_FISS pour le calcul de G sur une fissure maillée) qui permettent d'imposer la direction de ces vecteurs n'ont donc pas besoin d'être précisés. **Fissure débouchante de façon non perpendiculaire** : à l’extrémité débouchante du fond de fissure, le champ :math:`\theta` ne peut pas simultanément être normal à l'arête à laquelle il appartient (dans le plan tangent des lèvres de la fissure) et vérifier la condition :math:`\theta .n=0` sur :math:`\partial \Omega` . La solution conseillée est d'imposer comme direction de propagation aux extrémités (mots-clés DTAN_ORIG et DTAN_EXTR) la moyenne de la normale au fond de fissure en ce point :math:`{\theta}_{1}` et de la tangente à l'arête :math:`{\theta}_{2}` . .. image:: images/Object_287.svg :width: 471 :height: 170 .. _RefImage_Object_287.svg: Figure 4.1.3-1: Direction de propagation aux extrémités de la fissure .. _RefNumPara__10958_534301441: .. _RefHeading__353909271: Méthodes d’interpolation en 3D ------------------------------ Cadre général ~~~~~~~~~~~~~ Le taux de restitution d'énergie local :math:`G(s)` est solution de l'équation variationnelle .. math:: {\int}_{{\Gamma}_{0}}G(s)\theta (s).m(s)\mathrm{ds}=G(\theta ),\forall \theta \in \Theta Pour résoudre cette équation, on décompose le champ scalaire :math:`G(s)` sur une base que nous notons :math:`{({p}_{j}(s))}_{1\le j\le N}` . Soit :math:`{G}_{j}` les composantes de :math:`G(s)` dans cette base: .. math:: G(s)=\underset{j=1}{\overset{N}{\Sigma}}{G}_{j}{p}_{j}(s) on se donne une base de fonctions tests pour :math:`\theta` en choisissant :math:`P` champs :math:`{\theta}^{i}` indépendants pour la trace du champ :math:`\theta` sur le fond de fissure :math:`{\Gamma}_{0}` : :math:`{(\stackrel{ˉ}{{\theta}^{i}}(s))}_{1\le i\le P}` . Les :math:`G_j` sont déterminés en résolvant le système linéaire à :math:`P` et :math:`N` inconnues : .. math:: \sum_{j=1}^{N} a_{ij} G_j = b_i, \quad i=1, P avec : .. math:: \begin{cases} a_{ij} = \sum_{k=1}^{M} \theta_k^i \int_{\Gamma_O} p_j(s) q_k(s) \cdot m(s) \, \mathrm{d}s \\ b_i = G(\theta^i) \end{cases} Ce système a une solution si on choisit :math:`P` champs :math:`\theta^i` indépendants tels que :math:`P \geq N` et :math:`M \geq N`. Il peut comporter plus d'équations que d'inconnues, auquel cas il est résolu au sens des moindres carrés. Méthodes de discrétisation de G ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dans *Code_Aster* , on a choisi deux familles de bases (cf.[§2.2]): * les polynômes de LEGENDRE :math:`{\gamma}_{j}(s)` de degré :math:`j` (:math:`0=j=7` ), * Les fonctions de forme du nœud :math:`k` de :math:`\Gamma_0` : :math:`\Phi_k(s)`, avec :math:`1 \leq k \leq \text{NNO}` (nombre de nœuds de :math:`\Gamma_0`). Elles sont de degré 1 pour les éléments linéaires et de degré 2 pour les éléments quadratiques. Ces familles de bases et les systèmes linéaires à résoudre sont décrits précisément dans la documentation de référence [:ref:`R7.02.01 `]. L'utilisation des fonctions de forme est appelée 'LINEAIRE' dans *Code_Aster*. Remarques et conseils ~~~~~~~~~~~~~~~~~~~~~ * **Choix de la méthode :** il est difficile de donner une préférence à l’une ou l’autre méthode. En principe les deux donnent des résultats numériques équivalents. Néanmoins la méthode LINEAIRE (par défaut) est un peu plus coûteuse en temps CPU que la méthode LEGENDRE. Il est **indispensable d'utiliser plusieurs méthodes** et de comparer des résultats, afin de conforter la validité du modèle. * **Choix du degré maximum des polynômes de Legendre** : ce choix dépend du nombre de nœuds en fond de fissure. Si on a un faible nombre de nœuds (une dizaine) il est inutile de prendre un degré supérieur à 3 (on conçoit facilement que les résultats sont médiocres si on essaie de trouver un polynôme de degré 7 passant par 10 points). Au-delà d’une vingtaine de nœuds en fond de fissure on peut utiliser des degrés allant jusqu’à 7. L’expérience montre que le choix d’un degré égal à 5 donne de bons résultats dans la plupart des cas (cf. remarque ci-dessous). * **Cas des fissures fermées :** si le fond de fissure est une courbe fermée, des problèmes de continuité de la solution au point arbitrairement choisi comme abscisse curviligne origine interdisent l’emploi des polynômes de Legendre. Si le fond de fissure a été déclaré «fermé» dans DEFI_FOND_FISS, on doit utiliser les fonctions de forme. * **Problème du non respect de la symétrie:** si on ne modélise que la moitié du solide par rapport à la fissure, on doit en principe avoir une courbe :math:`G(s)` dont la pente de la tangente est nulle à l’interface de la symétrie. Ceci n’est pas respecté par les deux méthodes. Les valeurs de :math:`G(s)` obtenues aux extrémités du fond de fissure doivent toujours être interprétées avec prudence, surtout si la fissure est débouchante de façon non perpendiculaire (voir § :ref:`4.1.3 ` ). * **Cas des maillages libres:** Dans ce cas, il est recommandé d'utiliser l'opérande NB_POINT_FOND de CALC_G. Le choix d'un rapport de l'ordre de 5 entre le nombre de points total en fond de fissure et le nombre de points de calcul semble approprié. Un choix de 20 points en fond de fissure est souvent judicieux. * **Performance** : l'opérande NB_POINT_FOND peut également être utilisé afin de réduire le temps de calcul de CALC_G. Conseils pour les calculs avec POST_K1_K2_K3 -------------------------------------------- **Choix de la distance d'extrapolation:** la distance d'extrapolation ABSC_CURV_MAXI est le seul paramètre utilisateur. En général, cette distance est choisie égale à 3 à 5 fois la taille des éléments au voisinage du fond de fissure. Dans le cas d'une fissure maillée, le paramètre ABSC_CURV_MAXI est facultatif. La valeur par défaut est alors égale à :math:`4h` où :math:`h` est la taille maximale des mailles connectées aux nœuds du fond de fissure. **Cas des fissures maillées:** le maillage doit être de préférence quadratique et comporter suffisamment de nœuds perpendiculairement au fond de fissure. D’autre part, les résultats sont nettement améliorés si, dans le cas où le maillage est composé d’éléments quadratiques, on déplace les nœuds milieux (des arêtes qui touchent le fond de fissure), au quart de ces arêtes en les rapprochant du fond de fissure. Ceci est rendu possible par le mot clé MODI_MAILLE (option 'NOEUD_QUART') de la commande MODI_MAILLAGE [:external:ref:`U4.23.04 `]. **Cas des fissures non maillées:** la précision de la méthode est sensible au choix de la zone d'enrichissement de la méthode X-FEM (paramètre RAYON_ENRI de DEFI_FISS_XFEM). Dans l'idéal, le rayon d'enrichissement et l'abscisse curviligne maximale ABSC_CURV_MAXI sont de l'ordre de trois fois la taille de l'arrête minimale du maillage. **Performances:** dans le cas X-FEM, les calculs sont assez consommateurs en temps et en mémoire s'il y a beaucoup de points sur le fond de fissure. L'utilisation du mot clé NB_POINT_FOND permet de limiter le post-traitement à un certain nombre de points équi-répartis le long du fond. Normalisation, symétries ------------------------ 2D contraintes planes et déformations planes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ En dimension 2 (contraintes planes et déformations planes), le fond de fissure est réduit à un point et la valeur :math:`G(\theta )` issue de la commande CALC_G est indépendante du choix du champ :math:`\theta` : :math:`G=G(\theta )\forall \theta \in \Theta` 3D ~~ En dimension 3, la valeur de :math:`G(\theta )` pour un champ :math:`\theta` donnée est telle que: :math:`g(\theta )={\int}_{{\Gamma}_{0}}G(s)\theta (s).m(s)\mathrm{ds}` Par défaut, la direction du champ :math:`\theta` en fond de fissure est la normale au fond de fissure dans le plan des lèvres. En choisissant un champ :math:`\theta` unitaire au voisinage du fond de fissure, on a alors : :math:`\theta (s).m(s)=1` et: :math:`G(\theta )={\int}_{{\Gamma}_{0}}G(s)\mathrm{ds}`