14. Résolution et Solveurs#
Industrialisation de MUMPS 5.6.2.2c (#33202 - 17.1)
Montée de version de MUMPS, de ses prérequis (PARMETIS, METIS, SCOTCH, PT-SCOTCH) ainsi que d’autres dépendances:
METIS 5.1.0 ==> version identique mais fourni par ParMETIS
MFront 4.1.0 ==> 4.2.0
MGIS 2.1-dev ==> 2.2
Scotch 7.0.1 ==> 7.0.4
Scalapack 2.1.0 ==> 2.2.0 + correction pour utilisation des scalapack MKL si disponibles
Mumps 5.5.1_consortium_aster1 ==> 5.6.2.2c
PETSc 3.17.1_aster ==> PETSc 3.19.5
mpi4py 3.1.3 ==> 3.1.5
medcoupling V9_10_0 ==> V9_11_0
Impact sur les études : On note une amélioration des performances de toutes les simulations code_aster (lorsque couplé avec modification connexe des paramètres slurm : entre X1.6 ET X3 Cette version permet la correction de plusieurs bugs/dysfonctionnements dans MUMPS remontés par les tests.
Utilisation de « simples Lagranges » (#33452/33510 - 17.1)
Pour limiter le nombre de degrés de liberté, on aimerait pouvoir se contenter de multiplicateurs de Lagrange simples. Cela est réalisé pour les commandes STAT_NON_LINE et CALC_PRECONT. Pour les cas de macro-commande CALC_PRECONT, on introduit le mot clé DOUBLE_LAGRANGE=”OUI” ou “NON” pour s’assurer de l’homogénité des choix avec les chargements.
Exporter la portion locale d’une matrice ou d’un vecteur vers petsc4py (#33690 - 17.1)
Dans le cadre des travaux de thèse sur le préconditionnement non-linéaire, on souhaite pouvoir résoudre un problème non-linéaire sur chaque sous-domaine. Pour ce faire, on souhaite exporter la portion locale d’une matrice ou d’un vecteur vers petsc4py. Sur cette base, on pourra construire un solveur non-linéaire sur chaque sous-domaine.
Arrêter le calcul STAT_NON_LINE par un nombre de pas de temps (#34051 - 17.2)
L’idée est de pouvoir contrôler plus finement la liste d’instant d’un calcul statique pour limiter l’empreinte mémoire. On laisse la possibilité à l’utilisateur de contrôler le nombre de pas de temps dans STAT_NON_LINE, quelque soit la longueur initiale de la liste d’instants. On utilise le mot-clé
NB_PAS_MAXIdans DEFI_LIST_INST. Si on atteint NB_PAS_MAXI, même si on n’est pas à la fin de la liste de pas de temps donné par l’utilisateur, le calcul s’arrête proprement et archive les données.Développer le solveur non-linéaire RASPEN (#33849 - 17.2)
Dans le cadre de la thèse de Mehdi ETTAOUCHI sont menés des travaux sur des solveurs non-linéaires fondés sur la décomposition de domaine. On s’intéresse spécifiquement à l’approche Restrictive Additive Schwarz Preconditioned Exact Newton (RASPEN) qui présente de bonnes propriétés de robustesse. Il est implanté dans MECA_NON_LINE.
Introduction d’un pré-conditionneur de second niveau dans RASPEN (#34401 - 17.4)
Dans le cadre d’une thèse sont menés des travaux sur des solveurs non-linéaires fondés sur la décomposition de domaine. On s’intéresse spécifiquement à l’approche Restrictive Additive Schwarz Preconditioned Exact Newton (RASPEN) qui présente de bonnes propriétés de robustesse, introduite dans 17.2, on propose maintenant d’ajouter la possibilité d’utiliser un préconditionneur de 2nd niveau. Son objectif est d’améliorer la scalabilité de la méthode en présence de nombreux sous-domaines.
Permettre la découpe du pas de temps avec RASPEN (#35109 - 17.4)
Pour rendre RASPEN utilisable dans les études, il est ajouté la possibilité de découpe du pas de temps.
Ajouter des options dans PETSC/HPDDM (#34931 - 17.4)
Le but de ce développement est de rajouter des mot-clés sous l’option SOLVEUR pour HPDDM. On rajoute une autre construction du problème grossier avec harmonic_overlap
HARMOen plus de geneoGENEO. Il est adapté au problème non-symétrique. Par défaut, le solveur fonctionne avec mode AUTO (défaut): GENEO si matrice SYME sinon HARMO. On permet également de donner le nombre de modes que l’on veut calculer pour le problème grossier (NB_MODE, défaut=30), un seuil pour éliminer les MODES inutiles en relatif par rapport au plus important (SEUIL, défaut=0.0, tous les modes sont conservés).