OpenFOAM

【3次元ダムブレイク流体解析(OpenFOAM)】Pythonで圧力データと水面高さの実機比較(13)

こんにちは(@t_kun_kamakiri

本記事ではOpenFOAMを使って3次元ダムブレイクのメッシュ作成・解析設定と実験データとの比較に関して、実験データとOpenFOAMの結果を比較するPythonスクリプトを紹介します。

本記事の内容

3次元ダムブレイクの実験データとOpenFOAMの結果をPythonを使って比較する

本記事は、以下の記事で解析設定と実行を行った後の結果処理に関する内容ですので先に下記の記事をお読みください。

上の記事内ではgnuplotを使ってグラフ作成をしていますが、グラフ化であればPythonのmatplotlibを使うことで同じことができます。

CAEのモデルや資料などは以下に保存しているのでご参考ください。

対象の実験データの説明

3次元ダムブレイクの実験との比較を行うため実験データについては以下のようになっています。OpenFOAMで作成する寸法も実験に合わせて作成しています。
実験では初期状態で青斜線で囲まれた領域に水をセットし、時刻0秒で開放します。
その後水はBoxと書かれた障害物に当たり、水しぶきをあげます。

この時に実験データとして、

  • p1~P8の座標で圧力の時刻歴
  • H1~H4の座標での水面の高さの時刻歴

という時刻歴データを測定しています。

本記事ではこちらの時刻歴データをOpenFOAMでも計測し、実験データとOpenFOAMを使ったCAE解析の比較を行いたいと思います。

最終的にはツイートであげたような結果となります。
実務では、実験データとCAE解析の結果に対して精度良く再現できているかどうかを確認して使用することがあり「実験検証 コリレーション」と呼ばれています。

グラフ化のPythonコード

使用環境は以下です。

  • wsl ubuntu 22.04
  • OpenFOAMv2006
  • Python

水位の時刻歴を出力するinterfaceHeightについてはv2006のバージョンから導入されたので、並列計算で出力されないなどの不具合がありましたが、v2112では解消されているようです。
しかし、導入されたばかりなので出力フォームがバージョンによって違っていたりするのでv2112をお使いの方は注意が必要です。

※v2006をお使いの方は並列計算なしで計算
※v2112をお使いの方は並列計算でもOK

OpenFOAMの水位のデータは「postProcessing/interfaceHeight/0/height.dat」に出力されます。しかし、v2006とv2112では出力されるフォームが異なるためバージョンに合わせてPythonスクリプトを変える必要があります。

具体的にはv2006ではあったヘッダー部分がv2112ではなくなっているという点です。
おそらくv2006の方が今後デフォルトになると思いますが、並列計算が実行できるのがv2112なので仕様が固まっていないように感じます。この辺りは今後のアップデートに期待ですね。

v2006の場合

pythonを実行するとphotoというフォルダが作成され、その中に

  • point.jpg:圧力データの比較
  • height.jpg:水位データの比較

が出力されます。

point.jpg:圧力データの比較

height.jpg:水位データの比較

v2112の場合
出力のフォームが違うので以下に修正します。

全体のコードは以下となります。

 

カマキリ

ご参考ください_(._.)_

参考書

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

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

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

3,520円(11/21 07:56時点)
Amazonの情報を掲載しています

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

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

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

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

COMMENT

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