CAE

【setFieldsコマンド(OpenFOAM)】3次元ダムブレイクモデル作成(3)

こんにちは(@t_kun_kamakiri

今回は3次元ダムブレイクの実験と同じ状況を再現するためOpenFOAMユーティリティであるsetFieldsコマンドについて解説をします。
メッシュ作成は前回までの記事で終わっているので下記をご参考ください。

setFieldsコマンドは物理量の初期状態の分布を作るときに便利なOpenFOAMのユーティリティです。

今回の内容

setFieldsコマンドコマンドを使って空気と水の初期状態を作る。

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

DEXCS2020
OpenFOAM v2006

解くべき方程式

OpenFOAMの2相流のソルバ”interFoam”を用いて3次元ダムブレイクの解析を行います。

ツール

  • OpenFOAM:v2006
  • ソルバ:inerFoam

解くべき方程式

  • 運動方程式(2次元)
  • 体積分率の保存
  • 表面張力
    ※VOFによる界面の表現

今回使っている「interFoam」のソルバはVolume Of Fluid(VOF)法による、二相流ソルバーです。

相の区別を各相の体積分率(0~1)で行い、密度や粘性を体積分率をかけて、ナビエストークス方程式を解いています。

ナビエストークス方程式

\begin{align*}\frac{\partial \rho_{b}\boldsymbol{u}}{\partial t}+\nabla\cdot\big(\rho_{b}\boldsymbol{u}\boldsymbol{u}\big)=-\nabla p+\nabla\cdot\mu_{b}\big(\nabla \boldsymbol{u}+\nabla \boldsymbol{u}^{T}\big)+\rho_{b}\boldsymbol{f}+\boldsymbol{F}_{s}\end{align*}

密度

\begin{align*}\rho_{b}=\alpha_{1}\rho_{1}+\alpha_{2}\rho_{2}\end{align*}

粘性

\begin{align*}\mu_{b}=\alpha_{1}\mu_{1}+\alpha_{2}\mu_{2}\end{align*}

表面張力

\begin{align*}\boldsymbol{F}_{s}=\gamma \kappa\big(\nabla \alpha\big)\end{align*}

\begin{align*}\kappa=\nabla\cdot\big(\frac{\nabla\alpha}{|\nabla\alpha|}\big)\end{align*}

非圧縮の条件

\begin{align*}\nabla\cdot \boldsymbol{u}=0\end{align*}

体積分率の移流方程式

\begin{align*}\frac{\partial \alpha}{\partial t}+\nabla\cdot \big(\alpha \boldsymbol{u}\big)=0\end{align*}

※\(\alpha_{2}=1-\alpha_{2}\)
※\(\kappa\):界面の曲率
※\(\gamma\):界面張力

setFieldsコマンド

空気と水の領域をVOF法で設定する場合はsetFieldsDictによって設定を行います。

setFieldsのオプションは以下があります。

  • -case dir
    Specify case directory to use (instead of cwd)
  • -decomposeParDict file
    Use specified file for decomposePar dictionary
  • -dict file
    Alternative setFieldsDict
  • -parallel
    Run in parallel [Parallel option]
  • -region name
    Specify alternative mesh region
  • -doc
    Display documentation in browser
  • -help
    Display short help and exit
  • -help-full
    Display full help and exit

defaultFieldValuesでデフォルトの各相の体積分率と速度を設定することができます。

  1. volScalarFieldValue alpha.water 0
  2. volVectorFieldValue U (0 0 0)

boxToCellでどの領域にどのような設定を行うかを指定します。

  1. box (1.992 -1 0) (3.22 1 0.55)
  2. volScalarFieldValue alpha.water 1

boxはメッシュからはみ出た部分でもエラーは出ないので、境界ギリギリの寸法にせず大きめに設定しても良いです。

ではsetFieldsコマンドを実行して空気と水の体積分率を作成しましょう。

paraviewで結果を確認しましょう。

これで空気と水の初期状態ができました。

(おまけ)ケルビンヘルムホルツ不安定性

setFieldsは体積分率だけではなく初期の速度分布も作ることができます。

例えば下記の記事でやったようにsetFieldsにすると初期の速度分布も作ることができます。

setFieldsDictだけ設定を載せておきます。

system/setFieldsDict

このような設定を行うことでケルビンヘルムホルツ不安定性の解析も行うことができます。

setFieldsは今回のような混相流だけではなく速度分布だけを変えたい場合にも使うことができます。

まとめ

今回はsetFieldsコマンドを使って空気と水の初期状態を作りました。

次回、3次元ダムブレイクの計算を実行してみましょう。
以下のように赤色の水が障害物にぶつかって飛び跳ねる様が見られます。

このような計算結果と実験データとの比較を行う予定ですので乞うご期待!

参考書

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

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

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

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

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

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

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

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

【プロフィール】

カマキリ
(^^)

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

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

 

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

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

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

COMMENT

メールアドレスが公開されることはありません。