Solveur linéaire : Options avancées

Cette section cible les utilisateurs avancés afin de les aider à comprendre les paramètres de chaque solveur. Les utilisateurs avancés qui veulent sélectionner manuellement le solveur à utiliser et pas seulement le type de solveur doivent changer leur mode utilisateur : Flux Superviseur > Options > Mode utilisateur > Avancé, puis fermer et rouvrir Flux pour appliquer ce changement. En mode avancé, la boîte d’options de résolution affiche beaucoup plus d’options pour les solveurs linéaires. Voici la liste des solveurs linéaires :

Type Nom du solveur Parallélisé Distribué
N/A Solveur automatique [défaut] N/A N/A
Itératif ICCG [défaut] Non Non
PETSc Oui Oui
GMRes Non Non
BICGStab Non Non
Direct SuperLU Non Non
Mumps(Local)[défaut] Oui Non
Mumps (Distributed) Oui Oui
N/A Par routine utilisateur N/A N/A
N/A Solveur externe N/A N/A

Pour les solveurs parallèles et distribués, vous pouvez définir des paramètres de distribution globalement via Flux Superviseur > Options > Système > Calcul parallèle. Ces paramètres sont utilisés pour configurer Mumps et PETSc par défault, voir Calcul parallèle pour plus de détails.

Ci-dessous les détails de chaque paramètre de solveur sont fournis.

ICCG

ICCG est un solveur itératif qui utilise le gradient conjugué pour la résolution et la factorisation incomplète de Cholesky LDLT pour le préconditionnement. En Magnéto Harmonique, ICCG utilise le gradient bi-conjugué pour la résolution et la factorisation incomplète LDU pour le préconditionnement.

Options

Paramètre Description
Précision pour le Gradient Conjugué

Précision relative à satisfaire avant d’arrêter le processus itératif.

Valeur par défaut : 1.0e-6

Nombre maximum d’itérations

pour le Gradient Conjugué

Nombre maximum d’itérations à effectuer avant d’arrêter le processus itératif. Deux options sont disponibles pour définir le nombre d’itérations :

  • Une fonction linéaire qui prend deux entiers en entrées (A et B) définies comme :

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B
  • Une valeur fixe N

Valeur par défaut : Fonction linéaire avec A = 1 et B = 1, qui correspond au nombre d’équations du problème.

Tolérance pour le préconditionnement LDU

Précision du préconditionneur.

Valeur par défaut : 1.0e-7

Affiche l’évolution de la convergence

Indicateur du niveau de verbosité du processus itératif. Définir à « oui » pour écrire un suivi du processus itératif au cours de la résolution.

Valeur par défaut : “non”

PETSc

PETSc est une librairie de solveurs itératifs parallèles et distribués. Une pré-sélection de solveur/préconditionneur a été faite en fonction de la dimension et du type de problème traité. Le nombre de processeur est défini dans le Superviseur de Flux, visitez la page web de PETSc.

Options

Paramètre Description
Précision du solveur PETSc

Précision relative à satisfaire avant d'arrêter le processus itératif. Quatre options sont disponibles : Automatique, Basse (1e-4), Moyenne (1e-8) et Élevée (1e-12).

Valeur par défaut : Automatique

Nombre maximum d’itérations

Nombre maximum d’itérations à effectuer avant d’arrêter le processus itératif.

Valeur par défaut : 5 000

GMRes

GMRes est un solveur itératif qui utilise la généralisation de la méthode de minimisation du résidu pour la résolution et la factorisation incomplète avec ILUT pour le préconditionnement.

Options
Paramètre Description
Précision pour GMRes

Précision relative à satisfaire avant d’arrêter le processus itératif.

Valeur par défaut : 1.0e-6

Nombre maximum d’itérations

pour GMRes

Nombre maximum d’itérations à effectuer avant d’arrêter le processus itératif. Deux options sont disponibles pour définir le nombre d’itérations :

  • Une fonction linéaire qui prend deux entiers en entrées (A et B) définies comme :

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B
  • Une valeur fixe N

Valeur par défaut : Fonction linéaire avec A = 1 et B = 1, qui correspond au nombre d’équations du problème.

Tolérance pour le préconditionnement ILUT

Précision du préconditionneur.

Valeur par défaut : 1.0e-6

Coefficient pour le niveau de remplissage lors du préconditionnement ILUT

Facteur de remplissage du conditionneur ILUT.

Valeur par défaut : 6.0

Dimension pour l’espace de Krylov

Nombre de vecteurs à stocker afin de construire l’espace Krylov.

Valeur par défaut : 120

Affiche l’évolution de la convergence

Indicateur du niveau de verbosité du processus itératif. Définir à « oui » pour écrire un suivi du processus itératif au cours de la résolution.

Valeur par défaut : “non”

BiCGStab

BiCGStab est un solveur itératif qui utilise le Gradient Bi-Conjugué Stabilisé pour la résolution et la factorisation incomplète de Cholesky LDLT pour le préconditionnement. En Magnéto Harmonique, BiCGStab utilise la factorisation incomplète LDU pour le préconditionnement

Options
Paramètre Description
Précision pour BiCGStab

Précision relative à satisfaire avant d’arrêter le processus itératif.

Valeur par défaut : 1.0e-6

Nombre maximum d’itérations pour BiCGStab

Nombre maximum d’itérations à effectuer avant d’arrêter le processus itératif. Deux options sont disponibles pour définir le nombre d’itérations :

  • Une fonction linéaire qui prend deux entiers en entrées (A et B) définies comme :

    N = A   ×   n u m b e r   o f   d e g r e e s   o f   f r e e d o m + B
  • Une valeur fixe N

Valeur par défaut : Fonction linéaire avec A = 1 et B = 1, qui correspond au nombre d’équations du problème.

Tolérance pour le préconditionnement de LDU (ou LDLT)

Précision du préconditionneur.

Valeur par défaut : 1.0e-7

Affiche l’évolution de la convergence

Indicateur du niveau de verbosité du processus itératif. Définir à « oui » pour écrire un suivi du processus itératif au cours de la résolution.

Valeur par défaut : “non”

SuperLU

SuperLU est une méthode directe qui utilise l’algorithme d’élimination de Gauss.

Options
Paramètre Description
Algorithme de renumérotation des colonnes

Spécifie comment permuter les colonnes de la matrice pour préserver le caractère creux de la matrice. Les méthodes de réorganisation sont les suivantes :

  • Renumérotation avec degré minimum sur AT + A;
  • Renumérotation avec degré minimum sur AT * A;
  • Renumérotation avec COLAMD ;
  • Renumérotation par dissection (2D) [Automatique en 2D], utilise METIS ;
  • Renumérotation par dissection (3D) [Automatique en 3D], utilise METIS.

Valeur par défaut : “Méthode de renumérotation automatique”.

Pivotage partiel par ligne

Spécifie la méthode de pivotage de la ligne. Trois choix sont possibles :

  • 0.0 pour désactiver le pivotement ;
  • ]0.0, 1.0[, pour utiliser le pivotage partiel relaxé ;
  • 1.0 pour utiliser la méthode de pivotage classique.

Valeur par défaut : 0.0 (pas de pivotage).

Raffinement itératif

Spécifie s’il faut effectuer le raffinement itératif.

Valeur par défaut : “Sans raffinement itératif”.

Mode symétrique

Spécifie l’utilisation du mode symétrique. Le mode symétrique donne la préférence aux pivots diagonaux et utilise un algorithme de permutation de colonne (AT + A).

Valeur par défaut : “Sans mode symétrique”

Calcul du « pivot growth »

Définit le calcul ou non du « pivot growth ».

Valeur par défaut : “Sans calcul du pivot growth”

Calcul du conditionnement

Spécifie si le calcul du conditionnement doit être fait.

Valeur par défaut : “Sans calcul du conditionnement”

Mumps

Mumps est un solveur direct, basé sur une approche multifrontal.

Mumps (Local) est un solveur mono-process, mais multithread. Il n’y a qu’un seul processus alors que le nombre de threads est fixé par le nombre de cœurs choisi par l’utilisateur à partir du Superviseur de Flux.

Mumps (Distributed) est un solveur multi-processus et multithread. Le nombre de processus et de threads sont définis dans le superviseur de Flux, voir Calcul Parallèle pour plus de détails.

Options
Paramètre Description
Niveau d’information

Définit le niveau de verbosité pendant le processus de résolution. Quatre niveaux sont disponibles pour décider quelles informations seront affichées :

  • 1- Messages d’erreurs seulement
  • 2- Messages d’erreurs, warnings et principales statistiques
  • 3- Messages d’erreurs, warnings et diagnostics
  • 4- Messages d’erreurs, warnings et informations sur paramètres d’entrée et sortie

Valeur par défaut : “1- Messages d’erreurs seulement”

Utilisation mémoire sur disque

Définit les options concernant l’utilisation du disque. Quatre options sont disponibles :

  • Non
  • Automatique – Passage en mémoire sur disque selon la taille de la matrice
  • Oui – Répertoire temporaire par défaut
  • Oui – Choix du répertoire temporaire

Valeur par défaut : “Non”

Méthode de reordering

Spécifie la méthode de reordering à utiliser. Cinq méthodes peuvent être utilisées :

  • METIS
  • AMD – Approximate Minimum Degree
  • QAMD – AMD avec detection des lignes quasi-denses
  • PORD
  • AMF

Valeur par défaut : “Automatique – Choix dans Mumps”

Limitation de la mémoire RAM

Définit la limitation d’utilisation de la mémoire RAM. Il permet à l’utilisateur de limiter la mémoire que Mumps peut utiliser (en MB).

Valeur par défaut : Illimitée

Options MPI

Seulement pour MUMPS (Distribué). Définit les options MPI. Pour activer les calculs MPI, le nombre de MPI peut être spécifié avec le nombre de Thread.

Valeur par défaut : “Non”