Me estoy sumergiendo en el fascinante mundo del análisis de elementos finitos y me gustaría resolver un gran problema termomecánico (solo térmico mecánico, sin retroalimentación).
Para el problema mecánico, ya entendí por la respuesta de Geoff , que necesitaré usar un solucionador iterativo debido al tamaño de mi malla. Además leí en la respuesta de Matt , que la elección del algoritmo iterativo correcto es una tarea desalentadora.
Me pregunto aquí si existe alguna experiencia en grandes problemas elásticos lineales tridimensionales que me ayudaría a reducir mi búsqueda del mejor rendimiento. En mi caso, es una estructura con películas delgadas y estampadas , y materiales colocados de forma irregular (tanto de alto CTE como de bajo CTE). No hay grandes deformaciones en este análisis termomecánico. Puedo usar el HPC de mi universidad [1.314 nodos, con 2 procesadores AMD Opteron (cada uno de 2,2 GHz / 8 núcleos)].
Creo que PETSc
podría contener algo interesante, especialmente los algoritmos que hacen algún tipo de descomposición de dominio (FETI, multigrid) pero estoy un poco abrumado por las opciones y no tengo experiencia. También me gusta la frase "preacondicionadores informados geométricamente" , pero no estoy seguro si esto me ayuda. Todavía no he encontrado algo centrado en la mecánica lineal continua.
El escalado fuerte (Amdahl) es muy importante en mi aplicación porque mis socios industriales no pueden esperar mucho tiempo para obtener resultados de simulación. Definitivamente no solo aprecio las respuestas, sino también las recomendaciones para leer más en los comentarios.
fuente
Respuestas:
Suponiendo que sus estructuras son en realidad 3D (en lugar de solo características delgadas, quizás discretas con elementos de caparazón) y que el modelo es más grande que unos pocos cientos de miles de dofs, los solucionadores directos se vuelven poco prácticos, especialmente si solo necesita resolver cada problema una vez. Además, a menos que la estructura esté siempre "cerca" de un límite de Dirichlet, necesitará un método multinivel para ser eficiente. La comunidad se divide entre "multigrid" y "descomposición de dominio multinivel". Para una comparación de las matemáticas, vea mi respuesta a: ¿Cuál es la ventaja de los preacondicionadores de descomposición de dominios múltiples sobre el dominio y viceversa?
La comunidad de múltiples redes generalmente ha tenido más éxito en la producción de software de uso general. Para la elasticidad, sugiero usar agregación suavizada que requiere un "espacio casi nulo" aproximado. En PETSc, esto se hace eligiendo PCGAMG o PCML (configurar con
--download-ml
) y llamandoMatSetNearNullSpace()
para proporcionar los modos de cuerpo rígido.Los métodos de descomposición del dominio ofrecen una oportunidad para aumentar la velocidad de la agregación suavizada, por lo que posiblemente sean más tolerantes a la latencia, pero el "punto óptimo" en términos de rendimiento tiende a ser más estrecho que la agregación suavizada. A menos que desee investigar sobre métodos de descomposición de dominios, le sugiero que solo use la agregación suavizada y quizás pruebe un método de descomposición de dominios cuando el software mejore.
fuente
Yo diría que la opción canónica para este problema sería el solucionador de gradiente conjugado más un preacondicionador multigrid algebraico. Para PETSc, hypre / boomeramg o ML serían las opciones obvias de preacondicionamiento.
Todos estos componentes cuando se usan a través de PETSc escalan muy bien a miles o decenas de miles de procesadores si el problema es lo suficientemente grande (al menos ~ 100,000 grados de libertad por proceso MPI).
fuente
PCFIELDSPLIT
en PETSc), pero la agregación suavizada suele ser más robusta para la elasticidad.Puede crear fácilmente un preacondicionador bastante bueno para la elasticidad si su material no es demasiado incompresible (relación de Poisson ) utilizando preacondicionador de componentes de desplazamiento por separado . La idea es simplemente tener una matriz diagonal de bloques con 3 bloques, cada uno de los cuales representa los acoplamientos a lo largo de la misma dimensión física es decir: , , .( x , y , z ) K x x K y y K z z<0.4 (x,y,z) Kxx Kyy Kzz
En ese caso, puede utilizar métodos AMG menos avanzados para calcular una aproximación de cada bloque inverso y obtener un preacondicionador bastante bueno.
fuente
Walter Landry desarrolló un código para la deformación elastostática tridimensional utilizando múltiples cuadrículas adaptativas. Puedes encontrar el código en
https://bitbucket.org/wlandry/gamra
Puede incluir el efecto del forzamiento térmico con el tren propio isotrópico y fuerzas corporales equivalentes. Una vez que estén en su lugar, el solucionador funcionaría bien.
fuente