interFoamの界面捕獲性能
の検討
moritam51@gmail.com
2021/10/24 1
はじめに
• openFOAMの気液2相の界面捕獲シミュレーションをす
るsolverとしてinterFoamがある
• 2次元ラプラス圧と液滴の円運動の計算を行い,通常の
MULESによる手法,IsoAdVector法,PLIC法,MLIC法を性能評
価した.
• なお,IsoAdVector法はOpenFOAM v2106,PLIC/MPLICについ
てはOpenFOAM9を使用した.
• 精度向上を目的としてAMRも試してみたが失敗
2021/10/24 2
使用方法
2021/10/24 3
#PLIC
div(phi,alpha) Gauss interfaceCompression vanLeer 1;
#MPLIC
div(phi,alpha) Gauss MPLIC;
OpenFOAM9の/system/fvshemesの変更
OpenFOAM v2106のIsoAdVector法の使用法
$interIsoFoam
2次元ラプラス圧
2021/10/24 4
𝑝𝑜
𝑝𝑖
𝑅
𝑑𝜃
𝜎
𝜎
𝑝𝑖 − 𝑝𝑜 ∙ 𝑅 ∙ 𝑑𝜃
𝑝𝑖 − 𝑝𝑜 ∙ 𝑅 ∙ 𝑑𝜃 = 𝜎 ∙ 𝑑𝜃
𝑝𝑖 − 𝑝𝑜 =
𝜎
𝑅
ラプラス圧
 表面張力によって界面で圧力ジャンプが発生
 半径が小さいほどラプラス圧が大きくなる
空気中の水滴2次元ラプラス圧
2021/10/24 5
半径 R=0.5mm
計算領域 2mm角
項目 仕様
CPU intel core5-6500 4cores
Memory 10GBytes
Disk 100GBytes
OS Vmware Ubuntu 20.04
項目 記号 単位 数値
水滴密度 𝜌𝐿 kg/m3 1000
空気密度 𝜌𝐺 kg/m3 1.2
水動粘度 𝜇𝐿 m2/s 1.0e-3
空気動粘度 𝜇𝐺 m2/s 1.8e-5
表面張力 𝜎 N/m 0.073
endTime=1msec, maxCo=0.2
𝑃𝐿𝑎𝑝𝑙𝑎𝑐𝑒 =
𝜎
𝑅
= 146𝑃𝑎
Case
2021/10/24 6
Case version solver Δ mesh Execution Time [s] Laplus P [Pa]
1 9 interFoam 0.1mm 1602=25600 41 130
2 9 interFoam PLIC ↑ ↑ 65 126
3 9 interFoam MLIC ↑ ↑ 66 127
4 v2106 interFoam ↑ ↑ 40 129
5 v2106 interIsoFoam ↑ ↑ 55 128
6 9 interFoam 0.05mm 3202=102400 564 120
7 9 interFoam/PLIC ↑ ↑ 935 124
8 9 interFoam/MLIC ↑ ↑ 911 124
9 v2106 interFoam ↑ ↑ 547 121
10 v2106 interIsoFoam ↑ ↑ 874 132
分解能をよいinterIsoFoamが最もよいが、それほどかわらない。
理論解と1~2割程度の誤差がある
2021/10/24 7
1:interFoam9 2:interFoam9/PLIC 3:interFoam/MPLIC 4:interFoam 5:interIsoFoam
高精度ソルバーで人口的な擾乱spurious currentは大きい
2021/10/24 8
6:interFoam9 7:interFoam9/PLIC 8:interFoam/MPLIC 9:interFoam 10:interIsoFoam
詳細メッシュの方がspurious currentは大きい
2次元ラプラス圧(表面張力が小さい場合)
2021/10/24 9
直径2mm
計算領域4mm角
項目 仕様
CPU intel core5-6500 4cores
Memory 10GBytes
Disk 100GBytes
OS Vmware Ubuntu 20.04
項目 記号 単位 数値
水滴密度 𝜌𝐿 kg/m3 1000
空気密度 𝜌𝐺 kg/m3 1.2
水動粘度 𝜇𝐿 m2/s 2.0e-3
空気動粘度 𝜇𝐺 m2/s 1.8e-5
表面張力 𝜎 N/m 0.001
endTime=10msec, maxCo=0.2
Case
2021/10/24 10
Case version solver mesh Execution Time [s] Laplus P [Pa]
1 9 interFoam 3202=102400 112.5 1.678
2 9 interFoam PLIC ↑ 130.21 1.775
3 v2106 interFoam ↑ 112.4 1.688
4 v2106 interIsoFoam ↑ 111.04 1.739
alpha.liquid
2021/10/24 11
OF9:interFoam
OF9:interFoam.PLIC
OFv2106:
interFoam
OFv2106:
interIsoFoam
p
2021/10/24 12
OF9:interFoam
OF9:interFoam.PLIC
OFv2106:
interFoam
OFv2106:
interIsoFoam
U Magnitude
2021/10/24 13
OF9:interFoam
OF9:interFoam.PLIC
OFv2106:
interFoam
OFv2106:
interIsoFoam
setFlow
2021/10/24 14
functions
{
setFlow1
{
// Mandatory entries (unmodifiable)
type setFlow;
libs (fieldFunctionObjects);
// Mandatory entries (runtime modifiable)
mode rotation;
scale 1;
// Optional entries (runtime modifiable)
U U;
rho none;
phi phi;
reverseTime 1;
// When mode=rotation
omega 6.28318530718;
origin (0 0 0);
refDir (1 0 0);
axis (0 1 0);
}
}
controlDictに追加する
流れのテスト用にv2106には用意されている
他に任意の速度場、渦が設定できる
剛体回転の比較
2021/10/24 15
interFoam interIsoFoam
v2106
setFlowで実施
R=1mm, 回転周波数=1Hz
8mm角(80×80)
液滴径=2mm
一周後の比較
2021/10/24 16
interFoam
interIsoFoam
interIsoFoamの方が形状が保存されている
AMR(Adaptive Mesh Refinement)
2021/10/24 17
v2106 interIsoFoam
R=1mm, 回転周波数=1Hz
8mm角(40×40)メッシュ減
液滴径=2mm
AMR
2021/10/24 18
液滴の周りがメッシュが細かくなったが形状は悪化し、回転が速くなった
やり方がおかしいのか?

An investigation about interFoam performance