CAE

【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円(12/08 23:45時点)
Amazonの情報を掲載しています

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

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

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

川畑 真一
1,980円(12/08 23:45時点)
発売日: 2021/02/26
Amazonの情報を掲載しています

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。

COMMENT

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