非圧縮性ナビエ・ストークスの製造ソリューション—発散のない速度場を見つける方法は?


10

製造されたソリューション(MMS)の方法では、正確なソリューションを仮定し、それを方程式に代入して、対応するソース項を計算します。その後、ソリューションはコード検証に使用されます。

非圧縮性ナビエ・ストークス方程式の場合、MMSは連続方程式で(ゼロ以外の)ソース項を簡単に導きます。ただし、すべてのコードが連続方程式のソース項を許可するわけではないため、これらのコードの場合、発散のない速度場を備えた製造されたソリューションのみが実行します。ドメインのこの例を見つけました 一般的な3Dの場合、発散のない速度場をどのように作成するのですか?Ω=[01]2

あなた1=cosπバツπyあなた2=πバツcosπy

回答:


7

ベクトルストリーム関数を使用するか、2つの勾配の外積をとります。つまり、 で、\ boldsymbol {A}は選択したベクトルフィールド、または \ boldsymbol {u} = \ nabla f \ times \ nabla g で、fg選択する2つのスカラーフィールドです。

あなた=×
あなた=f×g
fg

速度に発散のないことと境界条件を規定することはどちらも難しいですが、コードで境界条件に任意の関数を設定できる限り、問題はありません。

ETA:もちろん、運動量方程式は強制関数を受け入れる必要がありますが、連続方程式に右辺を追加するよりも、常に運動量方程式を強制する方が良いと感じています。


ありがとう!(連続方程式の強制は、私が知る限り、キャビテーションモデリングでのみ発生します)
chris

5

これは一般的な答えではありませんが、ナビエストークス方程式の場合、実際の流れを説明する製造されたソリューションがあります。たとえば、Kovasznayフローフィールドは一般的な選択肢です。

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

元の参照:Kovasznay LIG、「2次元グリッドの背後の層流」。手続き ケンブリッジ・フィロス。Soc。、page 44、1948。


1948(!)これが「本当の流れ」だとは思いもしませんでした。つまり、それは(数値実験でシミュレートされたものとは対照的に)実際の実験で測定できるということですか?
クリス2013

はい、そうです。
Wolfgang Bangerth 2013

いいえ。グリッドの背後にある距離の理想的な流れです。しかし、グリッドがどのように見えるか誰も知らず、おそらく「非常に柔らかい」素材で作られているはずです
グイドカンシャット2017年

2

それが私が普段やっていることです。

ストリームライン関数を定義します。

Ψ=[ψバツψyψz]

速度は次と等しい:

あなた=×Ψ=[あなたバツ=yψzzψyあなたy=zψバツバツψzあなたz=バツψyyψバツ]

これで、適切なゼロ平均圧力を選択して、強制項を作成できます。

SymPyサンプルコードと均一な境界条件を投稿します。お楽しみください。Ω=[01]

 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.