Partitionnement de domaine¶
Lorsqu'un maillage de grande taille est analysé en parallèle avec plusieurs processus, il faut d'abord diviser le maillage du domaine unique en sous-domaines et générer à l'avance les informations nécessaires à l'affectation de chaque processus ainsi qu'aux communications inter-domaines. Ce prétraitement est appelé partitionnement de domaine.
Dans le calcul parallèle de FrontISTR, hecmw_part1 partitionne un maillage à domaine unique en sous-domaines et crée les données de maillage distribué. Ces données sont lues par fistr1 en mode parallèle et utilisées par le solveur parallèle avec les informations nécessaires aux communications inter-domaines.
Cette page décrit le type de partitionnement, la méthode de partitionnement, la profondeur de recouvrement et le traitement des points de contact. Pour la procédure d'exécution de hecmw_part1, la syntaxe détaillée du fichier de contrôle et les messages d'erreur, voir les rubriques connexes.
Vue d'ensemble¶
Le partitionnement de domaine consiste à diviser un maillage à domaine unique en plusieurs sous-domaines. FrontISTR crée des données de maillage distribué en combinant un type de partitionnement, une méthode de partitionnement, un nombre de domaines et une profondeur de recouvrement.
| Axe de sélection | Principales options | Rôle |
|---|---|---|
| Type de partitionnement | Partitionnement basé sur les nœuds, partitionnement basé sur les éléments | Détermine si l'appartenance est attribuée par nœud ou par élément. |
| Méthode de partitionnement | RCB, METIS (pMETIS / kMETIS) | Détermine la manière dont les frontières des domaines sont créées. |
| Nombre de domaines | Tout entier positif (\(2^n\) pour RCB) | Détermine le nombre de sous-domaines dans les données de maillage distribué. Il correspond normalement au nombre de processus MPI. |
| Profondeur de recouvrement | Entier supérieur ou égal à 1 | Détermine l'étendue conservée de manière redondante par les domaines voisins. Spécifiée pour le partitionnement basé sur les nœuds. |
| Tables de communication | Informations d'import/export, informations partagées | Définit les échanges de données nécessaires entre sous-domaines voisins. Générées automatiquement lors du partitionnement de domaine. |
Les tables de communication étant incluses dans les données de maillage distribué, l'utilisateur n'a normalement pas à les modifier directement. fistr1 en mode parallèle lit les données de maillage distribué et résout les systèmes linéaires au moyen d'une méthode directe parallèle telle que MUMPS ou d'une méthode itérative.
Choix d'une configuration de partitionnement de domaine¶
Pour les analyses structurales et de conduction thermique courantes, le partitionnement basé sur les nœuds constitue généralement le premier choix. Il facilite la communication des valeurs nodales requises en analyse parallèle par éléments finis et permet également de spécifier la profondeur de recouvrement. Le partitionnement basé sur les éléments est une option pour les applications, telles que les analyses couplées, où les informations distribuées doivent être traitées principalement au niveau des éléments.
Choisir la méthode de partitionnement en fonction de la géométrie et du nombre de domaines. Pour les géométries simples où le nombre de domaines peut être \(2^n\), RCB est un choix simple et stable. Pour les géométries complexes ou lorsqu'un nombre quelconque de domaines est requis, METIS, fondé sur le partitionnement de graphe, est un candidat.
| Caractéristiques du problème | Choix recommandé |
|---|---|
| Analyse parallèle standard structurale ou de conduction thermique | Partitionnement basé sur les nœuds |
| Applications utilisant des informations distribuées centrées sur les éléments, telles que les analyses couplées | Partitionnement basé sur les éléments |
| Géométrie simple proche d'un parallélépipède rectangle, avec \(2^n\) domaines | RCB |
| Géométrie complexe ou nombre quelconque de domaines | METIS |
| Problèmes de contact ou avec contraintes MPC utilisant le préconditionneur SAINV | Utiliser un partitionnement basé sur les nœuds avec une profondeur de recouvrement d'au moins 2 |
Le nombre de domaines correspond normalement au nombre de processus MPI. Pour la procédure d'exécution parallèle et la spécification du nombre de processus, voir Analyse parallèle. Pour la relation entre le préconditionneur SAINV et la profondeur de recouvrement, voir également Solveur et préconditionneurs.
Types de partitionnement¶
Le type de partitionnement détermine l'entité du maillage à laquelle est attribuée une appartenance unique à un sous-domaine. Le partitionnement basé sur les nœuds attribue l'appartenance aux nœuds, tandis que le partitionnement basé sur les éléments l'attribue aux éléments. Dans les deux cas, les informations nécessaires aux calculs avec les sous-domaines voisins sont conservées comme données de recouvrement.
Partitionnement basé sur les nœuds¶
Dans le partitionnement basé sur les nœuds, chaque nœud est attribué à un seul sous-domaine propriétaire. Les éléments sont conservés avec recouvrement dans les sous-domaines voisins. Dans l'entrée, cela se spécifie avec !PARTITION, TYPE=NODE-BASED.

Chaque sous-domaine conserve ses nœuds internes, les éléments contenant ces nœuds internes, ainsi que les nœuds constituant ces éléments.

Les tables de communication du partitionnement basé sur les nœuds contiennent les informations suivantes.
- Nœuds importés : nœuds utilisés dans un sous-domaine mais appartenant à un autre sous-domaine.
- Nœuds exportés : nœuds internes qui sont des nœuds importés d'un autre sous-domaine.
- Éléments partagés : éléments partagés avec d'autres sous-domaines.



Partitionnement basé sur les éléments¶
Dans le partitionnement basé sur les éléments, chaque élément est attribué à un seul sous-domaine propriétaire. Les nœuds sont conservés avec recouvrement dans les sous-domaines voisins. Dans l'entrée, cela se spécifie avec !PARTITION, TYPE=ELEMENT-BASED.

Chaque sous-domaine conserve ses éléments internes, les nœuds constituant ces éléments internes, ainsi que les éléments contenant ces nœuds.

Les tables de communication du partitionnement basé sur les éléments contiennent les informations suivantes.
- Éléments importés : éléments utilisés dans un sous-domaine mais appartenant à un autre sous-domaine.
- Éléments exportés : éléments internes qui sont des éléments importés d'un autre sous-domaine.
- Nœuds partagés : nœuds partagés avec d'autres sous-domaines.



Pour les deux types de partitionnement, hecmw_part1 génère automatiquement les tables de communication et les écrit dans les données de maillage distribué. L'utilisateur n'a donc normalement pas à créer directement les informations d'import/export.
Méthodes de partitionnement¶
La méthode de partitionnement détermine la manière dont les frontières des sous-domaines sont créées. FrontISTR prend en charge RCB, fondé sur les coordonnées, et METIS, fondé sur le partitionnement de graphe.
| Méthode de partitionnement | Caractéristiques | Principales contraintes et remarques |
|---|---|---|
| RCB | Bisection récursive du maillage en fonction des valeurs de coordonnées. Permet un partitionnement rapide pour les géométries simples. | Le nombre de domaines est limité à \(2^n\). Les axes de partitionnement doivent être spécifiés. |
| pMETIS | Utilise le partitionnement de graphe en tenant compte de la connectivité entre les domaines. | Disponible dans les compilations où METIS est activé. |
| kMETIS | Utilise un partitionnement de graphe multi-voies, adapté à la création de frontières de domaines pour des géométries complexes. | Disponible dans les compilations où METIS est activé. |
RCB signifie Recursive Coordinate Bisection et consiste à bisecter de manière répétée le maillage le long des axes de coordonnées. Cette méthode convient lorsque le nombre de domaines peut être \(2^n\) et est facile à utiliser pour des géométries simples de type parallélépipède.
METIS traite la connectivité du maillage comme un graphe et crée des sous-domaines par partitionnement de graphe. Il constitue un choix pour les géométries complexes ou lorsqu'on ne souhaite pas limiter le nombre de domaines à \(2^n\). Pour utiliser METIS, la bibliothèque METIS doit être activée lors de la compilation. Pour la gestion des dépendances, voir Dépendances obligatoires et facultatives.
Profondeur de recouvrement¶
La profondeur de recouvrement est le nombre de couches de la zone conservée de manière redondante par des sous-domaines voisins. Pour le partitionnement basé sur les nœuds, !PARTITION permet de spécifier avec le paramètre DEPTH un entier supérieur ou égal à 1. La profondeur de recouvrement par défaut est 1.
Pour une analyse parallèle ordinaire, DEPTH=1 est suffisant. Toutefois, lorsqu'un préconditionneur de la famille SAI tel que SAINV est utilisé pour un problème de contact ou un problème avec contraintes MPC, augmenter la profondeur de recouvrement à 2 ou plus peut améliorer la qualité du préconditionnement.
Une profondeur de recouvrement d'au moins 2 est également requise lorsque la formulation de lissage sélectif par arêtes/nœuds (FORM341=SELECTIVE_ESNS) est utilisée avec l'élément tétraédrique linéaire 341 en calcul parallèle MPI. Le lissage basé sur les arêtes ou les nœuds moyenne des grandeurs sur les éléments adjacents à l'élément cible ; l'assemblage de la rigidité dans un sous-domaine nécessite donc des informations provenant d'éléments situés à deux couches d'adjacence. Avec la valeur par défaut DEPTH=1, le lissage près des frontières de domaines est insuffisant. Pour plus de détails sur la formulation de l'élément, voir Bibliothèque d'éléments.
L'augmentation de la profondeur de recouvrement accroît le nombre de nœuds et d'éléments conservés par les sous-domaines voisins, et augmente donc l'utilisation mémoire et le volume des communications. Le réglage doit équilibrer l'amélioration de la convergence et l'augmentation du coût de calcul. Pour le choix du préconditionneur, voir Solveur et préconditionneurs.
Traitement des points de contact¶
Lors du partitionnement d'un maillage contenant des paires de contact, le paramètre CONTACT de !PARTITION permet de spécifier la stratégie de placement des points de contact dans les domaines. Le placement des points de contact influe sur la stabilité et le volume des communications des analyses parallèles impliquant la recherche de contact et les contraintes de contact.
| Valeur | Rôle |
|---|---|
DEFAULT |
Utilise la stratégie de placement standard. |
SIMPLE |
Utilise un placement proche d'un partitionnement ordinaire, sans attribuer de poids particulier aux points de contact. |
AGGREGATE |
Partitionne de manière à regrouper les nœuds associés aux paires de contact. |
DISTRIBUTE |
Partitionne de façon à éviter autant que possible la concentration des nœuds maîtres du contact dans certains sous-domaines. |
Pour les maillages sans contact, le paramètre CONTACT ne requiert généralement aucune attention particulière. Si la convergence ou l'équilibrage de charge pose problème dans une analyse parallèle avec contact, revoir la stratégie de placement des points de contact. Pour plus de détails sur la syntaxe d'entrée, voir !PARTITION.
Sortie d'une image du partitionnement de domaine¶
Lorsque le paramètre UCD de !PARTITION est spécifié, un fichier UCD peut être généré pour vérifier le résultat du partitionnement. Ce fichier peut être utilisé avec des outils de visualisation tels que MicroAVS afin d'examiner les numéros de domaines et les frontières de partitionnement.
Après modification du nombre de domaines, de la méthode de partitionnement ou de la profondeur de recouvrement, il est important de vérifier l'absence de déséquilibre entre les domaines partitionnés ou de fragmentation anormale. La sortie UCD est une fonction auxiliaire permettant de vérifier la validité du partitionnement avant l'exécution de l'analyse parallèle.
Rubriques connexes¶
- Analyse parallèle — Procédure d'exécution de
hecmw_part1, fichiers d'entrée et vérification de la sortie des données de maillage distribué. - Solveur et préconditionneurs — Solveurs parallèles, préconditionneurs et relation entre SAINV et la profondeur de recouvrement.
- Liste des messages d'erreur — Messages d'erreur représentatifs de
hecmw_part1etfistr1. - Méthode parallèle des éléments finis — Contexte théorique de la décomposition de domaine et des méthodes parallèles des éléments finis.
- !PARTITION — Syntaxe d'entrée des données de contrôle de l'utilitaire de partitionnement de domaine.