Contexte
Dénombrement et calcul modal dans Code_Aster
Périmètre d'utilisation
Synopsis
Ingrédient n°1: Le polynôme caractéristique
Ainsi, pour tenter de limiter ces problèmes, nous ne calculons souvent pas le déterminant directement comme un produit d’éléments diagonaux. En revanche, notre besoin (seulement l'argument du déterminant) est trop éloigné de ses spécifications (le calcul « exact » du déterminant).
Ingrédient n°2: Le théorème des suites de Sturm
Ce processus pourrait être testé dans Code_Aster car il facilite la gestion des problèmes de dépassement de capacité. Ce test de Sturm a été étendu aux formes plus générales de GEP standards trouvés dans Code_Aster (voir §3.2).
Ingrédient n°3: La formule intégrale de Cauchy
En appliquant ce résultat à un certain polynôme, le polynôme caractéristique d'un GEP standard (voir Figure 2.1), on retrouve un résultat très intéressant et « non trivial » : la factorisation LDLT de la matrice de travail A−B « mimes » en fait , ce processus constructif est de type « Sturm-Euclide » et il suffit de compter les coefficients strictement négatifs de la matrice D pour obtenir le nombre de valeurs propres strictement inférieur. Deux autres problèmes récurrents : l'estimation rigoureuse d'au moins l'argument de P j, ainsi qu'un algorithme de suivi de contour rigoureux (entre et P ) pour s'assurer de ne pas rater la discrétisation d'un tour.
Ingrédient n°4: Méthode de calcul du polynôme caractéristique
Outre les difficultés numériques liées au traitement de termes de nombreux ordres de grandeur différents, cette méthode présente un inconvénient majeur : la transformation de Hessenberg (souvent dense) de M et l'allocation d'une matrice complète deux fois plus grande que le problème. Cependant, si nécessaire, cet inconvénient peut sans doute être partiellement surmonté en redistribuant différemment la construction des termes de B et en construisant une factorisation de Hessenberg « clairsemée ».
Ingrédient n°5: Méthode de dénombrement des racines d’un polynôme réel
A partir du polynôme caractéristique du SEP, on peut construire sa matrice de Schur-Cohn selon la formule (2.5.1). Ensuite, nous le traitons sous la forme LDLT et comptons le nombre (strictement 22) de termes positifs de D.
Ingrédient n°6: Évaluation polynomiale fiable
Ces « algorithmes compensés » ont donc pour principe d'ajouter à chaque calcul élémentaire effectué (somme, produit...), une estimation fine de l'erreur d'arrondi associée. Certaines évaluations de polynômes peuvent sans doute bénéficier de ce type de méthodologie : par exemple, lors de l'évaluation de certaines lois de comportement de Code_Aster.
Bibliographie
Modified Sturm Sequence Method' cf.. 3.5) qui tente d'abord de retrouver les coefficients du polynôme caractéristique, afin de leur appliquer un algorithme de recherche de racine. La première famille est disponible depuis longtemps dans le code pour toutes les utilisations se produisant sur l'axe réel, c'est-à-dire impliquant uniquement des GEP symétriques réels. Concernant les autres types de problèmes modaux, qui nécessitent nécessairement un score au niveau complexe, nous avons modélisé [Boi11] sur des cas canoniques et des benchmarks Aster les deux variantes du type APM, ainsi que la quatrième méthode.
Tsai et Chen (1993) ont proposé une extension de la méthode de Sturm il y a une quinzaine d'années, mais il est très difficile de l'appliquer à tous les QEP. Outre les besoins d'analyse spectrale de certains phénomènes physiques (mécanique vibrationnelle, hydrodynamique, électromagnétisme, etc.), cette technique peut également être utilisée pour un meilleur calibrage des préconditionneurs utilisés dans certains algorithmes itératifs : solveurs linéaires, solveurs modaux.
Méthode de Sturm standard
Enfin, le principe d'inertie de Sylvester nous assure que la signature de factorisation A− B= LD LT est identique à celle de la matrice décalée. La procédure de permutation lors de la construction de la matrice dynamique et/ou du calcul du critère de Sturm. C'est le cas le plus courant où l'on demande uniquement la position modale pm associée à la matrice dynamique.
Soit on s'arrête en ERREUR_FATALE, car en plus du test de Sturm on tente aussi de factoriser la matrice dynamique. Si l’on considère ces éléments et sait que, numériquement, le décompte des pivots strictement négatifs de la matrice diagonale inclut en fait aussi les éléments (théoriquement) nuls de la signature, on peut réécrire le corollaire précédent.
Méthode de type «Argument Principal»
- Choix du domaine de comptage
- Choix de la discrétisation
- Calcul du polynôme caractéristique
- Heuristique de comptage du nombre de tours
Cette méthode de type « prédicteur-correcteur » s'inspire des techniques de calcul de pseudospectre de M. Brühl (1996). Cela détermine pleinement la robustesse de la méthode : si les i ne sont pas assez proches, on risque de perdre des informations (voir figure 3.3) en comptant les courbes discrétisées j=arg P j . En prétraitement, ils ne fournissent pas de chiffre, et seule l'équipe de l'INRIA a résolu le problème via son algorithme de suivi des limites déjà évoqué.
Dans la littérature, l’équipe coréenne a testé les deux variantes, APM+LDLT et APM+Rombouts, tandis que l’équipe de l’INRIA n’a testé que la première. En effet, si la discrétisation des points de contrôle vérifie cette contrainte, alors on sait déduire, de l'évaluation de j, j1 et nj, le.
Méthode de type formule de quadrature
Méthode de type Recherche de zéros d'un polynôme
Transformation sous forme d’un SEP
Fixez les valeurs diagonales Ai0i0 et Bi0i0 telles que les valeurs propres associées à ces degrés de liberté soient poussées hors de la zone de contrôle. Pour gérer ce problème, il suffisait donc d'imposer à chacun des degrés de liberté « dynamiquement passifs ». En particulier, avec le choix évoqué ci-dessus, ils ne prennent pas en compte le coefficient « d'échelle ». scaling' en anglais) qui est imposé aux degrés de liberté de Lagrange en fin de composition matricielle.
Et il est difficile de maintenir l'objectif principal de filtrer les valeurs propres associées à ces ddl tout en respectant la mise à l'échelle des deux matrices. Avec les opérateurs modaux Code_Aster on rencontre ce type de problème lorsqu'on veut inverser la matrice de masse pour traiter des QEPs (CALC_MODES + SOLVEUR_MODAL=_F(METHODE='TRI_DIAG' ou 'SORENSEN').
Adaptation au cercle de centre l’origine et de rayon quelconque
Malheureusement, cette astuce suffisante dans les algorithmes itératifs (qui ne nécessitent que des produits matriciels/vecteurs) ne peut pas être convertie ici. Pour chacune des deux étapes principales de la méthode, deux matrices complètes doivent être affectées de même taille que le polynôme caractéristique (n en GEP, 2n en QEP). Avec ces éléments des différentes méthodes testées voire industrialisées dans Code_Aster, nous allons maintenant résumer leur configuration.
Premiers pas
Principe
INFO_MODE seul ou en prétraitement CALC_MODES avec option 'BAND' découpé en sous-bandes. Exemple de répartition des tests Sturm sur nb_proc=40 processeurs avec découpage en nb_sbande=10 sous-bandes (parallélisme dit « 10x4). Il s'agit d'un exemple de répartition des tests Sturm sur nb_proc=40 processeurs avec découpage en 10 sous-bandes - bandes : parallélisme avec un niveau appelé « 1x40.
INFO_MODE seul ou en prétraitement de CALC_MODES avec option 'BAND' découpé en sous-bandes. Exemple de répartition du test Sturm sur nb_proc=40 processeurs avec découpage en nb_sbande=10 sous-bandes (parallélisme "1x40".
Détails fonctionnels
INFO_MODE seul ou en pré-traitement de CALC_MODES avec option 'BANDE' découpée
Si on utilise le solveur linéaire MUMPS, on peut activer 1 ou 2 niveaux de parallélisme dès qu'il y a suffisamment de données pour "alimenter" les processeurs : nb_proc>=nb_sbande (voir Figure 4.1/4.3a). Sinon, le calcul s'arrête avec une erreur fatale et suggère à l'utilisateur d'ajuster nb_proc ou nb_sbande en conséquence. L'exemple de la Figure 4.4 illustre ce scénario sur des processeurs nb_proc=10 avec découpage en nb_sbande=10 sous-bandes : parallélisme mono-niveau appelé « 10x1.
Ensuite, nb_proc ou nb_sbande doit être ajusté ou MUMPS configuré (ou LEVEL_PARALLELISM modifié). Exemple de répartition du test Sturm sur nb_proc=10 processeurs avec division sur nb_sbande=10 sous-bandes (parallélisme "10x1".
INFO_MODE de post-traitement dans CALC_MODES avec option 'BANDE' découpée en
INFO_MODE en post-traitement CALC_MODES avec option 'BAND' découpé en sous-bandes. 59 Interdire cette exception déprécierait l'utilisation de CALC_MODES avec l'option 'BAND' découpée en sous-bandes parallèles par un solveur linéaire non MUMPS (sauf si le test Sturm final est rompu, ce qui n'est pas recommandé). L'opérateur CALC_MODES avec l'option 'BAND' découpé en sous-bandes arrête le calcul dès la phase de démarrage.
En dehors de ceux imposés par l'étape d'initialisation de CALC_MODES avec option 'BAND' découpée en sous-bandes. Post-traitement INFO_MODE de CALC_MODES avec option 'BAND' découpé en sous-bandes.
Autres tests de Sturm
Déséquilibrages de charge
Généralités
INFO_MODE seul ou en pré-traitement de CALC_MODES avec option 'BANDE' découpée
Pour limiter les coûts de communication MPI, nous réservons chaque paquet de en continu. ou 1 en cas de déséquilibre) processeurs traitant une sous-bande. Pour bien faire cela, nous aurions besoin d'un solveur modal parallèle avec équilibrage de charge dynamique (inséré entre le premier et le deuxième niveau de parallélisme, voir la stratégie ERAM de C.Calvin). Exemple de répartition du test Sturm sur les processeurs nb_proc=41 avec partitionnement sur nb_sbande=10 sous-bandes (parallélisme dit « 1x5 + 9x4.
En pratique on voit que ce déséquilibre est moins grave et conduit souvent à un rendement parallèle proche de 0,6 (au lieu de 0,5). En revanche, concernant un calcul INFO_MODE parallèle avant un calcul CALC_MODES avec l'option 'BAND' divisée en sous-bandes parallèles, il peut être plus confortable pour l'utilisateur de configurer ces deux calculs avec le même nombre de processeurs.
Autres tests de Sturm
Gains procurés par le parallélisme
INFO_MODE seul ou en pré-traitement de CALC_MODES avec option 'BANDE' découpée
D’un autre côté, le parallélisme de deuxième niveau est plus requis dans ce scénario, donc l’éventuel déséquilibre MUMPS est ici potentiellement plus important. Cependant, comme le coût de calcul de cette étape est négligeable par rapport au coût de CALC_MODES avec l'option 'BAND' découpée en sous-bandes, l'impact global de ces déséquilibres est faible. Comportement numérique Aucun impact. Il peut parfois générer différents messages d'ALARME ou d'ERREUR selon le nombre de processeurs impliqués dans ce deuxième niveau.
Synopsis du parallélisme INFO_MODE uniquement ou prétraitement CALC_MODES avec option 'BAND' découpé en sous-bandes.
INFO_MODE en post-traitement de CALC_MODES avec option 'BANDE' découpée en
Synopsis du parallélisme INFO_MODE dans le post-traitement CALC_MODES avec l'option 'BAND' découpée en sous-bandes.
Autres tests de Sturm
Garde-fous logiciels et conseils méthodologiques
La principale nouveauté concerne le contrôle simultané de plusieurs sous-communicateurs MPI par le communicateur actuel66. Au début de chaque gestionnaire de routine MPI, nous interrogeons cet objet pour connaître le sous-communicateur actuel67. Nous ne traitons que des sous-communicateurs imbriqués pour n'oublier aucun processeur (semblable au blocage pour les sous-communicateurs).
Lors de la communication de gros volumes de données (type groupe de vecteurs propres), on peut jouer sur les sous-communicateurs pour éviter que les réseaux ne s'effondrent. 69 Les fonctionnalités associées, principalement la gestion des sous-communicateurs et les interrogations du sous-communicateur courant, sont encapsulées dans des fonctions dédiées.
Livres/articles/proceedings/thèses
Documents internes EDF
Ressources Internet
Pour introduire des conditions aux limites linéaires, nous utilisons la technique de double dualisation [R3.03.01], qui conduit à un système généralisé transformé. Par décomposition en base B générée par les vecteurs précédents. nous avons principalement utilisé les propriétés d'orthogonalité des familles de vecteurs Vij et la relation. Il est clair que Lii=1,np sont linéairement indépendants, donc la lecture immédiate des termes de la signature qui suit le signe des facteurs.
Les rapports de propriété se déduisent alors tout naturellement en utilisant le principe d'inertie de Sylvester (qui nous assure que cette décomposition.