Table of Contents

Commit 2016-01-05

Elément de collage par ressort

Contexte et motivations

Dans nos modèles numériques du disque aubagé (blisk), nous avons jusqu'à présent recours à des éléments de contact avec un matériau collant puisque les maillages des pieds d'aubes et du tambour sont incompatibles à leur interface. Avec ces éléments de collage par contact, nous rencontrons les problèmes et faiblesses suivants :

Figure 1 – Evolution des déplacements radial et axial de points caractéristiques en tête d'aube en fonction de la vitesse de rotation – Chargement centrifuge quasi-statique du modèle de disque aubagé avec une technique de collage par contact bilatéral. Figure 2 – Evolution des déplacements radial et axial de points caractéristiques au pied d'aube en fonction de la vitesse de rotation – Chargement centrifuge quasi-statique du modèle de disque aubagé avec une technique de collage par contact bilatéral.

En définitive, des progrès sur notre stratégie numérique de collage actuelle sont souhaités et même indispensables pour atteindre nos objectifs en matière de simulations avec le disque aubagé.

Revue des techniques numériques de collage envisagées

Pour contrecarrer les problèmes précités avec la technique de collage par contact bilatéral, nous proposons le plan d’actions suivant :

Description d'une nouvelle méthode numérique de collage basée sur une modélisation de type ressort

Initialisation/construction de l'élément de collage

Recherche de l'élément maître

En premier lieu, avant toute intégration temporelle (plus précisément lors du remplissage du locel de l'élément de collage), nous recherchons l'élément maître associé au noeud esclave. Pour ce faire, nous recherchons tout d'abord, parmi les noeuds de l'entité maître, le noeud géométriquement le plus proche du noeud esclave. Ensuite, sur base de ce noeud le plus proche, nous remontons à ses différents éléments parents et nous sélectionnons l'élément maître de la manière suivante :

Cette technique de recherche est largement reprise de la méthode findElemIp(mtMath::Vect3 &pos) implémentée dans la classe GeoPointValueExtractor.

Il est à noter que nous considérons pour l'heure, comme élément maître, tout élément fini incident au noeud trouvé, en ce compris les éléments qui n'appartiennent pas à l'entité géométrique maître.

Soulignons que, en comparaison des éléments de collage par contact, nous nous affranchissons de nos opérateurs de projection à chaque début d'itération, ce qui confère un avantage technique considérable en termes de coût de calcul.

Calcul des coordonnées réduites du noeud esclave et de la valeur des fonctions de forme

Une fois l'élément maître identifié, nous évaluons successivement sur la configuration initiale uniquement :

Vecteur des coordonnées généralisées

Le vecteur des coordonnées généralisées de l'élément de collage est : \begin{equation} \boldsymbol{q}_e = \begin{bmatrix} \boldsymbol{X}_{\text{slave}} \\ \boldsymbol{X}_1 \\ \boldsymbol{X}_2 \\ \vdots \\ \boldsymbol{X}_n \end{bmatrix} \label{eq:q_e} \end{equation} où $\boldsymbol{X}_{\text{slave}}$ est le vecteur des coordonnées du noeud esclave et $\boldsymbol{X}_1$, $\boldsymbol{X}_2$, …, $\boldsymbol{X}_n$ sont les vecteurs des coordonnées des $n$ noeuds de l'élément maître.

Calcul du vecteur des forces internes

Le vecteur élémentaire des forces internes s'écrit : \begin{equation} \boldsymbol{F}_e^{\text{int}}(\boldsymbol{q}_e) = \begin{bmatrix} \boldsymbol{F}_{\text{spring}} \\ -N_1 (\xi_0, \eta_0, \zeta_0) \boldsymbol{F}_{\text{spring}} \\ -N_2 (\xi_0, \eta_0, \zeta_0) \boldsymbol{F}_{\text{spring}} \\ \vdots \\ -N_n (\xi_0, \eta_0, \zeta_0) \boldsymbol{F}_{\text{spring}} \end{bmatrix} \label{eq:Fint} \end{equation} où $\boldsymbol{F}_{\text{spring}}$ est la force de rappel de ressort et $N_1 (\xi_0, \eta_0, \zeta_0)$, $N_2 (\xi_0, \eta_0, \zeta_0)$, …, $N_n (\xi_0, \eta_0, \zeta_0)$ sont les $n$ fonctions de forme de l'élément maître évaluées aux coordonnées réduites du noeud du esclave à la configuration initiale.

La force de rappel de ressort s'écrit : \begin{equation} \boldsymbol{F}_{\text{spring}} = f \boldsymbol{e} \label{eq:Fspring} \end{equation} où $f$ et $\boldsymbol{e}$ sont respectivement l'amplitude et le vecteur directeur de norme unitaire de la force de rappel du ressort. En toute généralité, l'amplitude de la force $f$ s'écrit : \begin{equation} f = k \left( \left\| \boldsymbol{X}_{\text{slave}} - \boldsymbol{X}_{\text{ref}} \right\| - l_0 \right) \label{eq:force} \end{equation} où $k$, $\boldsymbol{X}_{\text{ref}}$ et $l_0$ sont respectivement la raideur de ressort, les coordonnées d'un noeud de référence et la longueur de repos.

Connaissant les coordonnées nodales de l’élément maître à la configuration courante et la valeur des fonctions de forme de l'élément maître évaluées en les coordonnées réduites de la configuration initiale, nous pouvons calculer les coordonnées du noeud de référence selon la relation ci-dessous. Notons que, dans sa configuration initiale, les 2 noeuds formant le ressort sont géométriquement confondus, sa force interne est nulle. Il est également à noter que le noeud de référence est “fictif” : les forces internes sont distribuées sur les noeuds de l'élément maître via une pondération des fonctions de forme. En l'occurrence, il n'appartient pas à la base de données nodales.

\begin{equation} \boldsymbol{X}_{\text{ref}} = \sum_i^n N_i (\xi_0, \eta_0, \zeta_0) \boldsymbol{X}_{\text{i}} \label{eq:Xref} \end{equation}

Le vecteur directeur de la force $\boldsymbol{e}$ est : \begin{equation} \boldsymbol{e} = \frac{\boldsymbol{X}_{\text{ref}} - \boldsymbol{X}_{\text{slave}}}{\left\| \boldsymbol{X}_{\text{ref}} - \boldsymbol{X}_{\text{slave}} \right\|} \label{eq:e} \end{equation}

Dans le cas particulier de l'élément de collage, il est important de noter que la longueur de repos $l_0$ est nulle. Dès lors, l'expression de la force de rappel de ressort se simplifie de la manière suivante. \begin{equation} \boldsymbol{F}_{\text{spring}} = \text{f} \boldsymbol{e} = k \left( \boldsymbol{X}_{\text{ref}} - \boldsymbol{X}_{\text{slave}} \right) \label{eq:Fspring1} \end{equation}

Point notable : dans le cas d'un jeu entre le noeud à coller et l'élément maître, certaines fonctions de forme sont bien évidemment de valeur négative. D'après nos premières expériences (cas-tests sur des mono-éléments et sur le modèle de blisk), ces valeurs négatives sont relativement marginales et ne posent pas de problèmes particuliers.

Dérivation analytique de la matrice de raideur tangente

La matrice de raideur tangente élémentaire est calculée par simple dérivation du vecteur élémentaire des forces internes (sous sa forme simplifiée) par rapport à chacune des coordonnées généralisées de l'élément de collage. Nous avons successivement :

\begin{equation} \frac{\partial \boldsymbol{F}_{\text{spring}}}{\partial \boldsymbol{X}_{\text{slave}}} = - k \boldsymbol{I} = \boldsymbol{K}_{11} \label{eq:dfdXslave} \end{equation}

\begin{equation} \frac{\partial \boldsymbol{F}_{\text{spring}}}{\partial \boldsymbol{X}_{i}} = k N_i \boldsymbol{I} = - N_i \boldsymbol{K}_{11} \label{eq:dfdXi} \end{equation}

\begin{equation} \frac{- N_i \partial \boldsymbol{F}_{\text{spring}}}{\partial \boldsymbol{X}_{\text{slave}}} = - N_i \frac{\partial \boldsymbol{F}_{\text{spring}}}{\partial \boldsymbol{X}_{\text{slave}}} = -N_i \boldsymbol{K}_{11} \label{eq:dNifdXslave} \end{equation}

\begin{equation} \frac{- N_i \partial \boldsymbol{F}_{\text{spring}}}{\partial \boldsymbol{X}_{j}} = - N_i \frac{\partial \boldsymbol{F}_{\text{spring}}}{\partial \boldsymbol{X}_{j}} = N_i N_j \boldsymbol{K}_{11} \label{eq:dNifdXj} \end{equation}

Finalement, l'expression analytique de la matrice de raideur tangente s'écrit :

\begin{equation} \boldsymbol{K}_e^{T} = \begin{bmatrix} \boldsymbol{K}_{11} & -N_1 \boldsymbol{K}_{11} & -N_2 \boldsymbol{K}_{11} & \dots & -N_n \boldsymbol{K}_{11} \\ -N_1 \boldsymbol{K}_{11} & N_1^2 \boldsymbol{K}_{11} & N_1 N_2 \boldsymbol{K}_{11} & \dots & N_1 N_n \boldsymbol{K}_{11} \\ -N_2 \boldsymbol{K}_{11} & N_1 N_2 \boldsymbol{K}_{11} & N_2^2 \boldsymbol{K}_{11} & \dots & N_2 N_n \boldsymbol{K}_{11} \\ \vdots & \vdots & \vdots & \ddots & \vdots\\ -N_n \boldsymbol{K}_{11} & N_1 N_n \boldsymbol{K}_{11} & N_2 N_n \boldsymbol{K}_{11} & \dots & N_n^2 \boldsymbol{K}_{11} \end{bmatrix} \label{eq:KT} \end{equation}

Il est important de noter que l'amortissement n'est pas pris en compte dans la dérivation analytique de la matrice de raideur tangente.

Mentionnons également que cette dérivation analytique se limite aux seules méthodes d'intégration non conservatives.

Interaction de collage

Une classe StickingInteraction est ajoutée dans le code. De manière analogue aux interactions de contact, nous pouvons spécifier, pour une interaction de collage, ses entités géométriques esclave et maître via les fonctions push() et setTool() respectivement.

Matériau de collage

Le matériau de collage s'appuie logiquement sur les matériaux déjà existants pour l'élément de ressort. Malgré que les matériaux de ressort soient directement empruntés, l'élément de collage ne peut nécessairement en partager toutes leurs fonctionnalités. En particulier, rappelons que nous ne considérons pour l'heure aucune contribution de l'amortissement matériau dans la matrice de raideur tangente analytique de l'élément de collage.

StickingElShcuts

De manière analogue aux éléments de mécanisme, une classe StickingElShcuts a été ajoutée. Ses attributs sont :

Résultats de l'application des éléments de collage par ressort au modèle du disque aubagé

Avec les éléments de collage par ressort, nous observons sur notre modèle du disque aubagé que :

Cas-tests de la batterie

De nouveaux cas-tests sont ajoutés à notre batterie dans le répertoire apps/sticking/. Ils permettent de tester les éléments de collage par ressort dans le cas de grands déplacements ou grandes rotations imposés, avec une matrice de raideur analytique ou numérique, avec une interpénétration initial des mailles à coller ou un jeu initial entre les mailles à coller.

Perspectives

Divers

Fichiers ajoutés/supprimés

Added : oo_meta\mtElements\sticking\StickingElement.h
Added : oo_meta\mtElements\sticking\StickingElement.cpp
Added : oo_meta\mtElements\sticking\StickingElement.inl
Added : oo_meta\mtElements\sticking\StickingElShcuts.h
Added : oo_meta\mtElements\sticking\StickingElShcuts.inl
Added : oo_meta\mtElements\sticking\StickingInteraction.h
Added : oo_meta\mtElements\sticking\StickingInteraction.cpp

Tests ajoutés/supprimés

Added : oo_meta\apps\sticking\monos2d.py
Added : oo_meta\apps\sticking\monos2dNumStiff.py
Added : oo_meta\apps\sticking\monos3d.py
Added : oo_meta\apps\sticking\monos3dClearance.py
Added : oo_meta\apps\sticking\monos3dNumStiff.py
Added : oo_meta\apps\sticking\monos3dRot.py
Added : oo_meta\apps\sticking\monos3dRotClearance.py

Yanick Crutzen 2016/01/05