Discretización PDE con el método de rothe y el método de líneas (implementación modular)

8

La ecuación de calor se discretiza en el espacio con FV (o FEM), y se obtiene una ecuación semi-discreta (sistema de EDO). Este enfoque, conocido como el método de líneas , permite cambiar fácilmente de una discretización temporal a otra, sin duplicación de código. En particular, puede reutilizar cualquier integrador de tiempo para ODE sin mucho esfuerzo. Esto es muy conveniente porque si decides cambiar tu discretización espacial de FV para decir FE, aún obtienes una ecuación semi-discreta y tus integradores de tiempo aún funcionan.

Ahora estoy tratando de implementar el método de rothe para el mismo problema. Sin embargo, la discretización en el tiempo primero me obliga a reescribir la discretización espacial para cada esquema de discretización temporal que quiera utilizar. Esto elimina la reutilización de los integradores de tiempo que tenía anteriormente, y hace que sea muy complicado escribir software modular que pueda discretizar un PDE utilizando el método de líneas o el método de Rothe.

¿Hay alguna manera de implementar ambos enfoques, sin duplicación de código?

Editar:

En problemas dominados por convección, la discretización FE necesita estabilización tanto en tiempo como en espacio, lo que hace que el método de Rothe sea la "mejor" opción. Sin embargo, este no es el caso de los métodos FV / DG.

En el método de líneas, el PDE se discretiza primero en el espacio y luego en el tiempo. En el método de Rothe, el PDE se discretiza primero en el tiempo y luego en el espacio. La tercera posibilidad es discretizar tanto en el espacio como en el tiempo simultáneamente (también conocido como discretizaciones espacio-tiempo). Una discusión sobre el método de líneas y el método de Rothe se puede encontrar aquí . Para obtener más información, el libro "Métodos de elementos finitos para problemas de flujo" de Donea y Huerta es un buen recurso.

gnzlbg
fuente
@gnzlbg: ¿Quizás podrías incluir una o dos referencias a los métodos que estás discutiendo? Este es el tipo de pregunta en la que nuestra comunidad tiende a ser buena, por lo que la falta de respuestas indica que no estamos seguros exactamente de lo que está preguntando.
Aron Ahmadia
@AronAhmadia hecho.
gnzlbg
2
Gracias por la información agregada. No tengo una respuesta, pero creo que las objeciones al método de líneas en la página a la que se ha vinculado están equivocadas. En realidad, son solo objeciones al uso de discretizaciones de tiempo de varios pasos en combinación con cuadrículas espaciales dinámicamente adaptativas. Esas elecciones son independientes de si uno usa el método de líneas o el método de Rothe. Dentro del método de líneas, uno puede obtener esquemas de alto orden y un solo paso utilizando la discretización de tiempo Runge-Kutta.
David Ketcheson
@DavidKetcheson Sí, tampoco estoy completamente de acuerdo con los argumentos presentados en la discusión. Aún así, el método de Rothe es realmente mejor para las discretizaciones FEM de los problemas dominados por convección: el parámetro de estabilización depende tanto del paso de tiempo como de la discretización espacial y temporal utilizada. Usando el método de líneas, su parámetro de estabilización sería difícil por decir lo menos. Sin embargo, los pros y los contras de cada método es un tema completo en sí mismo, y también habría que considerar las formulaciones de espacio-tiempo.
gnzlbg
Desde que @Wolfgang escribió la descripción del Método de Rothe a la que se vinculó como parte de la documentación del acuerdo. II, le he pedido que intente abordar su respuesta.
Aron Ahmadia

Respuestas:

8

Realmente no tengo mucho más que decir de lo que ya hice en las páginas a las que se vinculó, pero para mí los argumentos principales son los siguientes:

  • En muchos problemas, uno necesita adaptar la malla entre pasos de tiempo. El marco conceptual para hacer esto es el método Rothe, donde uno puede elegir la discretización espacial de forma independiente en cada paso de tiempo, mientras que el método de líneas a priori supone que el PDE se convierte en un sistema de EDO, lo cual es incompatible con la adaptación de malla.

  • Por otro lado, si no desea adaptar su malla, entonces no importa: en la mayoría de los casos, si la discretización espacial será la misma entre los pasos de tiempo, entonces no importa si desea para discretizar primero en el espacio y luego en el tiempo usando su integrador de tiempo favorito, o al revés: saldrá con el mismo problema discreto que resolver en cada paso del tiempo. En tales casos, el método Rothe y el método de líneas son los mismos.

  • Esto se extiende al caso en el que solo desea adaptar la malla de vez en cuando: puede considerar esto como el método de líneas aplicadas a varios pasos de tiempo, luego adaptando la malla, luego un conjunto más de pasos de tiempo donde Aplicar el método de líneas. O puede pensar en esto como el método Rothe en el que solo adapta la malla de vez en cuando. Básicamente saldrá al mismo esquema numérico, solo un punto de vista filosófico diferente.

Puede valer la pena agregar un punto más: en el mundo ODE, a menudo se usan esquemas de alto orden con varias etapas o pasos múltiples. Por lo tanto, hay un beneficio significativo al embotellar estos algoritmos en paquetes que solo tiene que entregar a un sistema ODE de una forma u otra. Por otro lado, para PDEs dependientes del tiempo, la mayoría de las veces se usan métodos de paso de tiempo bastante simples (con la notable excepción de algunos solucionadores hiperbólicos): por ejemplo, Crank-Nicolson, BDF-2 o solo los esquemas de Euler hacia adelante o hacia atrás . Para estos integradores de tiempo simples, no es particularmente difícil codificar manualmente la integración de tiempo, ya que es mucho más simple que la discretización espacial. Lo que esto significa es que el precio a pagar por pensar en términos del método Rothe (no poder usar un paquete de solución ODE) es pequeño, mientras que el precio a pagar por usar el método de líneas (no poder adaptar la malla entre pasos de tiempo) es grande. Eso podría explicar por qué la mayoría de las personas en el mundo de elementos finitos adaptativos prefieren pensar con el método Rothe.

Como corolario del último punto, y volviendo a la pregunta original: de hecho, es cierto que en el método Rothe es difícil empaquetar todo de una manera orientada a objetos. Sin embargo, (i) siempre y cuando se quede con una sola clase de integradores ODE, por supuesto, todavía puede tabular los coeficientes de las diversas etapas del integrador en una clase y hacer que el código que los computa esté completamente encapsulado; y (ii) el hecho de que comúnmente se utilizan integradores de tiempo relativamente simples para PDE dependientes del tiempo significa que la cantidad de código necesaria para implementar la integración de tiempo suele ser mucho menor que la cantidad de código que se ocupa de la discretización espacial. En otras palabras, no sé cómo separar bien la discretización espacial de la temporal utilizando el método Rothe, pero no he

Wolfgang Bangerth
fuente
1
Esta "respuesta" es más un comentario: no veo cómo responde la pregunta. Además, en el método de líneas, si usa un método de un solo paso, no hay nada de malo en tener un conjunto diferente de EDO en cada paso.
David Ketcheson
1
@WolfgangBangerth Método de "un paso" en lugar del método de varios pasos. Los métodos Runge-Kutta, incluidas las variantes Rosenbrocks, DG-in-time e IMEX, son fáciles de usar con adaptabilidad. El diseño de esquemas de integración de tiempo puede ser similarmente sutil a la discretización espacial, considerando fuertes propiedades de estabilidad, control de errores incrustado donde los esquemas incrustados tienen propiedades de estabilidad deseadas, adjuntas con propiedades deseadas, apuntando a partes específicas del espectro, obteniendo un orden de etapas deseado, preservando la geometría propiedades, siendo lo más económico posible para el solucionador implícito, etc.
Jed Brown
1
Por supuesto que puedes hacer esto. El problema con su enfoque es que necesita interpolar (o proyectar de alguna manera) soluciones en mallas anteriores en la nueva malla. Esto introduce un error que no es solo una proyección de Galerkin y, por lo tanto, no es fácil de analizar: el resultado no es simplemente un esquema de Galerkin.
Wolfgang Bangerth
1
Por otro lado, si deriva un método a través del enfoque Rothe, obtiene un PDE para cada paso de tiempo en el que la solución del paso de tiempo anterior aparece en el lado derecho. Al discretizar, prueba esta solución anterior con funciones de prueba en la malla actual. Esto puede interpretarse como una especie de proyección, pero no es la proyección L2, sino algo que es una combinación ponderada de la proyección L2 y H1 con el peso dependiendo del paso del tiempo. Dado que es un esquema de Galerkin puro, es fácil de analizar y me atrevería a suponer que el error es más pequeño de esta manera.
Wolfgang Bangerth
1
Ahora, como punto final, mi mejor conjetura es que si solo cambias la malla de vez en cuando, no va a hacer mucha diferencia en la práctica. Dado que probar una solución en una malla con funciones de prueba de una malla diferente es una molestia, hago esta interpolación todo el tiempo, sin demasiados problemas ;-)
Wolfgang Bangerth