Je plonge dans le monde fascinant de l'analyse par éléments finis et je voudrais résoudre un gros problème thermo-mécanique (uniquement thermique mécanique à , pas de feedback).
Pour le problème mécanique, j'ai déjà compris de la réponse de Geoff , que je devrai utiliser un solveur itératif en raison de la taille de ma maille. J'ai également lu dans la réponse de Matt que le choix de l'algorithme itératif correct est une tâche intimidante.
Je demande ici s'il existe une expérience sur de gros problèmes linéaires-élastiques en 3D qui pourrait m'aider à affiner ma recherche des meilleures performances? Dans mon cas, c'est une structure avec des films minces à motifs et des matériaux placés de manière irrégulière (à la fois CTE élevé et CTE faible). Il n'y a pas de grandes déformations dans cette analyse thermo-mécanique. Je peux utiliser le HPC de mon université [1,314 nœuds, avec 2 processeurs AMD Opteron (chacun 2,2 GHz / 8 cœurs)].
Je pense que cela PETSc
pourrait contenir quelque chose d'intéressant, en particulier les algorithmes qui font une sorte de décomposition de domaine (FETI, multigrid) mais je suis un peu dépassé par les options et je n'ai aucune expérience. J'aime aussi l'expression «préconditionneurs géométriquement informés» , mais je ne sais pas si cela m'aide. Je n'ai pas encore trouvé quelque chose qui se concentre sur la mécanique du continuum linéaire.
Une mise à l'échelle forte (Amdahl) est très importante dans mon application car mes partenaires industriels ne peuvent pas attendre longtemps les résultats de la simulation. J'apprécie certainement non seulement les réponses, mais aussi les recommandations pour une lecture plus approfondie dans les commentaires.
la source
Réponses:
En supposant que vos structures sont en réalité 3D (plutôt que seulement des fonctionnalités minces, peut-être discrétisées avec des éléments de coque) et que le modèle est supérieur à quelques centaines de milliers de DOF, les solveurs directs deviennent peu pratiques, surtout si vous n'avez besoin de résoudre chaque problème qu'une seule fois. De plus, à moins que la structure ne soit toujours "proche" d'une limite de Dirichlet, vous aurez besoin d'une méthode à plusieurs niveaux pour être efficace. La communauté est divisée entre "multigrille" et "décomposition de domaine à plusieurs niveaux". Pour une comparaison des mathématiques, voir ma réponse à: Quel est l'avantage du multigrille sur les préconditionneurs de décomposition de domaine, et vice versa?
La communauté multigrille a généralement mieux réussi à produire des logiciels à usage général. Pour l'élasticité, je suggère d'utiliser une agrégation lissée qui nécessite un "espace presque nul" approximatif. Dans PETSc, cela se fait en choisissant PCGAMG ou PCML (configurer avec
--download-ml
) et en appelantMatSetNearNullSpace()
pour fournir les modes de corps rigides.Les méthodes de décomposition de domaine offrent une opportunité de grossir plus rapidement que l'agrégation lissée, pouvant ainsi être plus tolérante à la latence, mais le "point idéal" en termes de performances a tendance à être plus étroit que l'agrégation lissée. À moins que vous ne vouliez faire des recherches sur les méthodes de décomposition de domaine, je suggère d'utiliser simplement une agrégation lissée, et peut-être d'essayer une méthode de décomposition de domaine lorsque le logiciel s'améliorera.
la source
Je dirais que le choix canonique pour ce problème serait le solveur de gradient conjugué plus un préconditionneur multigrille algébrique. Pour PETSc, hypre / boomeramg ou ML seraient les choix évidents de préconditionneur.
Tous ces composants, lorsqu'ils sont utilisés via PETSc, s'adaptent très bien à des milliers ou des dizaines de milliers de processeurs si le problème est suffisamment important (au moins ~ 100 000 degrés de liberté par processus MPI).
la source
PCFIELDSPLIT
dans PETSc), mais l'agrégation lissée est généralement plus robuste pour l'élasticité.Dans ce cas, vous pouvez utiliser des méthodes AMG moins avancées pour calculer une approximation de chaque inverse de bloc et obtenir un très bon préconditionneur.
la source
Walter Landry a développé un code pour la déformation élastostatique tridimensionnelle à l'aide de plusieurs grilles adaptatives. Vous pouvez trouver le code sur
https://bitbucket.org/wlandry/gamra
Vous pouvez inclure l'effet du forçage thermique avec une contrainte propre isotrope et des forces corporelles équivalentes. Une fois ceux-ci en place, le solveur fonctionnerait très bien.
la source