Soluciones fabricadas para Navier-Stokes incompresible: ¿cómo encontrar campos de velocidad libres de divergencia?

10

En el método de soluciones fabricadas (MMS) se postula una solución exacta, se sustituye en las ecuaciones y se calcula el término fuente correspondiente. La solución se usa para la verificación del código.

Para las ecuaciones incomprensibles de Navier-Stokes, MMS conduce fácilmente a un término fuente (distinto de cero) en la ecuación de continuidad. Pero no todos los códigos permiten términos fuente en las ecuaciones de continuidad, por lo que para estos códigos solo las soluciones fabricadas con campos de velocidad sin divergencia serán suficientes. Encontré este ejemplo para un dominio u 1Ω=[0,1]2 En casos 3D generales, ¿cómo se fabrica un campo de velocidad libre de divergencia?

u1=cos(πx)sin(πy)u2=sin(πx)cos(πy)
Chris
fuente

Respuestas:

7

Utilice una función de flujo vectorial o tome el producto cruzado de dos gradientes. Es decir: donde A es un campo vectorial de su elección, u u = f × g donde f y g son dos campos escalares de su elección.

u=×A
A
u=f×g
fg

Es difícil que la velocidad esté libre de divergencia y prescriba las condiciones de contorno, pero siempre que su código le permita establecer funciones arbitrarias para sus condiciones de contorno, debería estar bien.

ETA: Por supuesto, su ecuación de momento tendrá que aceptar una función de forzamiento, pero siempre me sentí mejor al forzar la ecuación de momento que al agregar un lado derecho a la ecuación de continuidad.

Bill Barth
fuente
¡Gracias! (El forzamiento de la ecuación de continuidad solo ocurre en el modelado de cavitación hasta donde yo sé)
Chris
5

Esta no es una respuesta general, pero para las ecuaciones de Navier-Stokes, existen soluciones fabricadas que describen el flujo real. Por ejemplo, el campo de flujo Kovasznay es una opción popular:

http://link.springer.com/article/10.1007/BF00948290

La referencia original es: Kovasznay LIG, "Flujo laminar detrás de una cuadrícula bidimensional". Proc. Cambridge Philos. Soc., Página 44, 1948.

Wolfgang Bangerth
fuente
1948 (!) No me di cuenta de que esto era "flujo real". ¿Con eso quiere decir que en realidad se puede medir en un experimento físico (en lugar de simulado en un experimento numérico)?
Chris
Yo creo que si.
Wolfgang Bangerth
No. Es un flujo idealizado en una distancia detrás de una cuadrícula. Pero nadie sabe cómo se ve la cuadrícula y lo más probable es que esté hecha de material "muy blando"
Guido Kanschat
2

Eso es lo que suelo hacer.

Definir la función aerodinámica:

Ψ=[ψxψyψz]

la velocidad es igual a:

tu=×Ψ=[tuX=yψz-zψytuy=zψX-Xψztuz=Xψy-yψX].

Ahora puede elegir cualquier presión razonable de promedio cero y construir un término forzado.

Ω=[0 0,1]3

 from sympy import *

 x,y,z = symbols('x y z')

 X = Matrix([[x],[y],[z]])

 psi = zeros(3,1)
 psi[0,0] = sin(2*pi*x)*y**2*(1-y)**2*z**2*(1-z)**2
 psi[2,0] = x**2*(1-x)**2*y**2*(1-y)**2*sin(2*pi*z)

 curl_psi = zeros(3,1)
 curl_psi[0] = diff(psi[2],X[1]) - diff(psi[1],X[2])
 curl_psi[1] = diff(psi[0],X[2]) - diff(psi[2],X[0])
 curl_psi[2] = diff(psi[1],X[0]) - diff(psi[0],X[1])
Nicola Cavallini
fuente