d4.10.01 Structures de données FOND_FISS#
Résumé:
Ce document décrit la structure de données fond_fiss produite par l’opérateur DEFI_FOND_FISS [U4.82.01] et utilisée par les opérateurs de mécanique de la rupture CALC_G [U4.82.03] et POST_K1_K2_K3 [U4.82.05], POST_T_Q [U4.84.40], POST_K_TRANS [U4.82.30] et CALC_GP [U4.82.09] et POST_JMOD [U4.82.41].
Relations avec les autres structures de données#
Un concept fond_fiss est défini sur un maillage, par l’intermédiaire des entités GROUP_NO ou GROUP_MA décrivant la fissure.
Arborescence de la structure de données fond_fiss#
fond_fiss (K8) :: = record
♦ “.INFO” : S V K8 ◊ “.BASLOC” : CHAM_NO ◊ “.FOND.TAILLE_R” : S V R ◊ “.ABSCUR” : S V R ◊ “.ABSFON” : S V R ◊ “.LTNO” : CHAM_NO ◊ “.LNNO” : CHAM_NO
#si le fond est défini par un seul groupe de nœuds ou de mailles ◊ “.fond.noeu” : S V K8
#Si CONFIG_INIT=”DECOLLEE” dans DEFI_FOND_FISS ◊ “.normale” : S V R
#Si LEVRESUP est présent dans DEFI_FOND_FISS ◊ “.levresup.mail” : S V K8 ◊ “.supnorm.noeu” : S V K8
#Si POST_JMOD UTILISEE Et LEVRESUP est présent dans DEFI_FOND_FISS ◊ “.supnorm.noeu2” : S V K8
#Si LEVRESUP est présent dans DEFI_FOND_FISS ◊ “.levreinf.mail” : S V K8 ◊ “.infnorm.noeu” : S V K8
#Si POST_JMOD UTILISEE Et LEVRESUP est présent dans DEFI_FOND_FISS ◊ “.infnorm.noeu2” : S V K8 (POST_JMOD)
Contenu des objets JEVEUX de base#
“.INFO” |
: |
Vecteur (K8) contenant des informations sur la fissure |
“.fond.noeu” |
: |
vecteur (K8) contenant la liste des N nœuds ordonnés du fond de fissure |
“.normale” |
: |
vecteur de 3 réels contenant les composantes \(({n}_{x},{n}_{y},{n}_{z})\) de la normale au plan des lèvres (cas d’une fissure plane) (voir convention de signe en [U4.82.01 §3.3.5]) |
“.BASLOC” |
: |
champ aux nœuds (CHAM_NO) contenant l’origine et les vecteurs de la base locale au fond de fissure |
“.LTNO” |
: |
champ aux nœuds (CHAM_NO) scalaire qui contient pour chaque nœud du maillage la valeur réelle de la level set tangente à la fissure. |
“.LTNO” |
: |
champ aux nœuds (CHAM_NO) scalaire qui contient pour chaque nœud du maillage la valeur réelle de la level set normale à la fissure. |
“.levresup.mail” |
: |
vecteur (K8) contenant la liste des mailles de la lèvre supérieure de la fissure |
“.levreinf.mail” |
: |
vecteur (K8) contenant la liste des mailles de la lèvre inférieure de la fissure |
“.supnorm.noeu” |
: |
vecteur (K8) contenant la liste des nœuds de la lèvre supérieure sur la direction normale au fond de fissure |
“.supnorm.noeu2” |
: |
vecteur (K8) contenant la liste des nœuds de la lèvre supérieure sur la direction normale au fond de fissure (taille 100) |
“.infnorm.noeu” |
: |
vecteur (K8) contenant la liste des nœuds de la lèvre inférieure sur la direction normale au fond de fissure |
“.infnorm.noeu2” |
: |
vecteur (K8) contenant la liste des nœuds de la lèvre inférieure sur la direction normale au fond de fissure (taille 100) |
“.FOND.TAILLE_R” |
: |
vecteur de réels contenant pour chacun des nœuds du front, une estimation de la taille suivant la direction radiale, des mailles qui leur sont connectées. |
“.ABSCUR” |
vecteur de réels contenant pour chacun des nœuds du maillage 3D, l’abscisse curviligne du projeté ce nœud sur le front de fissure. |
|
“.ABSFON” |
vecteur de réels contenant pour chacun des nœuds front de fissure3D, l’abscisse curviligne dece nœud le long du front |
Contenu des objets de la sd_fond_fiss#
Généralités#
.INFO#
Vecteur de K8 de longueur 3:
V(1) contient la valeur du mot-clé SYME de DEFI_FOND_FISS: “OUI” ou “NON”
V(2) contient la valeur du mot-clé CONFIG_INIT de DEFI_FOND_FISS: “DECOLLEE” ou “COLLEE”
V(3) précise si le fond est ouvert ou fermé: “OUVERT’ou “FERME”
V(4) contient le nom du maillage fournit à DEFI_FOND_FISS via le mot MAILLAGE
Description des entités du fond de fissure#
La liste des noms des nœuds ordonnés du fond de fissure est donnée par le vecteur .FOND.NOEUD. Le fond est constitué d’un ensemble de nœuds contigus dans un élément.
.FOND.NOEUD#
Ce vecteur contient l’ensemble des nœuds décrivant le fond de fissure. Ces nœuds constituent l’intersection des nœuds des lèvres inférieure et supérieure.
Dans le cas quadratique, la convention de l’ordonnancement des nœuds n’est pas la même que dans la connexité des mailles. Autrement dit, celle-ci ne tient pas compte du fait que le nœud est sommet ou pas. Par exemple, si les nœuds \({N}_{a}\) , \({N}_{c}\) et \({N}_{e}\) sont des nœuds sommets, le vecteur .FOND.NOEU sera:
\(({N}_{a},{N}_{b},{N}_{c},{N}_{d},{N}_{e},)\)
.ABSCUR#
Ce vecteur contient, pour chacun des nœuds du maillage 3D,l’abscisse curviligne du projeté ce nœud sur le front de fissure. Le sens de parcours des abscisses curvilignes croissantes peut être défini de plusieurs manières:
Si la groupe de mailles définissant le front de fissure fournit à DEFI_FOND_FISS est orienté, cette orientation est conservée.
Dans le cas contraire, l’un des mots-clés NOEUD_ORIG ou GROUP_NO_ORIGde DEFI_FOND_FISS est nécessaire pour définir une origine des abscissescurvilignes. Dans le cas des fronts fermés, l’un des mots-clés MAILLE_ORIG ou GROUP_MA_ORIGest de plus nécessaire afin de définir un sens des abscisses curvilignes croissants (depuis le nœud défini par NOEUD_ORIG/GROUP_NO_ORIG, vers le second nœud extrémité de la maille définie par MAILLE_ORIG/GROUP_MA_ORIG).
.ABSFOND#
Ce vecteur contient, pour chacun des nœuds du front de fissure en 3D, l’abscisse curviligne de ce nœud le long du front de fissure. Le sens de parcours des abscisses curvilignes croissantes est défini de manière analogue à l’objet .ABSCUR.
En 3D, lorsque le front est fermé, le dernier point du front est égal au premier. Ce point est donc renseigné deux fois dans le vecteur .ABSFON, une fois avec une abscisse curviligne nulle en début de vecteur, et une fois avec une abscisse curviligne égale à la longueur de fissure en fin de vecteur.
Description des repères liés au fond de fissure#
.NORMALE#
Ce vecteur contient 3 réels qui constituent les composantes \(({n}_{x},{n}_{y},{n}_{z})\) de la normale au plan des lèvres (cas d’une fissure plane) (voir convention de signe en [U4.82.01 §3.3.5])
.LTNO et .LNNO#
Le concept .LTNO (resp. .LNNO) est un champ aux nœuds (CHAM_NO) scalaire qui contient pour chaque nœud du maillage la valeur réelle de la level set tangente (resp. normale) à la fissure.
.BASLOC#
Concept de base locale en front de fissure#
En 2D, la base locale en front de fissure est constitué de 2 vecteurs à 2 composantes réelles. Le premier constitue la direction de propagation de la fissure \(\overrightarrow{{V}_{P}}\) . Le secondest le vecteur normal au plan de la fissure \(\overrightarrow{{V}_{N}}\) .
\(\vec{{V}_{N}}\)
\(\vec{{V}_{P}}\)
En 3D, la base locale en front de fissure est constitué de 2 vecteurs à 3 composantes réelles par nœud du fond de fissure. Pour chaque nœud \({N}_{i}\) , le premier vecteur correspond à la direction de propagation locale \(\overrightarrow{{V}_{{P}_{i}}}\) au front de fissure.Ledeuxième vecteur est le normal au plan moyen de la fissure \(\overrightarrow{{V}_{{N}_{i}}}\) .
Cas CONFIG_INIT=”COLLEE”#
Dans le cas ou le mot clé CONFIG_INIT de DEFI_FOND_FISS est renseigné à la valeur COLLEE, la base locale en fond de fissure est déterminée de manière analogue en 2D et en 3D. On présente ci-après le cas 3D uniquement.
\(\overrightarrow{{V}_{{P}_{i-2}}}\) \(\overrightarrow{{V}_{{P}_{i-1}}}\) \(\overrightarrow{{V}_{{P}_{i}}}\) \(\overrightarrow{{V}_{{P}_{i+1}}}\) \(\overrightarrow{{V}_{{P}_{i+2}}}\)
Dans un premier temps, les bases locales sont construites par couple de nœuds sommet en fond de fissure autrement dit par segment que l’on notera \({E}_{i}\) . Pour chaque face contenant \({E}_{i}\) et appartenant aux lèvres supérieure et inférieure, on calcule le vecteur orthogonal à \({E}_{i}\) et dans le plan de la face et le vecteur normal à la face. Ainsi, nous obtenons deux couples de vecteurs:
(\(\overrightarrow{{V}_{{P}_{i},S\mathit{UP}}}\) , \(\overrightarrow{{V}_{{N}_{i},S\mathit{UP}}}\) ) pour la face supérieure
(\(\overrightarrow{{V}_{{P}_{i},\mathit{INF}}}\) , \(\vec{{V}_{{N}_{i},\mathit{INF}}}\) ) pour la face inférieure.
Les vecteurs \(\overrightarrow{{V}_{{N}_{i},S\mathit{UP}}}\) , \(\overrightarrow{{V}_{{N}_{i},\mathit{INF}}}\) ont même sens: ils sont orientés tels que le trièdre (\(\overrightarrow{{V}_{{P}_{i},S\mathit{UP}}}\) , \(\overrightarrow{{V}_{{E}_{i}}}\) , \(\overrightarrow{{V}_{{N}_{i},S\mathit{UP}}}\) ) soit direct avec \(\overrightarrow{{V}_{{E}_{i}}}\) vecteur orienté suivant l’ordonnancement des nœuds du fond.
\(\overrightarrow{{V}_{{P}_{i},\mathit{INF}}}\)
\(\overrightarrow{{V}_{{P}_{i},S\mathit{UP}}}\)
La base locale est calculée comme moyenne arithmétique des vecteurs obtenus. Autrement dit, le vecteur de propagation localement au segment \({E}_{i}\) est calculé par l’expression suivante:
\(\overrightarrow{{V}_{{E}_{i},{P}_{i}}}=\frac{\overrightarrow{{V}_{{P}_{i},S\mathit{UP}}}+\overrightarrow{{V}_{{P}_{i},\mathit{INF}}}}{2}\)
et le vecteur normal localement au segment \({E}_{i}\) est calculé par l’expression suivante:
\(\overrightarrow{{V}_{{E}_{i},{N}_{i}}}=\frac{\overrightarrow{{V}_{{N}_{i},S\mathit{UP}}}+\overrightarrow{{V}_{{N}_{i},\mathit{INF}}}}{2}\)
\(\overrightarrow{{V}_{{E}_{i},{P}_{i}}}=\frac{\overrightarrow{{V}_{{P}_{i},S\mathit{UP}}}+\overrightarrow{{V}_{{P}_{i},\mathit{INF}}}}{2}\)
\(\vec{{V}_{{E}_{i-1},{P}_{i-1}}}\) \(\vec{{V}_{{E}_{i},{P}_{i}}}\)
\(\vec{{V}_{{E}_{i+1},{P}_{i+1}}}\)
\(\vec{{V}_{{E}_{i+2},{P}_{i+2}}}\)
Ainsi, on obtient une base locale par élément en fond de fissure.
\(\vec{{V}_{{E}_{i-1},{N}_{i-1}}}\)
\(\vec{{V}_{{E}_{i-1},{P}_{i-1}}}\)
\(\vec{{V}_{{E}_{i},{N}_{i}}}\)
\(\vec{{V}_{{E}_{i},{P}_{i}}}\)
Dans un second temps, la base locale d’un nœud sommet est calculée comme étant la moyenne arithmétique des composantes des vecteurs des bases des éléments connexes en ce nœud. Pour les nœuds-sommets placés aux extrémités, on reporte les bases calculées aux éléments extrémités.
\(\vec{{V}_{{N}_{i}}}=\frac{\vec{{V}_{{E}_{i},{N}_{i}}}+\vec{{V}_{{E}_{i+1},{N}_{i+1}}}}{2}\)
\(\vec{{V}_{{P}_{i}}}=\frac{\vec{{V}_{{E}_{i},{P}_{i}}}+\vec{{V}_{{E}_{i+1},{P}_{i+1}}}}{2}\)
En 3D, lorsque le fond est fermé, le dernier point est égal au premier.
Cas CONFIG_INIT=”DECOLLEE”#
Dans le cas où le mot clé CONFIG_INIT de DEFI_FOND_FISS est renseigné à la valeur DECOLLEE, la base locale en fond de fissure est déterminée de manière différente en 2D et en 3D.
Dans tous les cas, le vecteur normal, identique pour tous les nœuds du front de fissure, est renseigné directement par l’utilisateur via le mot-clé NORMALE.
En 2D, soit F le nœud du front de fissure et A un nœud quelconque de la lèvre supérieure, différent de F et \(\vec{{V}_{N}}\) la normale définie par l’utilisateur.
\(\overrightarrow{{V}_{N}}\)
\(A\)
\(F\)
Le vecteur direction est défini de la manière suivante:
\(\vec{{V}_{P}}=\frac{\vec{\mathit{AF}}-(\vec{\mathit{AF}}.\vec{{V}_{N}})\vec{{V}_{N}}}{\Vert \vec{\mathit{AF}}-(\vec{\mathit{AF}}.\vec{{V}_{N}})\vec{{V}_{N}}\Vert }\)
En 3D, dans un premier temps, les bases locales sont construites par couple de nœuds sommets en fond de fissure autrement dit par segment que l’on notera \({E}_{i}\) . Soit \({A}_{i}\) et \({B}_{i}\) les nœuds sommets de \({E}_{i}\) .
Le vecteur direction de l’élément \({E}_{i}\) est définie de la manière suivante:
\(\vec{{V}_{{E}_{i},{P}_{i}}}=\frac{\vec{{A}_{i}{B}_{i}}\wedge \vec{{V}_{N}}}{\Vert \vec{{A}_{i}{B}_{i}}\wedge \vec{{V}_{N}}\Vert }\)
La transposition d’une base définie par élément à une base définie par nœuddu fond de fissure est analogue au cas CONFIG_INIT= “COLLEE”
Construction de .BASLOC#
Le concept .BASLOC est un champ aux nœuds (CHAM_NO) à 9 composantes réelles (en 3D). Il contient l’origine et les vecteurs de la BASe LOCale au fond de fissure. Pour chaque nœud du maillage, les trois premières composantes sont les coordonnées du projeté du nœud sur le front, qui correspond à l’origine de la base locale. Les trois composantes suivantes sont les coordonnées du 1er vecteur de la base: vecteur de direction de propagation. Les trois dernières composantes sont les cordonnées du 2ème vecteur de la base: vecteur normal à la surface de la fissure, orienté de la lèvre inférieure vers la lèvre supérieure si LEVRE_SUP est défini dans DEFI_FOND_FISS. Le 3ème vecteur de la base n’est pas stocké, car il se détermine facilement comme étant le produit vectoriel des 2 premiers vecteurs.
V =.BASLOC(i); |
|
V(1) |
Coordonnée suivant \(x\) du projeté du nœud i sur le fond |
V(2) |
Coordonnée suivant \(y\) du projeté du nœud i sur le fond |
V(3) |
Coordonnée suivant \(z\) du projeté du nœud i sur le fond |
V(4) |
Coordonnée suivant \(x\) du 1ervecteur de la base locale |
V(5) |
Coordonnée suivant \(y\) du 1ervecteur de la base locale |
V(6) |
Coordonnée suivant \(z\) du 1ervecteur de la base locale |
V(7) |
Coordonnée suivant \(x\) du 2èmevecteur de la base locale |
V(8) |
Coordonnée suivant \(y\) du 2èmevecteur de la base locale |
V(9) |
Coordonnée suivant \(z\) du 2èmevecteur de la base locale |
En 2D, on a seulement 2 composantes suivant \(x\) et \(y\) , soient 6 composantes pour BASLOC.
En 2D, il n’y a qu’un seul nœud au fond de fissure, donc tous les nœuds du maillage possèdent le même projeté sur le fond de fissure et les mêmes vecteurs de base locale.
Description des lèvres#
.LEVRESUP .MAIL#
Ce vecteur contient la liste des mailles de la lèvre supérieure de la fissure
.LEVREINF.MAIL#
Ce vecteur contient la liste des mailles de la lèvre inférieure de la fissure
.SUPNORM.NOEU#
Ce vecteur contient la liste des nœuds de la lèvre supérieure sur la direction normale au fond de fissure.
SUPNORM.NOEU2#
Ce vecteur contient la liste des nœuds de la lèvre supérieure sur la direction normale au fond de fissure. Ce vecteur est utilisé dans le cas de POST_JMOD et fait passer la taille du tableau de 20 à 100.
.INFNORM.NOEU#
Ce vecteur contient la liste des nœuds de la lèvre inférieure sur la direction normale au fond de fissure.
.INFNORM.NOEU2#
Ce vecteur contient la liste des nœuds de la lèvre inférieure sur la direction normale au fond de fissure. Ce vecteur est utilisé dans le cas de POST_JMOD et fait passer la taille du tableau de 20 à 100.
.FOND.TAILLE_R#
Ce vecteur contient pour chacun des nœuds du fond, une estimation de la taille maximale suivant la direction de propagation, des mailles qui leur sont connectées. Ces tailles sont ordonnées suivant l’ordre des nœuds donné dans .FOND.NOEU.
On note \(\overrightarrow{{V}_{{P}_{i}}}\) le vecteur de propagation de la base locale au nœud du fond \({N}_{i}\) et \(\overrightarrow{{a}_{ij}}\) la \(j\) ème arête connectée au nœud \({N}_{i}\) .
Pour chaque nœud du fond \({N}_{i}\) , on projette les arêtes \(\overrightarrow{{a}_{ij}}\) sur le vecteur de direction de propagation \(\overrightarrow{{V}_{{P}_{i}}}\) . La taille maximale \({T}_{i}\) des mailles connectées à \({N}_{i}\) est la valeur maximale des valeurs absolues de ses projections. Autrement dit, la taille \({T}_{i}\) est égale à
\({T}_{i}=\underset{1\le j\le {\mathit{Nb}}_{\mathit{arêtes},i}}{max}(∣\overrightarrow{{a}_{ij}}.\overrightarrow{{V}_{{P}_{i}}}∣)\) ,
où \({\mathit{Nb}}_{\mathit{arêtes},i}\) est le nombre d’arêtes connectées au nœud \({N}_{i}\) .
Les arêtes doivent faire un angle inférieur à \(70°\) avec le vecteur de direction de propagation \(\overrightarrow{{V}_{{P}_{i}}}\) pour y être projetées. Dans le cas contraire elles sont ignorées. Pour un nœud \({N}_{i}\) , si aucune arête ne vérifie cette condition, une alarme est émise et la taille \({T}_{i}\) est nulle.
Lorsque les éléments connectés au fond de fissure sont quadratiques, les segments du fond de fissure contiennent un nœud en leur milieu. Pour chacun de ces segments, la taille de maille attribuée à son nœud milieu, est la moyenne des tailles calculées à ses nœuds sommets.