• Aucun résultat trouvé

Résolution du problème lié au flambage

La résolution du problème aux valeurs propres généralisé lié au flambage étant non-triviale, nous mettons en exergue dans cette section les différentes méthodes développées afin de déter- miner un ensemble de valeurs propres et vecteurs propres associés. Pour rappel, le problème de flambage se formule ainsi :

(K + λKσ)v = 0 (2.36)

où K, Kσ ∈ Rn×n sont respectivement les matrices de rigidité et de rigidité géométrique et n

correspond à la taille du problème. Notons que le problème (2.36) peut être reformulé comme : Kσv = µKv, où µ = −

1

λ (2.37)

Pour des problèmes aux valeurs propres généralisés de petite taille, une méthode basée sur la décomposition de Cholesky de la matrice de rigidité est implémentée dans la librairie LAPACK (Anderson et al. (1999a)). En notant L la matrice de factorisation de Cholesky de la matrice K (voir équation (2.28)), on peut réécrire (2.37) comme :

(L−1KσL−T)(L>v) = µ(L>v) (2.38)

Ainsi les valeurs propres généralisées de (2.37) correspondent à celles du problème aux valeurs propres suivant :

Cy = µy , où C = L−1KσL−T et y = L>v (2.39)

Toutefois, à l’image de la résolution du système des équations d’équilibre, la décomposition de Cholesky de la matrice K n’est pas souhaitable pour des systèmes de grandes tailles.

Une alternative pour résoudre le problème de flambage consiste à transformer l’équation (2.36) afin que les valeurs propres recherchées soient à une extrémité du spectre d’un autre problème aux valeurs propres généralisé. Définissons un scalaire α > 0 et posons µ = λ−αλ . Alors, on a λ = −αµ1−µ et :

(K + λKσ)v = 0 ⇔ ((1 − µ)K − αµKσ)v = 0 ⇔ Kv = µ(K + αKσ)v

(2.40)

Ainsi, par cette transformation spectrale, les plus petites valeurs propres positives de (2.36) sont ramenées aux extrémités du spectre des matrices associées au problème suivant :

(K + αKσ)−1Kv = µv (2.41)

En effet, supposons que λ < 0 est une valeur propre de (2.36). Alors, on a λ − α < λ et donc 0 < λ−αλ < 1. On en conclut que toutes les valeurs propres négatives de (2.36) correspondent à des valeurs propres positives de (2.41) avec un module inférieur à 1. Dans le cas où 0 < λ < α, alors ces valeurs propres de (2.36) correspondent aux valeurs propres négatives de (2.41) car

λ λ−α < 0.

Considérons maintenant, deux valeurs propres λ1 et λ2 du problème (2.36). Supposons que 0 < α < λ1 < λ2, alors on a : λ1 < λ2 −αλ1 > −αλ2 λ1λ2− αλ1 > λ1λ2− αλ2 λ12− α) > λ21− α) λ1 λ1−α > λ2 λ2−α

On en conclut que les plus petites valeurs propres supérieures à α de (2.36) correspondent aux plus grandes valeurs propres positives de (2.41).

La méthode la plus utilisée pour déterminer les valeurs propres recherchées de (2.41) est la méthode d’Arnoldi qui est implémentée dans la librairie APARCK (Lehoucq et al. (1998)). Basée sur les sous espaces de Krylov, l’inconvénient majeur de cette méthode est qu’elle implique la résolution du système linéaire suivant pour diverses valeurs de y et α :

(K + αKσ)v = y (2.42)

où y ∈ Rn. Comme mentionné auparavant, pour de grandes dimensions, la résolution de tels systèmes peut s’avérer très coûteuse en terme de mémoire. De plus, si une méthode directe est utilisée, alors la factorisation de Cholesky de la matrice (K + αKσ) est requise pour chaque valeur du paramètre α. Ainsi, le coût en mémoire de la méthode d’Arnoldi augmente lorsqu’un nombre important de valeurs propres est requis.

Notons que les méthodes basées sur les sous espaces de Krylov éprouvent certaines difficultés à converger vers une valeur propre dans le cas de valeurs propres très rapprochées ou égales (Dunning et al. (2016)). Lors d’une optimisation topologique, ce phénomène n’est pas envisa- geable car la perte d’informations liée à des valeurs propres peut entraîner un ralentissement voire une divergence du procédé d’optimisation.

Une alternative à la technique d’Arnoldi correspond à la méthode Block Jacobi Conjugate Gradient (BJCG) développée par Ovtchinnikov (2008a,b,c) et implémentée dans les librairies HSL (HSL (2007)) et SPRAL (Dunning et al. (2016)). Cette approche consiste à générer une suite de sous-espaces Vi ∈ Rn×m (avec m << n) approximant les m vecteurs propres souhaités et dont les vecteurs sont K-orthogonaux (ie ∀vi, vj ∈ Vi, vi>Kvj = δij où δ est le symbole de

Kronecker). L’algorithme BJCG est basé sur la minimisation des quotients de Rayleigh ρ associé à chaque vecteur vi ∈ Vi. Dans le cas du problème aux valeurs propres (2.37), le quotient de

Rayleigh s’exprime comme :

ρ(vi) =

v>i Kσvi v>i Kvi

(2.43) La génération de l’itéré Vi+1 à partir de Vi est basée sur deux techniques : la procédure de Rayleigh-Ritz (Trefethen & Bau III (1997)) et la méthode du gradient conjugué. Pour un espace V = [v1, . . . , vm] et le système (2.37), la procédure de Rayleigh-Ritz consiste à résoudre

le problème aux valeurs propres suivant :

où les valeurs propres ¯λ sont appelées valeurs de Ritz et les vecteurs z = V ¯z, où ¯z sont les vec- teurs propres de (2.44), sont appelés vecteurs de Ritz. L’intérêt de cette méthode est de pouvoir garantir la K-orthogonalité des vecteurs z entre eux. Notons que la résolution du système (2.44) peut être réalisée par la méthode directe décrite précédemment puisque la taille du problème est de m << n. Pour de plus amples précisions sur la méthode BJCG, le lecteur est renvoyé vers Ovtchinnikov (2008a,b,c).

Dunning et al. (2016) montrèrent qu’appliquer l’algorithme BJCG au problème (2.37) mène à une convergence très lente due au mauvais conditionnement de ce système, contrairement au problème aux valeurs propres transformé (2.41) qui présente un spectre de valeurs propres ré- duit. Afin de garantir une convergence uniquement vers les plus petites valeurs propres positives de (2.36), les auteurs indiquèrent qu’il est nécessaire de connaître le nombre de valeurs propres positives inférieures au paramètre α. Pour cela, Dunning et al. (2016) utilisèrent une décompo- sition LDL> de la matrice (K + αKσ) où L est une matrice triangulaire inférieure et D une

matrice diagonale par blocs. En effet, le théorème de l’inertie affirme que le nombre de valeurs propres qui sont inférieures (resp. supérieures) à α est égal au nombre de valeurs propres néga- tives (resp. positives) de la matrice D. Les auteurs notèrent que cette décomposition peut être utilisée pour résoudre le problème linéaire (K + αKσ)v = y intervenant au cours des itérations de la méthode BJCG. Cependant, à l’image d’une factorisation de Cholesky, une décomposition LDL> mène à des problèmes de gestion de mémoire pour des systèmes de grande taille.

Par conséquent, Dunning et al. (2016) indiquèrent que des méthodes itératives peuvent être utilisées pour résoudre le problème linéaire (K + αKσ)v = y. Toutefois, considérer la méthode

de multiplication puis d’assemblage (2.29) pour le produit de la matrice Kσ avec un vecteur v pose un challenge numérique plus important que celui entre la matrice K et le vecteur v. En effet, chaque matrice de rigidité géométrique élémentaire étant différente, soit chaque matrice de rigidité géométrique élémentaire est stockée, ce qui peut mener à des problèmes de gestion de mémoire, soit elle sont recalculées à chaque produit Kσv, augmentant le temps de calcul.

Dans l’optique de minimiser le nombre d’opérations Kσv, Bian et al. (2015) portèrent leur attention sur la méthode d’itération inverse (Ipsen (1997)) dont la procédure est décrite dans l’Algorithme 3. Le principe de cette technique est de résoudre itérativement le système suivant afin de minimiser le quotient de Rayleigh du vecteur vi :

Algorithm 3 Méthode d’itération inverse - Bian et al. (2015)

input: K, Kσ, une approximation initiale v1 6= 0, ||v1||2 = 1 et une tolérance 

1: Initialisation de i = 1 2: Calcul de λi = − vi>Kvi vi>Kσvi 3: Calcul de ri = Kvi+ λiKσvi 4: while ||ri||2 ≥  do 5: Calcul de zi= Kσvi 6: Résolution de Kyi= zi 7: Calcul de vi+1= yi ||yi||2 8: Calcul de λi+1= − v>i+1Kvi+1 vi+1> Kσvi+1 9: Calcul de ri+1= Kvi+1+ λi+1Kσvi+1 10: i = i + 1

11: end while output: λi et vi

Sachant que la matrice de rigidité géométrique n’est pas définie positive, alors il n’est pas garanti de trouver une valeur propre positive. Ainsi, la valeur finale de λi correspond à la valeur propre de plus petit module. Dans le Chapitre 5, nous proposons de combiner la méthode inverse et la procédure de Rayleigh-Ritz pour déterminer un ensemble de valeurs propres positives du problème (2.36).