Afin de faire face à l'augmentation continue de la taille des problèmes et à la dégradation du conditionnement des opérateurs discrétisés, seuls les plus performants et robustes, en pratique, ont été incorporés aux deux opérateurs modaux de Code_Aster : MODE_ITER_SIMULT et MODE_ITER_INV . Lorsqu'il s'agit de déterminer quelques valeurs propres (généralement une demi-douzaine) ou d'affiner quelques estimations, l'opérateur MODE_ITER_INV est idéal. Les deux opérateurs peuvent également se compléter, car les méthodes implémentées dans MODE_ITER_INV sont très efficaces pour optimiser des modes propres déjà quasiment convergés.
En une ou deux itérations, ils peuvent ainsi améliorer les vecteurs propres précédemment estimés avec MODE_ITER_SIMULT.
Problématique
En l’absence d’amortissement hystérétique, le QEP standard à résoudre est donc constitué de matrices réelles symétriques. Informatiquement, la portée de l'opérateur MODE_ITER_SIMULT a été étendue aux matrices réelles non symétriques A, B et Cdu QEP. Ce n'est pas encore le cas pour MODE_ITER_INV qui se limite actuellement aux matrices symétriques réelles.
La modélisation de l'amortissement[Lev96] dans Code_Aster peut être divisée en deux classes : l'amortissement visqueux proportionnel (appelé Rayleigh Evisq:= K M) ou l'amortissement hystérétique (Ehist:=1iK.
Propriétés des modes propres
Périmètre d'utilisation des opérateurs Aster (MODE_ITER_SIMULT/INV) et de leurs méthodes d'analyse (mot-clé METHODE) vis-à-vis des propriétés des matrices QEP A et C (2.1-1). Chacun est disponible au niveau de l'ensemble de la structure ou par amortissement localisé (groupes de mailles, éléments discrets ad hoc). Propriétés des modes d'un QEP standard (de taille n) par rapport aux propriétés de ses matrices.
Celui de droite ajoute un amortissement hystérétique à K pour faire apparaître des modes incompatibles (cas général n°1).
Spécificités des QEP et éléments de théorie
Il s'agit d'une « situation double » de plusieurs valeurs propres SEP, où la même valeur propre est attachée à plusieurs vecteurs propres. On observe également la division des vecteurs propres par les deux premières valeurs propres et la 4ème/5ème. Pour faciliter la compréhension des valeurs propres infinies de Q, nous les rapportons aux valeurs propres nulles du polynôme inverse.
Ces valeurs propres finies rev Q sont plus faciles à calculer et possèdent les mêmes caractéristiques spectrales (ensembles géométriques et algébriques, espace propre, etc.) que les valeurs infinies initiales.
Stratégie de linéarisation
- Introduction
- Principe
- Quelques exemples
- Stratégies retenues dans Code_Aster
Pour plus d'informations sur ces aspects théoriques, on peut consulter par exemple les travaux de P.Lancaster[GLR82][LT85] et la thèse de D.S.Mackey[Mac06] (et ses nombreuses références bibliographiques). sensibilités aux erreurs d’arrondi7 et aux paramètres numériques8). En fait, la linéarisation d'un QEP suit le cadre général de celui des polynômes matriciels. Pour travailler avec un GEP symétrique (voire défini ou semi-défini positif), on peut également initialiser la matrice auxiliaire.
Ici le but n’est pas de respecter une propriété de symétrie, mais plutôt les propriétés « Hamiltoniennes12 » du problème. Avec MODE_ITER_INV(2ème phase) la transition QEP/GEP s'effectue via les matrices compagnons de (L1), en mettant N=In. Le système linéarisé n'est pas symétrique, mais ce n'est pas un prérequis pour l'application d'une méthode de type puissances inverses. Avec MODE_ITER_SIMULT(METHODE='TRI_DIAG' et 'SORENSEN') la passe QEP/GEP s'effectue via les matrices compagnons de (L2) en mettant N =M.
Si les matrices de rigidité, de masse et d'amortissement sont véritablement symétriques, on retombe dans le cadre des GEP standards (vraiment symétriques). Cependant, lorsque M n'est pas inversible (à cause par exemple du blocage de Lagranges), l'inversion du terme diagonal de A n'est plus garantie. M (cf. [Boi09] §3.2), cette manipulation revient à interdire les composantes liées aux Lagranges et aux degrés de liberté bloqués (le vi2,3 de la démonstration de la propriété n°4 [Boi09]).
Ce qui ne gêne en rien le processus puisque nous ne nous intéressons qu'aux modes physiques et non à ces artefacts de modélisation13. Elle consiste à initialiser l'algorithme de résolution avec un vecteur d'ensemble d'images de M (filtrant ainsi les éléments du noyau).
Implantation dans Code_Aster
- Pré-traitements (linéarisation, calcul du shift)
- Factorisation de matrices dynamiques
- Calcul modal
- Post-traitements de vérification
- Affichage dans le fichier message
Évaluez la fonction heuristique de coût partiel (méthode de Müller-Traub) avec MODE_ITER_INV(OPTION='ADJUSTE'). Pour être plus efficace, nous recherchons alors une formulation faisant intervenir uniquement Q −1 (MODE_ITER_INV+'DIRECT' et MODE_ITER_SIMULT+'TRI_DIAG'/'IRAM'). L'approche globale (MODE_ITER_SIMULT+'QZ') n'est pas gênée par cette pré-factorisation de la matrice dynamique.
Imprimez dans le fichier des messages d'alarme récapitulant le nombre de modes non retenus (ici 2 réels). Ce choix n'est pas toujours anodin16, notamment au regard de la qualité des modes et de leur sensibilité aux erreurs d'arrondi. Dans MODE_ITER_INV une seule méthode est disponible, une variante de la méthode des itérations inverses due à Jennings ('DIRECT').
Quant à MODE_ITER_SIMULT, il permet d'utiliser trois méthodes différentes : la méthode de Lanczos ('TRI_DIAG'), celle de Sorensen ('SORENSEN') et QZ ('QZ'). En appliquant le résultat de la proposition 2 de [Boi09] au problème linéarisé, il est également clair que les vecteurs propres sont A- et B-orthogonaux. Mais du fait de la complexité de calcul 15 en O bn² avec la bande passante et la taille du problème.
16 La variante de la méthode QZ proposée par F.Tisseur[TM01] s'appuie sur les valeurs de « l'erreur inverse ». Maintenant que le contexte de QEP est exposé dans Code_Aster, nous allons nous concentrer plus spécifiquement sur les méthodes de type force et leur implémentation dans l'opérateur MODE_ITER_INV.
Introduction
Méthode de Müller-Traub
Le signe du dénominateur est choisi pour minimiser ∣k1∣, nous privilégions donc le choix « conservateur » du zéro le plus proche de l'itération précédente k. On considère que la méthode est convergée lorsque le critère relatif suivant est atteint (avant k1 . NMAX_ITER_AJUSTE itérations). Cette méthode est relativement simple à mettre en œuvre, mais elle se prête mal à la recherche de zéros de fonctions réelles avec des racines réelles car elle rejette l'interpolation dans le plan complexe même en partant de valeurs réelles.
La sécurité de la méthode des jumeaux, puisque la recherche s'effectue en boule d'approximations. Seul le calcul de la fonction est nécessaire (pas de calcul de dérivée comme par exemple dans la méthode Newton-Raphson). Celle du numérateur, thatQ, s'effectue en factorisant19 sous forme LDLT la matrice dynamique Q et en effectuant le produit des termes diagonaux de la matrice diagonale D.
Cette factorisation matricielle dynamique est très coûteuse avec une complexité de calcul de O bn² , où b est la bande passante et n est la taille du problème. C’est la partie qui consomme le plus de puissance de traitement et d’espace mémoire de l’algorithme. Müller [Mul56] propose une procédure spéciale et efficace pour l'initialisation du processus dans le cas où la fonction à interpoler p est un polynôme d'ordre n dont les coefficients sont connus.
Le scénario qui nous intéresse ne rentre malheureusement pas dans cette classe de problèmes. La notion de seuil en dessous duquel deux valeurs numériques sont supposées multiples est liée au paramètre PREC_AJUSTE.
Méthode des puissances inverses (variante de Jennings)
Par contre, après avoir calculé les k valeurs propres ii=1k, on dégonfle également en tenant compte de leur conjugué18 afin de ne pas les recalculer. Il doit être reproduit p i 2 fois avec p le nombre de modes souhaités et i le nombre moyen d'itérations jusqu'à convergence. La deuxième partie consiste à affiner les estimations de valeurs propres calculées par la méthode de Müller-Traub et à calculer leurs vecteurs propres associés.
Pour ce faire, nous linéarisons le QEP selon la stratégie (L1)' (voir §2.4) et appliquons une certaine transformation spectrale suivant Jennings [Jen77] (1977). Son but est de faire apparaître, comme inverse de la matrice, uniquement celle de la matrice dynamique Q−1. Le critère d'arrêt PREC et le nombre maximum d'itérations autorisées NMAX_ITER sont des arguments du mot clé facteur CALC_MODE.
Connaissant le vecteur propre xk, une bonne estimation de sa valeur propre k est fournie par la formule (3.3-1). L'algorithme s'arrête dès que les variations relatives (dans le complexe) et absolues (séparément sur la partie réelle et imaginaire) par rapport à l'estimation initiale sont inférieures à une certaine valeur. Ainsi, ensemble, nous améliorons l’estimation initiale de la valeur propre et déterminons son vecteur propre correspondant.
Malgré la linéarisation du problème initial, la formulation « intelligente » de Jennings ne traite que des entités de taille n.
Périmètre d’utilisation
Affichage dans le fichier message
Pour chaque valeur propre (représentée sous la forme FREQUENCY=Imi .. 2.5), nous suivons le nombre d'itérations et la précision20 obtenue des deux phases de l'opérateur modal.
Récapitulatif du paramétrage
Du QEP au SEP
Passage QEP/GEP: linéarisation
Passage GEP/SEP: transformation spectrale
Ces deux variantes sont implémentées avec Lanczos et IRAM via les valeurs respectivement 'REEL' et . Avec Lanczos, le champ d'utilisation est limité aux QEP classiques (réels symétriques), tandis qu'IRAM est moins limité et autorise également les QEP non symétriques. L'origine du nom « double somme des déplacements » de la transformée spectrale ci-dessus devient plus claire si l'on reformule les opérateurs comme suit.
La terminologie « somme » est contraire aux « changements de produit double » initialement proposés par J.C. Francis et utilisé en complément, en secret, avec la méthode QZ et les redémarrages « implicites ». Pour l'IRAM, on peut se contenter d'un couple "opérateur/produit scalaire" non symétrique (cf. [Boi09]. Le premier fonctionne avec les deux formulations (S2) et (S3), tandis que le second (respectivement le troisième) ne fait que A symétrique.
Dans l'implémentation actuelle dans Code_Aster, ce sont ces deux derniers qui sont retenus pour les approches réelles et imaginaires de Lanczos. Ces produits scalaires sont les extensions « naturelles » du (pseudo) produit scalaire matriciel utilisé par la variante Newmann-Pipano dans GEP :.
Implantation dans Code_Aster
Choix du décalage spectral
Le nombre de fréquences à calculer est généralement donné par l'utilisateur en utilisant NMAX_FREQ sous le mot-clé facteur CALC_FREQ.
Calcul de l’opérateur et du produit scalaire de travail
Périmètre d’utilisation
Affichage dans le fichier message
Récapitulatif du paramétrage
En particulier, pour améliorer la qualité d'un mode, le paramètre de base est la dimension du sous-espace de projection dans SEP, DIM_SOUS_ESPACE.
Du QEP au GEP
Périmètre d’utilisation
Impressions dans le fichier message
Récapitulatif du paramétrage
Livres/articles/proceedings/thèses…
Rapports/compte-rendus EDF
Ressources internet
V11.2 O.BOITEAU EDF-R&D/SINETICS Travaux de mise en forme, correction de formules selon doc.