OpenFOAM

【gnuplot実験の圧力データ比較(OpenFOAM)】3次元ダムブレイクの解析(7)

こんにちは(@t_kun_kamakiri

今回は、前回作成したメッシュを使って3次元ダムブレイクの流体解析を行い、指定した座標位置での圧力データを取得します。
そして、CAE解析結果と実験データとの比較を行います。

前回の記事では3次元ダムブレイクの障害物近辺のみメッシュの再分割を行いましたのでまだお読みでない方は下記の記事をご参考ください。

使用しているベースとなるチュートリアル「$FOAM_TUTORIALS/multiphase/interFoam/laminar/damBreakWithObstacle/」よりコピーして使っています。

今回の内容

3次元ダムブレイクの実験の指定した座標位置での圧力の時刻歴をOpenFOAMの結果と比較する。
時刻歴の重ねはgnuplotを使います。

OpenFOAM初心者でチュートリアルを動かしたことがある方を対象にしています。

DEXCS2020
OpenFOAM v2006
gnuplot 5.2

3次元ダムブレイクの実験データ

こちらの実験データのより以下の時刻歴データを計測しています。

  • 圧力計測点P1~P8←今回OpenFOAMと比較する対象
  • 水面の高さH1~H4

本記事では実験データとの比較は圧力データのみとしますが、実験では以下のように水面の高さも計測しています(H2とH4)。

H1~H4での水面の高さは次回の記事で解説します。

解析実行

解析設定はこちらをご参考ください。

設定ファイルは再度こちらにも記載しておきます。

constant/turbulenceProperties

今回乱流モデルは使いません。

今回こちら「$FOAM_TUTORIALS/multiphase/interFoam/laminar/damBreakWithObstacle/」のチュートリアルを利用していますが、乱流モデルなしのケースファイルでも「k,nut,omega」ファイルがありますが、こちらは乱流モデルの際に使うので今回は特に設定をしなくも良いです(使っていないので)。

0.org/U

0.org/p_rgh

0.org/alpha.water

constant/dynamicFvMeshDict

チュートリアルは空気と水の界面でのメッシュを時刻歴で再分割するようにdynamicMeshが採用されています。

今回このような設定では解析時間がとてもかかるのと、結果処理がものすごく重いためノートPCで耐えられる計算ではないため、「dynamicFvMesh staticFvMesh;」を使って無効にしておきます。

constant/g

重力加速度はz方向の下向きに設定します。

system/probes

今回はこちらの実験データの圧力計測点と同じ位置の圧力データを取得する設定を行います。

  • 「fields (p p_rgh);」で出力する物理量を指定します。
  • probeLocationsで出力したい座標位置を指定します。
  • 「interpolationScheme cellPoint」はセル値による線形重み付け補間スキーム

probesをsystem/controlDictで読み込みます。

system/controlDict

system/decomposeParDict

計算時間もかかるため4並列にして計算を実行します。

scotchを使えば適当に最適化して分割してくれます。

その他の設定は特に触っていないのでそのままでいきます。
設定が終わったので以下のコマンドで解析を実行しましょう。

計算実行中に圧力データの時刻歴を見ることができます。
別のターミナルを開き以下のコマンドを打ちます。

計算が終わったらParaviewで結果を確認しましょう。

このように水が崩れて障害物で水しぶきを上げている結果が得られました。

実験データ比較(gnuplot)

こちらの実験データより圧力データを入手します。

zipファイルを解凍します。
「test_case_2_exp_data.xls」が実験データです。

gnuplotでグラフ化

gnuplotをExcelデータで読み込むことができなかったため(文字コードが違う?)ため、Excelデータを全てコピーし、新規作成のテキストファイルに貼り直してcsvファイルの名前を「test_case_2_exp_data.csv」として保存します。

treeコマンドでファイル構成を見ておきましょう。
実験データは「exp_data/3D_damBrake_experiment_data/9449af_6ce73873d6d04315853e481c337dbfca」に保存しています。
※計算結果は省略

gnuplotを起動します。

gnuplotと打つとgnuplotが起動し対話形式になります。

このようになっていればgnuplotが使えます。

以下のコマンドを打って圧力計測点P1の実験データとOpenFOAMの結果を比較してみましょう。

さらにグラフをきれいに見せたい場合は以下のページを参考にアレンジすることができます。

以下の記述を「gnuplot_run_P.plt」という名前で保存します。

スクリプトの実行は以下のコマンド行います。

以上を実行すると「graph_P1.png」という画像ファイルが作成されています。

先頭分で「point=”1″ #変数」と変数定義しています。
文字列は「.(ドット)」を使って連結できます。
例えば「set output “graph_”.sample.”.png”」にすることで「set output “graph_1.png”」となります。

では他の計測点も比較してみましょう。

全ての点で概ね良い結果ですね。
p4だけ初期のピークがあっていないですね。

gnuplotに慣れていないため今回は「point=1」の数字を1~8に変更してひとつひとつ画像作成を行いましたが、gnuplotはスクリプト言語なので繰り返し文を使えば簡単に画像作成ができるはずです。追々調べて修正します。
※追記
以下のスクリプトで各測定点の時刻歴データの画像ファイルを出力できます。

gnuplot_run_P.plt

  • 1行目で変数nを初期化
  • rereadが実行されてスクリプトの最初に戻る

まとめ

今回は3次元ダムブレイクとOpenFOAMの圧力データの時刻歴をgnuplotでグラフ化して比較を行いました。
概ね計算結果は実験値を再現していますね。

ただ注意点として実測データとシミュレーション結果が概ね良い結果だったとしても、映像などが結構ずれている場合もあります。今回は映像まで細かく比較できていませんが、実測データと映像の両方でシミュレーションが実験を再現できているか確認する必要がありますね。

次回は水面の高さを実験データと比較します。

こちらも実験データとOpenFOMAでの結果が概ね近しい挙動をしています。

参考書

PENGUINさんサイトを体系的に学べる書籍となっています。ネット記事でも十分勉強できるのですが、OpenFOAMの初学者でOpenFOAMをインストール済みであれば一冊持って置き、体系的に学ぶのが良いでしょう。

OpenFOAMによる熱移動と流れの数値解析(第2版)

OpenFOAMによる熱移動と流れの数値解析(第2版)

3,520円(11/23 08:06時点)
Amazonの情報を掲載しています

あとは初心者向けに丁寧に解説がされているこちらの書籍もお勧めです。最後の章にはオーバーセットメッシュ(重合メッシュ)の機能を使った解析を最後まで丁寧に解説しているので挫折することはないでしょう。

OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

OpenFOAMの歩き方 (技術の泉シリーズ(NextPublishing))

川畑 真一
1,100円(11/23 19:40時点)
発売日: 2021/02/26
Amazonの情報を掲載しています
関連記事もどうぞ

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です