Je travaille avec la bibliothèque OpenFOAM C ++ Computational Continuum Mechanics (elle peut gérer les interactions fluide-solide, les flux MHD ...) qui utilise des maillages arbitraires non structurés. Cela a été motivé par l'idée d'utiliser l'avantage de la génération rapide (automatique généralement) de maillages non structurés pour simuler des problèmes dans des géométries complexes.
Cependant, récemment, j'ai rencontré une autre approche: les maillages cartésiens adaptatifs octree avec cellule "coupe", où le raffinement agressif du maillage est utilisé pour décrire une géométrie complexe.
Du point de vue numérique, les maillages cartésiens sont beaucoup plus précis, donc ma question est: quelqu'un a-t-il de l'expérience dans l'utilisation / la mise en œuvre d'une ou des deux de ces approches? Comment se comparent-ils entre eux?
Je développe des codes pour l'écoulement de fluide à deux phases et j'ai remarqué par exemple que la reconstruction des gradients de champ peut être facilement rendue plus précise sur les maillages carthésiens, tandis que le maillage non structuré nécessite une régression linéaire pour les changements brusques du champ ...
Réponses:
Je pense que toutes les bibliothèques FEM les plus modernes (par exemple deal.II, libmesh, ...) utilisent le schéma basé sur octree (ou, pour être plus précis: oct-forêts, avec un arbre à partir de chaque cellule d'un maillage grossier non structuré ). Cela présente de nombreux avantages, principalement parce que vous connaissez la hiérarchie des cellules maillées. Cela implique que vous pouvez facilement effectuer un grossissement, une multigrille géométrique, etc., ce qui est incroyablement difficile si vous commencez avec un maillage fin et non structuré. De plus, le partitionnement devient un problème presque trivial. L'inconvénient de l'approche est que si vous avez une géométrie compliquée, auparavant, vous n'aviez qu'à la décrire au générateur de maillage alors que maintenant vous devez également la décrire au code FEM car vous avez besoin de la géométrie lors du raffinement d'une cellule située sur le frontière.
Toutes choses étant égales par ailleurs, je pense que l'approche basée sur les octree est beaucoup plus flexible et utile que l'utilisation d'un maillage non structuré ginormous.
la source
Notez également que la discrétisation temporelle implicite et la méthode des lignes sont plus simples et ont des propriétés plus agréables pour les méthodes dans lesquelles le nombre de DOF et la connectivité du maillage ne changent pas. De plus, à condition que la physique et la discrétisation spatiale soient différenciables en continu, il y aura un adjoint continu (utile pour l'analyse de sensibilité, l'optimisation, la quantification de l'incertitude, etc.).
Le meilleur choix dépend fortement du problème, mais pour les problèmes CFD avec des couches limites minces, en particulier lors de l'utilisation de la résolution de mur au lieu de la modélisation de mur, les maillages conformes non structurés ou structurés en blocs sont de bons choix.
la source
Les grilles structurées permettent de nombreuses hypothèses qui peuvent être exploitées pour les performances, mais sont généralement plus difficiles à mettre en œuvre et moins efficaces à réaliser que les grilles non structurées en présence de limites complexes. Les grilles non structurées se rapprocheront efficacement des limites complexes sans programmation supplémentaire, mais très peu d'hypothèses peuvent être faites sur la structure de la matrice. Comme toujours, il n'y a pas de meilleure approche que celle qui convient le mieux à vos besoins. Le premier est souvent employé dans l'océan, le climat, la modélisation cosmo / géo, le second dans les problèmes d'ingénierie.
la source