• Aucun résultat trouvé

3.2 Contexte de simulation

3.2.2 Équations globales et Multiplicateurs de Lagrange

Comme évoqué dans le paragraphe 2.3.1, les déformations du cerveau sont simulées de manière statique. La cinétique du mouvement n’est ainsi pas prise en compte et seul importe l’état d’équilibre final. Prenant en compte le formalisme des Multiplicateurs de Lagrange, le problème statique (2.53) énoncé dans le Chapitre 2 peut se reformuler de la manière suivante :

F(u) +H(u)λ=fext = 0 (3.4)

oùF etHsont toutes deux des fonctions non-linéaires des positionsu. La première fournit les forces mécaniques internes du modèle déformable tandis que la seconde réunit les directions des forces de contraintes pour chaque nœud du maillage élé-ments finis. De plus, nous verrons dans le paragraphe 3.3, qu’aucune force externe n’est appliquée sur le cerveau (e.g.gravité ou pression du liquide céphalo-rachidien), donnantfext = 0. Ce problème est alors linéarisé suivant plusieurs étapes, décrites dans les paragraphes suivants.

Linéarisation générale

Similairement au Chapitre 2, le problème non-linéaire (3.4) est résolu via l’al-gorithme deNewton-Raphson. Ainsi, chaque pas de simulationiconsiste à résoudre un problème linéarisé en fonction des deux inconnuesu etλ. Après plusieurs

itéra-tions, les positions du modèle à l’équilibre (i.e.∆ui =ui+1ui = 0) correspondent aux positions solutions du problème statique (3.4).

L’équation linéarisée est donnée par :

F(ui) +H(ui)λi+ F ∂u ui + H ∂u ui λi (ui+1ui) +H(ui)(λi+1λi) = 0 (3.5)

Au début de chaque pas de simulation, aucune contrainte n’est appliquée sur le modèle. Considérantλi = 0, l’équation précédente peut donc se réécrire :

F(ui) + F ∂u ui (ui+1 ui) +H(ui)λi+1 = 0 (3.6) Matrice de rigidité

Comme décrit dans le paragraphe 2.3.3, la matrice de rigidité globaleKi du modèle de cerveau est définie par :

Ki = F ∂u ui (3.7) Ki n’est constante que si l’on considère des modèles de comportement très simples comme de l’élasticité linéaire avec la loi de Hooke. Dans cette thèse, la formulation co-rotationnelle est utilisée (voir paragraphe 3.3 pour plus de détails). Les matrices de rotation incluses dans les matrices de rigidité élémentairesKi

ene sont alors pas constantes. Par conséquent,Ki sera considérée non constante entre deux itérations lors de la résolution de l’équation globale.

Multiplicateurs de Lagrange

Le formalisme des Multiplicateurs de Lagrangeest utilisé pour exprimer les contraintes s’appliquant sur le modèle. Ce dernier est donc employé pour résoudre aussi bien les conditions aux limites (i.e.contacts avec la dure-mère) que les charge-ments (i.e.déplacements imposés pour recaler les images) qui seront formulés au sein de la même matriceHi.

En pratique, des appariements sont calculés pour chaque type de contrainte. Cette étape sert à déterminer quels éléments seront contraints et suivant quelle(s) direction(s). Lors par exemple du recalage de l’arbre vasculaire, celle-ci consiste à apparier les vaisseaux proches et à définir les normales selon lesquelles seront appliquées les forces de contraintes. De plus, les forces ne pouvant être exprimées que sur les sommets des maillages de collision, les orientations sont pondérées afin de

répartir ces dernières sur les sommets les plus proches. Dans le cas des vaisseaux, les arrêtes des squelettes sont ainsi contraintes en répartissant les forces de contraintes sur les extrémités de ces arrêtes. Pour cela, les normales calculées lors de la phase de d’appariement sont pondérées suivants des coefficients barycentriques. Tandis que les contraintes appliquées spécifiquement au cerveau seront détaillées plus tard dans ce chapitre (voir paragraphe 3.3 pour plus de détails), cette partie traite plus généralement de l’intégration numérique du formalisme des Multiplicateurs de Lagrange dans l’équation globale d’équilibre.

Pour la résolution, la fonctionH(ui) est considérée constante au sein d’un même pas de simulation. Par conséquent, l’étape d’appariement est réalisée en début d’itération. Lamatrice des contraintesHi peut alors être définie telle que :

HiT =H(ui) (3.8)

Pour chaque contrainte, la matriceHi rassemble ainsi les normales pondérées. Son nombre de lignes est donc égal à trois fois le nombre total de contraintes actives durant le pas de simulation. La définition du contenu de la matrice Hi (i.e. le calcul des appariements, des normales et de leur pondération) constitue le cœur de la méthode de compensation du brain-shift détaillée dans ce chapitre

(voir paragraphe 3.3 pour plus de détails).

Une foisHi définie, la loi de contraintes suivante peut être écrite :

δ= ˜Hipi Hiu (3.9)

pi etH˜i sont respectivement les positions cibles déterminées pendant la phase d’appariement et lamatrice des contraintes modifiéecontenant les normales non pon-dérées.δcorrespond alors à la violation des contraintes à résoudre. La linéarisation de cette loi de contraintes enui donne :

δi+1 = ˜HipiHiuiHi(ui+1 ui) =ciHi(ui+1 ui) (3.10)

où le vecteurci = ˜Hipi Hiui reste constant pendant tout le pas de simulation. Il est à noter que cette loi de contraintes n’est pas directement intégrée dans le problème linéarisé mais correspond aux contraintes numériques à respecter lors de la résolution de ce dernier.

Problème linéarisé

L’équation linéarisée de la formulation statique (3.4) énoncée au début du paragraphe est obtenue en injectant les équations (3.7) et (3.8) au sein de l’équation (3.6) :

Ki∆ui+HiTλ=−F(ui) avec ∆ui =ui+1ui (3.11)

∆uietλsont les deux inconnues. Pour des raisons de simplicité, l’exposantisera omis dans les paragraphes suivants, décrivant la résolution du problème statique sur un unique pas de simulation.

3.2.3 Résolution numérique

Cette partie décrit la résolution numérique d’une itération de l’algorithme de

Newton-Raphsonpour le problème statique énoncé précédemment. Considérant, les équations (3.11) et (3.10), il est possible de définir le système deKarush-Kuhn-Tucker

(KKT) suivant :

(

Kx+HTλ=b (3.12)

cHx=δ (3.13)

x=∆uetb=−F(u). À chaque itération, le problème KKT est résolu en cinq étapes, suivant la méthode duSchür complement. Ces étapes sont décrites dans les paragraphes suivants.

Déformation libre

La déformation libre, notée xfree, correspond à la déformation du modèle lorsque aucune contrainte n’est appliquée. Elle ne dépend donc pas deλet peut être écrite comme xfree = K1b. De plus, des conditions fixes de Dirichlet sont imposées à la base du tronc cérébral (voir le paragraphe 3.1.1 pour plus de détails) garantissant que la matriceKest inversible. Comme proposé par [Cou+14], un

Gradient Conjugué pré-conditionné est utilisé pour trouver xfree. Cet algorithme permet de calculer directementK1bet ainsi d’éviter le calcul très coûteux deK1. Cette valeur est ensuite injectée dans l’équation (3.12) pour donner :

x=xfreeK1HTλ (3.14)

Calcul des appariements

Pour chaque contrainte, le calcul des appariements est réalisé à partir de la configuration initiale du modèle (i.e. avant la déformation libre). Pour rappel, cette étape permet de définir lamatrice des contraintesHdécrite précédemment. La violation des contraintes est quant à elle calculée à partir de la déformation libre du modèle. Cette violation libre des contraintes, notéeδfree, est alors définie comme

δfree =cHxfree.

Calcul de la matrice decompliance

Lamatrice de complianceest obtenue en injectant l’équation (3.14) au sein de l’équation (3.13) :

δfree+HK1HTλ=δ (3.15)

Cette matrice de compliance, notéeW, est alors définie commeW=HK1HT et traduit le couplage mécanique des contraintes. En effet, elle relate l’influence du déplacement d’un nœud sur celui de ses nœuds voisins. Son calcul est très coûteux en temps car il nécessite l’inversion de la grande matriceK. Dans le but de proposer une méthode compatible avec une routine clinique,K1est approximée parK01 avec K0 étant lamatrice de rigidité globaleau premier pas de simulation.K01 est alors calculée avant l’opération et stockée comme une matrice dense. Cette approximation est cohérente dans notre cas de simulation car le couplage mécanique entre les contraintes est faible. Effectivement, à cause de la faible raideur des tissus mous du cerveau, imposer des déplacements induira des déformations locales et donc impactera peu les nœuds voisins.

Résolution des contraintes

L’étape de résolution des contraintes consiste à calculer les forces de contraintes

λde manière à neutraliser la violation des contraintesδ. LeNon Linear Complemen-tarity Problemest défini à partir de l’équation (3.15) :

Wλ=δδfree (3.16)

λetδsont tous deux des inconnues du problème. Celui-ci est alors résolu grâce à un algorithm deGauss-Seidelmodifié, comme détaillé par [Dur+06].

Mouvement correctif

Une fois les forces de contraintes λcalculées, elles sont appliquées à la dé-formation libre. Pour cela, elles sont injectées dans l’équation (3.12) donnant :

x=K1(bHTλ) (3.17)

Comme pour l’étape de déformation libre décrite précédemment, cette équation est résolue en utilisant unGradient Conjugué pré-conditionné. Les positions à la fin du pas de simulationui+1, respectant l’ensemble des contraintes, sont alors obtenues.