Les grilles dites quadtree et octree sont très intéressantes pour les applications nécessitant un raffinement adaptatif du maillage. Ils sont par exemple utilisés à Gerris et Paramesh . Quelqu'un connaît-il un bon format de fichier pour de telles grilles et un logiciel de visualisation compatible? Voir également cette réponse dans la FAQ Gerris. Le seul candidat potentiel que je connaisse actuellement est la classe VTK HyperOctree , mais il semble qu'il n'y ait presque aucune documentation.
Comme exemple spécifique d'un maillage, considérons une grille d'octree peu raffinée, composée de cases, chacune contenant 8 × 8 × 8 = 512 cellules. Mes stratégies actuelles dans Visit / Paraview sont:
- Écrivez la grille en tant que fichier VTK non structuré. Cela coûte cher pour des ensembles de données plus importants et n'exploite pas la «structure» du quad / octree.
- Rassemblez les «boîtes» voisines de l'arbre en blocs plus grands et écrivez une grille structurée en blocs. Cela implique un peu de code supplémentaire et perd les informations de connectivité intégrées dans le quad / octree.
Mise à jour S'il n'y a actuellement aucun format viable pour écrire et visualiser directement une grille d'octree, j'apprécierais des suggestions pour un format de fichier qui peut être utilisé pour écrire l'octree comme une grille structurée en blocs. Idéalement, ce format:
- A une définition / implémentation relativement simple, idéalement open source et compatible avec C / Fortran.
- Peut gérer efficacement un grand nombre de blocs de grille (par exemple 1000 ou plus).
- Permet de spécifier facilement la connectivité des blocs de grille, en particulier aux limites du raffinement.
J'utilise actuellement Silo à cette fin, mais je cherche quelque chose qui marque mieux sur les trois points ci-dessus (plus petit, plus rapide, plus simple).
la source
Réponses:
Dans mon cas, lorsque je faisais le raffinement à plusieurs niveaux, j'avais l'habitude d'écrire des fichiers de grille à différents niveaux séparément. Habituellement, le niveau 0 est un maillage grossier de base qui reste fixe. Et pour le niveau 1 et plus, j'ai utilisé différents fichiers pour différents patchs. Supposons que si vous avez 5 correctifs corrects au niveau 1, ma stratégie était d'écrire cinq fichiers différents à la fin de mon programme, quelque chose comme Level_1_Patch_1, Level_1_Patch_2 ... qui pourrait être fait dynamiquement en C (jamais travaillé dans Fortran).
Je dois mentionner ici que j'ai utilisé un système de grille structurée à différences finies.
Donc une fois j'ai eu tous les niveaux et leurs fichiers .PLT ou .DAT. Je les importe tous dans TecPLOT. Par exemple, lorsque j'écrivais mon code à deux niveaux avec quelques correctifs fins au niveau 1, votre maillage devrait ressembler à ceci dans Tecplot.
Je ne suis pas très familier avec la manipulation des grilles non structurées mais celles structurées sont bien gérées dans Tecplot
la source