Solveur linéaire : Options standards
Informations générales sur les solveurs linéaires
Un système linéaire de n équations et n inconnus peut être écrit sous la forme matricielle suivante :
AX=B
où :
- A est une matrice carrée de taille n x n (avec n lignes et n colonnes) ;
- X est un vecteur de taille n, représentant les inconnues du système ;
- B est un vecteur de taille n, avec des composantes connues.
Pour trouver la solution, c’est-à-dire le vecteur X, un solveur linéaire doit être utilisé. Deux types de solveurs peuvent être distingués : les solveurs directs et itératifs.
Les solveurs directs suivent un processus qui mène à une solution très précise, mais au prix de plusieurs opérations coûteuses en termes de mémoire (RAM).
Les solveurs itératifs suivent un processus itératif qui approxime une solution à chaque itération. Habituellement, le processus tend à fournir une solution plus proche de la solution réelle du système linéaire d’une itération à l’autre. Le processus requière un critère d’arrêt (ou seuil de précision) et un nombre maximal d’itérations, permettant ainsi d’arrêter le processus itératif en cours de calcul lorsqu’un ou les deux critères sont satisfaits. Ainsi, le solveur itératif peut conduire à des solutions plus rapidement au prix d’une certaine inexactitude définie via le seuil de précision.
Quel solveur utiliser ?
Pour modifier le solveur linéaire utilisé dans Altair Flux,
(voir la Figure ci-dessous) :Une fenêtre devrait apparaître comme dans la Figure suivante :
L’utilisateur peut choisir entre trois solveurs linéaires :
- Solveur automatique,
- Solveur direct,
- Solveur itératif.
Précision | Mémoire | Temps | Parallélisé | ||
---|---|---|---|---|---|
Nombre de nœuds | Quelconque | Quelconque | < 500 000 | > 500 000 | Quelconque |
Solveur direct | +++ | --- | ++ | + | Oui |
Solveur itératif | ++ | - | + | ++ | Oui |
Le solveur automatique choisit d’utiliser le solveur direct ou itératif suivant le type d’application et le nombre d’inconnues, tel que résumé dans le tableau ci-dessous :
Dimension | 2D | 3D | |||
---|---|---|---|---|---|
Application | Quelconque | Autres | Magnéto Statique – Méthode Intégrale | Magnéto Harmonique | |
Nombre de nœuds | Quelconque | < 500 000 | > 500 000 | Quelconque | Quelconque |
Solveur utilisé | Direct | Direct | Itératif | Itératif | Direct |
Lorsqu’un utilisateur souhaite sélectionner manuellement le solveur en tenant compte de ses propres ressources de calcul, nous pouvons vous conseiller à l'aide des directives suivantes :
- Pour le matériel de type HPC (High Performance Computing) ou les ordinateurs ayant une grande capacité de RAM, l’utilisation du solveur direct est recommandée dû au fait qu’il soit parallélisé et à sa scalabilité.
- Pour les ordinateurs avec une faible quantité de RAM, il serait judicieux d’utiliser le solveur itératif pour sa faible consommation de mémoire.
- Pour les problèmes 2D, leurs nombres d’inconnues sont relativement faibles, le solveur direct devrait donc fournir de meilleurs résultats en termes de temps de résolution quelque soit vos ressources.
Réglages des paramètres des solveurs linéaires
Cette section cible les utilisateurs avancés afin de les aider à comprendre les paramètres de chaque solveur.
Tout d’abord, nous allons discuter des options de solveur accessibles à tout utilisateur. En mode standard, les options de solveur sont simplifiées comme l’illustre la Figure suivante :L’option du solveur direct disponible consiste à utiliser le disque dur pour la résolution en plus de la RAM. Cette option est très utile car elle permet d’étendre la quantité de mémoire RAM utilisable. Toutefois, l’utilisation du disque dur implique des opérations plus lentes puisque les disques sont sensiblement plus lents à effectuer des opérations d’entrée/sortie.
Sur la figure de droite, deux options sont disponibles pour le solveur itératif : le niveau de précision (ou seuil) et le nombre maximal d’itérations. Vous pouvez choisir entre quatre précisions : automatique, élevée, moyenne et basse. Le choix d’un niveau pour ce paramètre dépend uniquement de votre exigence sur la qualité des résultats, pour les simulations de préconceptions un utilisateur pourrait se permettre un faible niveau de précision par exemple. Plus le niveau est bas, plus le temps de résolution devrait être faible. Le nombre maximal d’itérations permet de définir une limitation sur le temps de résolution. Cependant un nombre faible d’itérations peut conduire à des solutions très inexactes.
Les options mentionnées ci-dessus sont des options générales qui s’appliquent au solveur direct et itératif par défaut. Les utilisateurs avancés qui veulent sélectionner manuellement le solveur à utiliser et pas seulement le type de solveur doivent changer leur mode utilisateur. Plus d'informations sur ces options avancées sont disponibles au chapitre suivant : Les options avancées du solveur linéaire.