готовые решения для несжимаемого Навье-Стокса - как найти бездивергентные поля скоростей?

10

В методе готовых решений (MMS) постулируется точное решение, подставляется его в уравнения и вычисляется соответствующий член источника. Затем решение используется для проверки кода.

Для несжимаемых уравнений Навье-Стокса MMS легко приводит к (ненулевому) исходному члену в уравнении непрерывности. Но не все коды допускают исходные члены в уравнениях неразрывности, поэтому для этих кодов подойдут только изготовленные решения с полями скоростей без расходимости. Я нашел этот пример для домена В общих трехмерных случаях, как можно создать бездивергентное поле скоростей?Ω=[0,1]2

u1=cos(πx)sin(πy)u2=sin(πx)cos(πy)
Крис
источник

Ответы:

7

Используйте векторную функцию потока или возьмите перекрестное произведение двух градиентов. То есть:

u=×A
где A - векторное поле по вашему выбору, или
u=f×g
где f и g два скалярных поля по вашему выбору.

Трудно, чтобы скорость была бездивергентной и предписывала граничные условия, но пока ваш код позволяет вам устанавливать произвольные функции для ваших граничных условий, у вас должно быть все в порядке.

ETA: Конечно, ваше уравнение импульса должно будет принимать форсирующую функцию, но я всегда чувствовал себя лучше при форсировании уравнения импульса, чем добавление правой части к уравнению непрерывности.

Билл Барт
источник
Спасибо! (Насколько мне известно, форсирование уравнения неразрывности происходит только при моделировании кавитации)
Крис,
5

Это не общий ответ, но для уравнений Навье-Стокса существуют готовые решения, которые описывают реальный поток. Например, поле потока Kovasznay является популярным выбором:

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

Оригинальная ссылка: Kovasznay LIG, «Ламинарный поток за двумерной сеткой». Proc. Кембридж Филос. Soc., Стр. 44, 1948.

Вольфганг Бангерт
источник
1948 (!) Я не осознавал, что это был «реальный поток». Под этим вы подразумеваете, что это может быть измерено в физическом эксперименте (в отличие от имитации в численном эксперименте)?
Крис
Я верю, да.
Вольфганг Бангерт
Нет. Это идеализированный поток на расстоянии за сеткой. Но никто не знает, как выглядит сетка, и, скорее всего, она должна быть изготовлена ​​из «очень мягкого» материала
Гвидо Каншат
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])
Никола Каваллини
источник