¿Qué es un solucionador robusto e iterativo para grandes problemas elásticos lineales en 3-d?


9

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 PETScpodrí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.


¿Estás resolviendo problemas estáticos? Parece que si. Para problemas dinámicos o armónicos en el tiempo, creo que la respuesta sería diferente.
Hui Zhang

estática sí. La dinámica es demasiado cara.
Sebastian

Respuestas:


6

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 llamando MatSetNearNullSpace()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.


muchas gracias por esta respuesta muy informativa! ¿Qué quiere decir exactamente con cerca de un límite de Dirichlet ? Cerrar en términos de recuento de elementos?
Sebastián

Cierre en términos de distancia, medido en elementos o subdominios (para la descomposición del dominio de un nivel con soluciones de subdominios fuertes), a lo largo de una ruta de material fuerte. Si la información tiene que viajar a través de muchos subdominios para determinar una solución local, los métodos de un nivel convergerán lentamente. Tenga en cuenta que una conexión fuerte no es suficiente para la elasticidad, todos los modos de cuerpo rígido deben controlarse.
Jed Brown

4

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).


Tenga en cuenta que BoomerAMG (y AMG clásico en general) no utiliza información de espacio nulo ni garantiza que los espacios gruesos puedan representar con precisión los modos de rotación. Puede (y debe) probarlo, así como dividir los componentes y resolverlos por separado (usar PCFIELDSPLITen PETSc), pero la agregación suavizada suele ser más robusta para la elasticidad.
Jed Brown

1

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)KxxKyyKzz

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.


1

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.