r7.02.17 Détermination d’une fissure équivalente à partir d’un champ d’endommagement#
Résumé:
La commande POST_ENDO_FISS effectue un post-traitement sur un résultat issu de la mécanique des milieux continus. Le but est de trouver la courbe qui représente la fissure à partir d’un champ représentatif et l’ouverture de fissure. Le champ peut être l’endommagement ou un autre champ scalaire. En entrée, la commande utilise un concept evol_noli ou cham_gd, contenant le champ à post-traiter. Celui-ci doit être un champ aux nœuds. En sortie, la commande renvoie le maillage de la fissure, ainsi qu’une table contenant les coordonnées des nœuds de la fissure et la valeur de l’ouverture sur chaque nœud. La procédure s’applique à des études 2D.
Table des matières
Recherche du trajet de fissuration#
Généralités#
On suppose que la fissure appartient à un certain groupe de mailles (GROUP_MA), sur lequel le champ \(X\) (endommagement, déformation plastique) est défini. La fissure est identifiée par une zone où les valeurs de ce champ sont spécialement élevées, et normalement supérieures à une certaine valeur : endommagement supérieur à \(0\) par exemple.
Dans la suite, la procédure de recherche du chemin de fissuration est décrite. Nous exploitons le fait que, dans le plan orthogonal à la fissure, le champ \(X\) a un maximum sur la fissure elle-même. La procédure est pas-à-pas, un nouveau point de la fissure est trouvé à chaque pas. Elle peut être décrite par le pas-type , par son amorçage et par les critères d’arrêt .
Pas-type#
À chaque étape, la recherche nécessite deux points. Le dernier point trouvé \({P}_{i}\) est le point de départ et le vecteur \(\overrightarrow{{P}_{i-1}{P}_{i}}\) ( \({P}_{i-1}\) étant l’avant-dernier point trouvé) donne la direction de recherche .
Figure 1: schéma du pas-type
A chaque pas-type, les actions suivantes sont exécutées (voir aussi le schéma de la ) :
la position du point suivant est d’abord estimée ( point de prédiction \({P}_{i}^{\mathit{pr}}\) ) à la distance \(a\) du point de départ dans la direction de recherche, \(a\) étant le pas d’avancement ;
le champ \(X\) est projeté sur une ligne orthogonale à la direction de recherche et passant par le point de prédiction ;
le champ projeté est lissé par convolution ( éq ) pour s’affranchir partiellement du maillage (par exemple, si on s’appuie sur des éléments finis à interpolation linéaire, le champ projeté est linéaire par morceaux) ;
le nouveau point de la fissure \({P}_{i+1}\) est celui où le champ lissé atteint sa valeur maximale.
Le lissage évoqué au point 3 est nécessaire: par exemple, si le champ projeté sur le profil orthogonal est linéaire par morceaux, son maximum se trouve forcement sur l’arête d’un élément. Le lissage est accompli par convolution :
\(\overline{X}(s)=\frac{{}_{{l}_{\mathit{orth}}}\intX(\zeta )\Psi (\mid \zeta -s\mid )d\zeta }{{}_{{l}_{\mathit{orth}}}\int\Psi (\mid \zeta -s\mid )d\zeta }\) éq 2.2-1
où \(\overline{X}\) est le champ lissé, \({l}_{\mathit{orth}}\) est la longueur de la ligne orthogonale à la direction de recherche, \(s\) est l’abscisse curviligne sur cette ligne et \(\Psi\) est une fonction de Gauss :
\(\Psi (\mid \zeta -s\mid )=\exp(-{(\frac{2(\zeta -s)}{{l}_{\mathit{reg}}})}^{2})\) éq 2.2-2
Un exemple des champs \(X\) et \(\overline{X}\) en fonction du paramètre \({l}_{\mathit{reg}}\) est donné dans la .
Figure 2: Lissage du champ \(X\) projeté sur la ligne orthogonale.
Un paramètre supplémentaire est donné par le nombre de points sur la ligne orthogonale, \({N}_{\mathit{orth}}\) . Cela détermine la précision du produit de convolution discret, ainsi que la précision \({\delta}_{\mathit{orth}}={l}_{\mathit{orth}}/{N}_{\mathit{orth}}\) (distance entre les points).
La convolution discrète est effectué e par la fonction convolve de la librairie python numpy . Les fonction s \(X(s)\) et \(\Psi (s)\) sont échantillonn ée s sur \({l}_{\mathit{orth}}\) à la distance constante \({\delta}_{\mathit{orth}}\) . En appelant \(\mathrm{X}\) , \(\Psi\) les deux vecteurs échantillonnés, le point \(\overline{{X}_{j}}\) du vecteur \(\overline{\mathrm{X}}\) qui approxime par points la fonction lissée \(\overline{X}(s)\) sera donnée par:
\(\overline{{X}_{j}}=\frac{\sum_{i}{\Psi}_{i}{X}_{i+j}}{\sum_{i}{\Psi}_{i}}\) éq 2.2-3
Initialisation#
Le but de l’initialisation est d’obtenir les deux premiers points, pour poursuivre après comme décrit dans le pas-type. Un schéma de la procédure d’initialisation est donné dans la :
Figure 3: schéma de la procédure d’initialisation.
Dans le détail :
le champ \(X\) est projeté sur un cercle de rayon \(a\) et centre sur le nœud \(1\) où le champ aux nœud a son maximum sur le GROUP_MA choisi ;
le champ \(X\) est lissé sur le cercle via produit de convolution discret ( éq. ), le second point de la fissure \({P}_{2}\) est le point du cercle où \(\overline{X}\) est maximal ;
on corrige la position du point \(1\) par projection et lissage du champ \(\overline{X}\) sur une ligne orthogonale à \(\overrightarrow{{P}_{2}1}\) et passant par \({P}_{2}\) : le nouveau point \(3={P}_{1}\) est trouvé ;
deux directions de recherche possibles sont ainsi déterminés: \(\overrightarrow{{P}_{1}{P}_{2}}\) et \(\overrightarrow{{P}_{2}{P}_{1}}\) .
Critères d’arrêt#
La recherche du chemin de fissuration est accomplie dans les deux directions \(\overrightarrow{{P}_{1}{P}_{2}}\) et \(\overrightarrow{{P}_{2}{P}_{1}}\) jusqu’à arrêt, dans un des cas suivants :
la valeur du champ correspondant au nouveau point est inférieure à une valeur-seuil, définie a priori. Cette valeur doit être renseignée parmi les paramètres de la commande sous l’opérande BORNE_MIN du mot-clé facteur RECHERCHE.
le point de prédiction est en dehors de la matière.
Champs pour la recherche du trajet de fissuration#
La méthode décrite peut être appliquée à tous champs scalaires qui représentent la fissuration du matériaux. Typiquement, c’est l’endommagement \(d\) qui peut être utilisé.
Il arrive parfois que le champ d’endommagement soit trop «plat», et qu’il présente à rupture un plateau avec \(d=1\) . Comme il n’y aurait pas alors un maximum bien défini, la procédure décrite aux paragraphes 2.2 - 2.3 pourrait ne pas donner les résultats souhaités. On peut alors choisir autres champs pertinents : une composante de déformation principale, une déformation équivalente…
Un exemple de choix du champ pertinent est donné par les cas-tests zzzz264b,c [V1.01.264].
Ouverture de fissure#
L’ouverture de fissure est trouvée par différence de déplacement \(\mathit{DN}\) dans la direction normale au trajet de fissuration, entre deux points \({P}_{g},{P}_{d}\) sur cette normale.
Il est alors nécessaire de déterminer :
la ligne normale au trajet de fissuration (compte tenu du fait que la fissure est connue de façon discrète par points),
l’allure des déplacements sur cette ligne, en particulier la composante de déplacement dans le même direction,
les coordonnées des deux points \({P}_{g},{P}_{d}\) pour opérer la différence de déplacement \(\mathit{DN}\) .
La normale est déterminée sur chaque nœud de la fissure comme la bissectrice de l’angle formé par les deux normales aux segments qui ont le nœud en commun (voir ).
Une fois la normale \(n\) déterminée sur un nœud du trajet de fissuration, on effectue un changement de repère sur le champ des déplacements, du repère global au repère \((n,t)\) (\(t\) est le vecteur tangent), en particulier la composante \(\mathit{DN}\) est calculée.
Les points \({P}_{g},{P}_{d}\) sont ceux pour lesquels la relation suivante est satisfaite : \(X\ge\) BORNE_MAX (BORNE_MAX est un paramètre à renseigner comme opérande sous le mot-clé RECHERCHE). La projection du champ \(X\ge\) sur la ligne normale au trajet est donc nécessaire à la détermination de \({P}_{g},{P}_{d}\) (voir ).
Normalement pour les lois d’endommagement, la valeur \(X=d=0.8\) est suffisante à capter le saut de déplacement (voir [V1.01.264]).
Figure 4: normale moyenne au trajet de fissuration pour le calcul de l’ouverture de fissure.
Figure 5 : Projection du déplacement DN et du champ X sur la normale au chemin de la fissure (valeurs normalisées); détermination de \({P}_{g},{P}_{d}\) .
Fonctionnalités et validation#
Conseils pour l’utilisation des paramètres#
En résumé, pour la recherche du trajet de fissuration les paramètres nécessaires sont :
\({l}_{\mathrm{orth}}\) (LONG_ORTH)
\({l}_{\mathrm{reg}}\) (LONG_REG)
\(a\) (PAS)
\({N}_{\mathit{orth}}\) (NB_POINT)
BORNE_MIN
à renseigner sous le mot-clé facteur RECHERCHE. La plage d’utilisation conseillée est la suivante :
\({l}_{\mathit{orth}}\) doit être supérieure ou égale à la largeur de la bande endommagée, des bons résultats sont déjà obtenus en adoptant deux fois cette largeur ;
\({l}_{\mathrm{reg}}\) peut être dans l’intervalle \(0.5\Delta \le {l}_{\mathit{reg}}\le 2\Delta\) , \(\Delta\) étant la taille des éléments finis dans la zones endommagées (compromis entre un lissage suffisant et le risque de perdre trop d’information du profil d’endommagement non lissé);
\(a\) dépend de la courbure du trajet et de combien de points l’utilisateur souhaite pour décrire la fissure, à titre indicatif on peut le prendre aussi dans un intervalle \(0.5\Delta \le a\le 2\Delta\) ;
le choix de \({N}_{\mathrm{orth}}\) doit garantir au moins 10 points par élément fini ;
BORNE_MIN est la valeur du champ pour laquelle la recherche est arrêtée dans une direction ; dans le cas de l’endommagement on prend des valeurs \(>0.5\) pour être sûrs que la fissure soit bien formée.
Pour ce qui concerne le calcul de l’ouverture fissure, le paramètre BORNE_MAX doit être inférieur à 0.8, s i le champ \(X\) est l’endommagement.
Validation#
La commande est validée par le cas-test zzzz264 [V1.01.264].
Dans la modélisation A on recherche un trajet de fissuration et on le compare avec un trajet analytique.
Dans la modélisation B, C, on recherche le trajet de fissuration et l’ouverture sur un résultat mécanique, obtenu en utilisant des lois d’endommagement de Code_Aster .
Description des versions du document#
Version Aster |
Auteur(s) Organisme(s) |
Description des modifications |
11.2 |
|
Texte initial |