¿Cuál es el método de interpolación más preciso para un campo de flujo 3D en una cuadrícula estructurada?


9

Resuelvo ecuaciones de Navier-Stokes comprimibles de varias especies en una cuadrícula estructurada en 3D. He obtenido una solución en una cuadrícula dada (digamos una relativamente gruesa). Ahora quiero refinar mi grilla e interpolar mi solución anterior en mi nueva grilla antes de reiniciar mi simulación. Actualmente, tenemos una herramienta de interpolación que construye un árbol kd de las 2 cuadrículas y luego puede usar 2 métodos diferentes para calcular los valores en la nueva cuadrícula:

  • promedio simple
  • distancia inversa ponderada (IDW)
  • mover mínimos cuadrados (MLS)

Quiero centrarme en la precisión porque, dado que trato con grandes gradientes, no capturarlos correctamente generará ondas cuando reinicie mi cálculo. Primero probé el promedio simple pero la precisión no fue lo suficientemente buena.

Pensé que el método MLS con polinomios de orden 2 me daría resultados razonables ya que se supone que no es oscilatorio. Sin embargo, cuando miro mi campo interpolado, veo mínimos / máximos locales que superan los valores de mi campo inicial. ¿Significa esto que la implementación de MLS en este programa no es correcta? ¿Debo tener cuidado con el tamaño de mi plantilla y el orden de los polinomios? ¿Qué otro método recomendarías?

Gracias por adelantado !

Respuestas:


4

Puede usar splines cúbicas monótonas:

http://en.wikipedia.org/wiki/Monotone_cubic_interpolation

Una explicación de cómo hacerlo en multi-D está aquí:

http://dl.acm.org/citation.cfm?id=1285766

Otra opción sería ponderar la interpolación esencialmente no oscilatoria; Hay un artículo de revisión reciente sobre el tema por Chi-Wang Shu.


Verifiqué el papel de interpolación cúbica monotono multidimensional y existe una precondición importante para que el método sea aplicable:> los nodos que proporcionan los datos de interpolación están igualmente espaciados o> siguen un mapeo uno a uno continuo estrictamente monótono desde> [ 0, n] al intervalo de interpolación. Claramente, esto no será cierto para mi campo de flujo 3D general. Aunque buscaré la otra referencia, gracias.
FrenchKheldar

2
Aquí está el artículo al que creo que se refería David.
Matt Knepley

Sí Matt, ese es el indicado.
David Ketcheson el
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.