비 압축 Navier-Stokes 용으로 제조 된 솔루션 — 발산이없는 속도 필드를 찾는 방법은 무엇입니까?


10

제조 솔루션 (MMS) 방법에서는 정확한 솔루션을 가정하고 방정식에서 솔루션을 대체하고 해당 소스 항을 계산합니다. 그런 다음 솔루션은 코드 확인에 사용됩니다.

비 압축 Navier-Stokes 방정식의 경우 MMS는 연속성 방정식에서 (0이 아닌) 소스 항을 쉽게 유도합니다. 그러나 모든 코드가 연속성 방정식에서 소스 용어를 허용하는 것은 아니므로 이러한 코드의 경우 분기가없는 속도 필드를 가진 제조 된 솔루션 만 가능합니다. 도메인 u 1에 대한이 예를 찾았습니다.Ω=[0,1]2 일반적으로 3D 경우에 발산이없는 속도 장은 어떻게 만들어 집니까?

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

답변:


7

u=×A
A
u=f×g
fg

속도가 분기되지 않고 경계 조건을 규정하기는 어렵지만 코드에서 경계 조건에 대한 임의의 기능을 설정할 수 있으면 괜찮습니다.

ETA : 물론 운동량 방정식은 강제 함수를 받아 들여야하지만 연속성 방정식에 오른쪽을 추가하는 것보다 운동량 방정식을 강제하는 것이 항상 더 좋습니다.


감사! (연속성 방정식의 강제는 내가 아는 한 캐비테이션 모델링에서만 발생합니다)
chris

5

이것은 일반적인 대답은 아니지만 Navier-Stokes 방정식에는 실제 흐름을 설명하는 제조 된 솔루션이 있습니다. 예를 들어, Kovasznay 플로우 필드가 널리 사용됩니다.

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

원래 참조는 Kovasznay LIG, "2 차원 격자 뒤의 층류"입니다. Proc. 케임브리지 필로스. Soc., 페이지 44, 1948


1948 (!) 이것이 "실제 흐름"이라는 것을 몰랐습니다. 즉, 실제 실험에서 실제로 측정 할 수 있음을 의미합니다 (숫자 실험에서 시뮬레이션 된 것과는 다름)?
chris

나는 믿습니다.
Wolfgang Bangerth

아니요. 그리드 뒤의 거리에서 이상적인 흐름입니다. 그러나 아무도 그리드가 어떻게 생겼는지 알지
못하고 아마도

2

그것이 제가 보통하는 일입니다.

유선형 기능 정의 :

Ψ=[ψxψyψz]

속도는 다음과 같습니다.

u=×Ψ=[ux=yψzzψyuy=zψxxψzuz=xψyyψx].

이제 합리적인 평균 제로 압력을 선택하고 강제 항을 구성 할 수 있습니다.

대한 SymPy 예제 코드를 게시합니다.Ω=[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])
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.