Arcane propose deux outils pour convertir ou partitionner un maillage.
L'outil arcane_partition_mesh
permet de partitionner un maillage existant et de générer un fichier de maillage par partie. Il s'agit d'un outil parallèle qui utilise par défaut ParMetis
pour réaliser le partitionnement. Cet outil est installé dans le répertoire bin
de l'installation de Arcane.
L'usage est le suivant:
Les valeurs possibles pour writer_service_name
sont des services qui implémentent IMeshWriter. Par exemple:
MshMeshWriter
(le défaut)LimaMeshWriter
VtkLegacyMeshWriter
: uniquement pour visualiser le résultat. Les fichiers générés ne pourront pas être utilisés en lecture du code.Le fichier de maillage d'entrée (mesh_file_name
) peut être au format MSH (extension .msh
), au format VTK history (extension .vtk
) ou un format supporté par Lima
(extension .mli2
, .mli
, .unf
). Lorsque le maillage d'entrée est au format MSH, il n'est pas possible de savoir à priori si le maillage est non-manifold. Par défaut Arcane suppose qu'il s'agit d'un maillage manifold. Si ce n'est pas le cas il faut spécifier l'option --manifold-
dans la ligne de commande.
Le partitionneur se lancera sur nb_proc
processus (via MPI) et va générer nb_part
partitions. Le nombre de partitions doit être un multiple du nombre de processus utilisés. En sortie, il y a aura un fichier par partie. Les fichiers de sortie seront de la forme CPU00000
, CPU00001
, ... avec l'extension correspondante au format du maillage (par exemple .msh
pour le format MSH).
L'option -Wp
permet de fournir des arguments pour le lanceur parallèle (mpiexec
ou srun
en général). Par exemple, la valeur -Wp,-c,4
permet d'ajouter -c 4
au lanceur parallèle.
Si le format d'entrée et de sortie est MSH, chaque fichier contiendra les mêmes $Entities
que le format d'origine ainsi que les informations de périodicité ($Periodics
) pour la partie concernée. Il y a actuellement les limitations suivantes:
$Entities
ne sont pas gérées$Entities
d'origine ne sont pas conservés.TODO
L'exemple suivant utilise 2 processeurs pour découper le maillage onesphere.msh
en 4 parties. Le fichier de sortie sera au format VTK.
L'exemple suivant utilise 4 processeurs pour découper le maillage mesh_with_loose_items.msh
en 12 parties. Le fichier de sortie sera au format MSH. Le maillage d'entrée étant non-manifold, on utilise l'option --manifold-
pour le spécifier.
L'outil arcane_convert_mesh
permet de convertir un fichier de maillage d'un format vers un autre.