0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenFOAMへのVARANSの実装(その2)

0
Last updated at Posted at 2026-02-22

2. olaFlow のインストール

ここでは、olaFlow のインストールを行う。OpenFOAM のバージョンは KEYSIGHT(旧ESI)版の v2406 とする。

2.1 OpenFOAM v2406 のソースコードのダウンロード、インストールおよび動作確認

次のページを参考にして OpenFOAM v2406 のソースコードのダウンロードおよびインストールを行う。
https://develop.openfoam.com/Development/openfoam/-/blob/master/doc/Build.md
なお、ここではインストールディレクトリを $HOME/OpenFOAM と想定している。

2.2 olaFlow のソースコードのダウンロード、インストールおよび動作確認

次のページよりソースコードのダウンロードができる。
https://github.com/phicau/olaFlow

olaFlow は OpenFOAM v2406 で動作保証がされていない。$^1$ そのため、ここでは olaFlow と OpenFOAM v2406 の interFoam および VoF の差分を取り、マージする方法を記し、最後にインストール方法を記す。

2.2.1 interFoam と olaFlow の差分の反映

ソースコードの階層を以下に示す。マージが必要なファイルには、節番号をつけている。

$HOME/OpenFOAM/OpenFOAM-v2206/applications/solvers/multiphase
├── VoF
│   ├── alphaCourantNo.H		2.2.1.5
│   ├── alphaEqn.H				2.2.1.6
│   ├── alphaEqnSubCycle.H
│   ├── createAlphaFluxes.H		2.2.1.7
│   ├── setDeltaT.H
│   └── setRDeltaT.H			2.2.1.8
├── interFoam
│   ├── Make
│   │   ├── files
│   │   └── options
│   ├── UEqn.H					2.2.1.4
│   ├── alphaSuSp.H
│   ├── correctPhi.H
│   ├── createFields.H			2.2.1.2
│   ├── initCorrectPhi.H
│   ├── interFoam.C				2.2.1.1
│   ├── interMixingFoam (omit)
│   ├── overInterDyMFoam (omit)
│   ├── pEqn.H
│   └── rhofs.H
└── olaFlow
    ├── Make
    │   ├── files
    │   └── options
    ├── UEqn.H					2.2.1.4
    ├── allMake
    ├── alphaCourantNo.H		2.2.1.5
    ├── alphaEqn.H				2.2.1.6
    ├── alphaEqnSubCycle.H
    ├── alphaSuSp.H
    ├── correctPhi.H
    ├── createAlphaFluxes.H		2.2.1.7
    ├── createFields.H			2.2.1.2
    ├── createPorosity.H		2.2.1.3
    ├── initCorrectPhi.H
    ├── olaFlow.C				2.2.1.1
    ├── pEqn.H
    ├── rhofs.H
    ├── setDeltaT.H
    └── setRDeltaT.H			2.2.1.8

2.2.1.1 interFoam.C

olaFlow では olaFlow.C である。変更点は次の通り。

  • 看板の変更は任意とする
  • incompressibleInterPhaseTransportModel はインクルードしない
  • setRootCaseLists.H ではなく setRootCase.H をインクルードする
  • 乱流モデル turbulence の validate() メソッドを実行する
  • runTime++ は interFoam.C のままとする
  • 空隙率スカラー場を更新する

2.2.1.2 createFields.H

変更点は次の通り。

  • createPorosity.H をインクルードする
  • 乱流モデル turbulence は incompressible::turbulenceModel クラスでインスタンス化する
  • サーフェススカラー場 alphaPhiUn をインスタンス化する

2.2.1.3 createPorosity.H (新規)

  • 空隙率スカラー場を生成する

2.2.1.4 UEqn.H

変更点は次の通り。

  • 運動方程式で使用する粘性係数 $\mu$ をサーフェススカラー場でインスタンス化する
  • $\mu$ の計算で $\nu_t$ を使用する
  • $\nu_t$ は乱流モデル turbulence の nut() メソッドで取得する。
  • 運動方程式を VARANS のものに置き換える

2.2.1.5 VoF/alphaCourantNo.H

変更点は次の通り。

  • system/controlDict の maxAlphaCo の取得方法を変更する

2.2.1.6 VoF/alphaEqn.H

変更点は次の通り。

  • MULESCorr が TRUE の場合、空隙率が考慮されない計算になるとの警告を出す
  • alpha の流束に対する Crank-Nicolson 係数の効果を考慮する
  • MULESCorr が FALSE の場合、MULES の陽解法を用いる
  • MMLES の explicitSolve メソッドの第一引数を 1 で固定のスカラー場から空隙率スカラー場に変更する

2.2.1.7 VoF/createAlphaFluxes.H

変更点は次の通り。

  • サーフェススカラー場 alphaPhiUn をインスタンス化を createFields.H に移動する

2.2.1.8 VoF/setRDeltaT.H

変更点は次の通り。

  • PIMPLE の設定値の取得メソッドを getOrDefault から lookupOrDefault に変更する

2.2.1.9 Make/files

次のように変更する。

olaFlow.C
EXE = $(FOAM_USER_APPBIN)/olaFlow

2.2.1.10 Make/options

変更の必要なし。

2.2.2 Allwmake の実行

interFoam と同じ階層に olaFlow のディレクトリがあることを確認して、再度 Allwmake を実行する。

2.2.3 動作確認

olaFlow にヘルプオプションをつけて正常に動作すれば問題なし。

$ olaFlow -help

Usage: olaFlow [OPTIONS]
Options:
  -case <dir>       Case directory (instead of current directory)
  -decomposeParDict <file>
                    Alternative decomposePar dictionary file
  -dry-run          Check case set-up only using a single time step
  -dry-run-write    Check case set-up and write only using a single time step
  -parallel         Run in parallel
  -postProcess      Execute functionObjects only
  -doc              Display documentation in browser
  -help             Display short help and exit
  -help-full        Display full help and exit

Solver for two incompressible, isothermal immiscible fluids using VOF
phase-fraction based interface capturing.
With optional mesh motion and mesh topology changes including adaptive
re-meshing.

Using: OpenFOAM-v2406 (2406) - visit www.openfoam.com
Build: _630d60de3b-20240620
Arch:  LSB;label=32;scalar=64

なお、上述と同じ方法でオーバーセット法を用いる overInterDyMFoam と overOlaDyMFlow をマージすることも可能である。

チュートリアルケースの動作確認はこちら(工事中)

注記
1 : ダウンロードして展開した olaFlow ディレクトリで次のコマンドを実行して olaFlow のインストールをすることも可能ではある。筆者が検知する限りでは、コンパイル時に次のエラーが発生した。

pEqn.H:13:18: fatal error: interpolatedFaces.H: No such file or directory
   13 |         #include "interpolatedFaces.H"
      |                  ^~~~~~~~~~~~~~~~~~~~~

ここで問題となるpEqn.Hは solvers/olaFlowOFv_com_latest/overOlaDyMFlow/pEqn.H である。このファイルの13行目までをコメントアウトして再コンパイルすれば、olaFlow は一応動く。

基礎方程式に戻る
チュートリアルケースの動作確認へつづく

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?