v6.06.200 CONT200 - Projection-intersection pour l’appariement par lancer de rayon pour des mailles linéaires en 2D#
Résumé :
L’objectif de ce test est de vérifier la procédure de projection-intersection dans le cas de l’appariement par lancer de rayon (approche mortar).
Plus précisément, ce test se restreint au cas de mailles linéaires en 2D (donc des mailles de peau de type SEG2).
Fig. 673 Interfaces initiales - cas 2D plan-plan: Configuration de départ avec les deux interfaces (esclave et maître) légèrement translatées#
Nous considérons dans cette section le cas de deux plans parallèles.
Nous supposons que la maille esclave est translatée dans une direction
\(x\), d’un incrément \(\delta_x\). Les deux mailles sont de
taille 2, ce qui implique qu’une intersection existe tant que
\(\delta_x < 2\). La figure Fig. 673 (Interfaces initiales - cas 2D plan-plan) fournit une représentation des trois
étapes de calcul. Pour rappel, ces étapes de calcul sont les suivantes :
projection des nœuds esclaves sur la maille maître,
calcul d’une intersection sur la maille maître,
Fig. 674 Projection-intersection - cas 2D plan-plan: Visualisation des points d’intersection (en noir) sur la maille maître (dans l’espace réel)#
projection inverse et expression des points d’intersection sur la maille esclave.
Fig. 675 Maille pour l’intégration - cas 2D plan-plan: Visualisation de la maille intersectée qui est ensuite utilisée pour les calculs mortar#
Pour rappel, dans le cas d’un calcul réel, l’ensemble de ces
procédures sont réalisées dans les espaces paramétriques relatifs aux
deux mailles. Ici, nous effectuons l’ensemble de nos représentations,
et de nos vérifications dans l’espace réel.
Dans le cas présenté ici, trois cas peuvent être distingués :
\(\delta_x < 2\): une intersection non-nulle existe, et les points définissant l’intersection sont \((-1 + \delta_x, 1)\) et \((1,1)\),
\(\delta_x = 2\): l’intersection est réduite à un point \((1,1)\),
\(\delta_x > 2\): il n’y a pas d’intersection entre les deux mailles.
Au niveau des cas « limites », cette configuration permet de traiter le
cas d’une intersection vide entre deux mailles, ou encore
d’une intersection réduite à un point.
Nous nous focalisons ici sur le cas de deux plans avec une rotation
relative entre eux. Pour la construction du cas-test, nous partons
d’une situation similaire. Nous disposons de deux segments
initialement parallèles : un segment entre \((-1, 0)\) et
\((1, 0)\) (maille maître) et un segment translaté verticalement
d’une distance \(h > 0\), c’est-à-dire entre \((-1, h)\) et
\((1, h)\) (maille esclave). Une rotation du segment esclave est
alors réalisée par rapport au point \((0, h)\), c’est-à-dire par
rapport au milieu de ce segment. On fournit une représentation
graphique du cas général considéré. Ce cas est paramétrisé à l’aide de
deux hyper-paramètres \(h\) et \(\theta\).
Nous cherchons alors à disposer de l’expression analytique des points
d’intersection. Pour ce faire, nous exprimons le vecteur normal au
segment esclave:
Nous disposons donc de l’équation de la droite de vecteur directeur
\(\underline{n}^{{\rm s}} = \left(n_x^{{\rm s}}, n_y^{{\rm s}}\right)^\top\)
passant par \(\left(x_0, y_0\right)\):
\[\begin{split}\begin{aligned}
&\Leftrightarrow \quad n^{{\rm s}}_y x - n^{{\rm s}}_x y =n^{{\rm s}}_y x_0 - n^{{\rm s}}_x y_0 \\
&\Leftrightarrow \quad \cos\theta x + \sin\theta y = \cos\theta x_0 + \sin\theta y_0
\end{aligned}\end{split}\]
Nous obtenons ensuite les différents points d’intersection en
considérant les points d’intersection entre ces droites passant par les
nœuds de la maille esclave et le plan \(y=0\). Plus précisément,
nous avons:
Pour rappel \(\left(\widehat{\underline{A}}^{{\rm m}}\right)_x\) est la coordonnée selon x de la projection de \(\underline{A}^{{\rm s}}\),
tandis que \(\left(\widehat{\underline{B}}^{{\rm m}}\right)_x\) est la coordonnée selon x de la projection de \(\underline{B}^{{\rm s}}\).
Par construction, la projection du point \(\underline{B}^{{\rm s}}\)
a toujours une coordonnée horizontale supérieure à la projection du point
\(\underline{A}^{{\rm s}}\). Nous en déduisons une condition
d’existence d’un point d’intersection:
Pour illustrer les différents cas, on fournit une représentation
graphique de ce critère en fonction de plusieurs valeurs
d’hyper-paramètres.
Fig. 676 Fonction représentant la condition d’existence d’une intersection#
Nous pouvons alors construire une multitude de cas
pour traiter l’existence ou non d’intersection entre les deux mailles.
Dans le formalisme adopté, la projection du point
\(\underline{B}^{\rm s}\) est toujours en dehors du segment maître,
tandis que la projection du point \(\underline{A}^{\rm s}\) l’est en
fonction de la valeur du critère. Autrement dit,
nous aurons pour \(f_h\left(\theta\right) < 1\):
Le point \(\widehat{\underline{b}}^{\rm m}\) appartient par
construction au segment entre \(\widehat{\underline{A}}^{{\rm m}}\)
et \(\widehat{\underline{B}}^{{\rm m}}\). Nous pouvons passer par
l’expression paramétrique de ce segment, qui donne
\(\widehat{\underline{b}}^{\rm m} = \widehat{\underline{A}}^{{\rm m}} + t_\star\left[ \widehat{\underline{B}}^{{\rm m}} - \widehat{\underline{A}}^{{\rm m}}\right]\).
Le paramètre \(t_\star\) peut être obtenu par les équivalences
suivantes :