blockMeshとsnappyHexMeshで二次元の円柱後方の流れ場モデルを作成する方法~その7~0/p

ヒョウ

前回は0/Uについて説明しました。ここでは0/pについて説明します。0/Uと0/pの呼び名ですが,それぞれ「ゼロユー」,「ゼロピー」と呼んでいます。0/Uが速度の初期条件と境界条件の設定でしたが,0/pは圧力の初期条件と境界条件の設定です。0/Uについてはこちらです。
境界条件の設定については一部の設定をblockMeshDictで指定しています。その内容とつじつまが合うようにする必要があります。blockMeshの内容についてはこちらです。以下に示す内容でつじつまは合います。

blockMeshDictで与えた境界面の名前は下図です。z=0とz=0.003の面はfrontAndBackという名前でまとめています。

0/pの中身

以下の内容です。コピーして利用する場合は,赤字は説明文なのでコピーしないか,コピー後に削除してください。
******************************
dimensions [0 2 -2 0 0 0 0];  //圧力を密度で割った次元を与えます。
//単位の設定はこちら(青字の表)を見てください。

internalField uniform 0;    //モデル内の初期の圧力分布はゼロとします。

//ここからは境界条件の設定です。
boundaryField
{
frontAndBack    //z=0とz=0.003の境界面はblockMeshの設定でfrontAndBackとしました。
{
type empty;    //二次元モデルとするため,z=0とz=0.003の境界面はemptyとします。
}

x_min    //速度の入口面です。
{
type zeroGradient;    //圧力の境界としてはzeroGradientとします。
}

x_max    //圧力の出口面とします。
{
type fixedValue;    //固定値を入力します。
value uniform 0;    //固定値をゼロとします。基準圧であり,必ずしも真空という意味にはなりません。
}

wall    //snappyHexMeshで読み込んだジオメトリ形状です。
{
type zeroGradient;    //壁面はzeroGradientとします。
}

y_min    //y方向の境界面の境界条件もここでは壁面にします。
{
type zeroGradient;
}

y_max    //y方向の境界面の境界条件もここでは壁面にします。
{
type zeroGradient;
}
}
******************************

圧力の次元とその数値について

圧力の次元は 次のように与えました。
****************
dimensions [0 2 -2 0 0 0 0];
****************
圧力はPaであり,その単位は Pa = N /m2 = kg m / s2 / m2 = kg m-2 s -2です。そうすると
[1 -2 -2 0 0 0 0]になりますが,ここでは密度(kg / m3)で割った単位を使います。
その単位は Pa / (kg/m3) = m2 s-2 となります。

今回実行するicoFoamの計算では,流体の相変化や圧力の絶対値に対する物性の依存性を考慮しませんので,ここで考慮する圧力は絶対値としての意味を持ちません。出口面の圧力をゼロとしていますが,この数値は基準値です。数値はゼロですが真空という意味は持ちません。
例えば,今回の円柱後方の流れを実験で再現しようとする際に,出口面を大気圧として実験するならば,ここで設定した圧力(密度で割っていますが)のゼロは大気圧を意味します。

シミュレーションでは入口面で速度を与え,出口面で圧力を与えることでモデル内の各メッシュ要素での速度と圧力を同時に解くことで速度場と圧力場を得ます。出口面の圧力をゼロとした場合は,計算結果として求まる入口面圧力が,このモデルの入口から出口までの圧力損失になります。ただし,密度で割っていることに注意して下さい。

初期条件の設定

初期条件としてモデル全体を初期圧力ゼロとする場合は下記のように記載します。
************
internalField uniform 0;
************

境界条件の設定

圧力の境界条件設定について,それぞれ以下のように設定します。

二次元モデルの境界条件設定

frontAndBackという名前で,z=0の面とz=0.003の面を一緒に設定していました。二次元モデルとする場合は下記のように設定します。
*******
type empty;
*******
速度の場合と同じです。

入口面の設定

本モデルで入口面を速度の入口境界としています。この場合の圧力の設定は次のように書きます。
**********
type zeroGradient;
**********

出口面の設定

出口面は圧力の出口境界とします。ここでは出口面圧力にゼロを与えます。下記になります。
*********
type fixedValue;
value uniform 0;
*********

壁面の設定

壁面における圧力の設定は下記になります。
**********
type zeroGradient;
**********

圧力の初期条件と境界条件の設定は以上です。0/Uの設定と合わせて,基本的な境界条件設定はとなります。

スポンサーリンク
プロフィール
この記事を書いた人

openfoamを使って流体力学のシミュレーションをやっています。openfoamはまだまだ始めたばかりの人にとってわかりにくさがあると思います。そういったわかりにくさを説明するtipsを書いていきながら,他のこともいろいろやっていきたいと思ます。

ヒョウをフォローする
ヒョウ 流体力学
ヒョウをフォローする
mister Big5  サファリ系サラリーマンblog

コメント

  1. […] 「ケース」ディレクトリ |–0/ |           |–U |           |–p |–constant/ |           |–polyMesh/ (blockMesh実行で生成) |          […]

タイトルとURLをコピーしました