SlideShare uma empresa Scribd logo
1 de 134
Baixar para ler offline
山本卓也
2. OpenFOAMによる
混相流シミュレーション入門
東北大学大学院 工学研究科 金属フロンティア工学専攻
環境科学研究科 先端環境創成学専攻
1
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
5
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
OpenFOAMの歴史
~2003 Imperial college Londonで開発、商用ソフト(FOAM)として販売
2004~ OpenCFD社がOpenFOAMをオープンソースとして公開
2011 OpenFOAM Foundation Inc.が設立し、OpenCFD社をSGI社が買収
2012 OpenCFD社がESI社が買収
2016 OpenFOAM Foundation版とESI-OpenCFD社版に分裂
OpenFOAM Foundation版
OpenFOAM ESI-OpenCFD版
OpenFOAM-v3.0+, OpenFOAM-v1606+, OpenFOAM-v1612+, OpenFOAM-v1706, …
現在の最新VersionはOpenFOAM-v2206
年2度更新(6月、12月)
2020年6月更新はv2006、2018年12月更新はv1812という命名方法
OpenFOAM-4.0, OpenFOAM-4.1, OpenFOAM-5, OpenFOAM-6, …
現在の最新VersionはOpenFOAM-9
年1度更新(7月)
OpenFOAM-devとして開発版も存在する
6
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
7
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
OpenFOAMにおける混相流解析
8
• 気液二相流
• 気液多相流
• 気液混相流+相変化
• 固液相変化
• 流体+粒子運動
多様な現象に対して多様な解析手法が実装されている
例)気液二相流
9
interFoam, interIsoFoam (VOF法)
例)気液多相流
10
multiphaseInterFoam (VOF法)
例)気液混相流+相変化
11
interCondensating
EvaporatingFoam
interPhaseChangeFoam
cavitatingFoam
例)固液相変化
12
solidificationMeltingSource
例)流体+粒子運動
13
MPPICInterFoam icoUncoupledKinematicParcelFoam
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
14
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
手法の分類
15
気液混相流
一流体モデル 二(多)流体モデル Lagrangian-Eulerian 粒子法
• MPS (Moving
Particle Semi-
implicit)法
• SPH (Smoothed
Particle
Hydrodynamics)
法
OpenFOAMには
実装されていな
い
• VOF (Volume of
Fluid)法
• LS (Level Set)法
• DIM (Diffuse
Interface
Method)法
…
OpenFOAMには
VOF法が実装さ
れている
• Euler-Eulerモデ
ル (Eulerian-
Eulerianモデル)
OpenFOAMには
Euler-Euler法が
実装されている
• Lagrangian-
Eulerianモデル
OpenFOAMには
一部実装されて
いる
手法の分類
16
S. Mirjalili et al., Center for Turb. Res. Annu. Res. Brief. 117-135 (2017)
一流体モデル
17
to write one set of governing equations for the whole flow domain occupied by the
various phase, without resorting jump condition
G. Tryggvason et al., Direct Numerical Simulations of Gas-Liquid Multiphase Flows (2011, Cambridge Press)
多数の相に関わらず1セットの支配方程式で書き下すことのできるモデル
• Volume of Fluid (VOF)法
• Level Set法
• Phase Field法 (Diffuse Interface法)
…
OpenFOAMにおける一流体モデル
18
VOF法
****InterFoam
****InterDyMFoam
等のようにInterが名前についているmultiphase用のsolverは
ほぼ一流体モデルのVOF法を利用しているもの
マーカーを利用して界面位置を追跡
マーカーが拡散指定しまい、界面位置が
なまる誤差あり
二(多)流体モデル
19
瞬時・局所的な基礎方程式を時間Tの間において一方の相にのみ注目し
て平均することによって得られるモデル
日本混相流学会、混相流ハンドブック (2004, 朝倉書店)
流体の個数分だけ多数のセットの支配方程式があり、
それらの方程式群を同時に解くことで解が得られる
Euler-Eulerモデル
(Eulerian-Eulerianモデル)
1流体モデル
2(多)流体モデル
OpenFOAMにおける二(多)流体モデル
20
Euler-Eulerモデル (Eulerian-Eulerian)モデル
****EulerFoam
等のようにEulerが名前についているmultiphase
用のsolverは
二(多)流体モデルを利用しているもの
気液界面位置を直接追跡するのではなく、
平均化した場として解を得ることができるた
め、一流体モデルと比較して空間的に幅広
い範囲での解析が可能
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
21
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
気液混相流+相変化
22
キャビテーションモデル
動圧によって飽和蒸気圧以下になった際に
相変化し、体積膨張、相変化した気相の移動までを解くモデル
OpenFOAMでは、相変化した後にVOF法で追跡するか
単に発生までを予測するかのsolverがある
気液混相流+相変化
23
凝縮、蒸発モデル
凝縮温度以下になった場合に相変化し、凝縮
蒸発温度以上になった場合に相変化し、蒸発
するよう体積変化するようにモデル化
OpenFOAMでは相変化以外はVOF法でモデル化し、
VOF法に体積変化するようにモデル化されている
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
24
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
固液相変化
25
Enthalpy-Porosity法
• 固体部分、液体部
分、共存部分をそ
の液体率aで表現
• 固体部分、共存部
分で流体抵抗を加
えることで、固体
液体共存系を表現
• 温度に依存して液
体率を変化させ、
液体率の変化に
応じて潜熱の発生
も数式に導入
Enthalpy収支式からのモデル導出
Enthalpy収支式
26
h: エンタルピー
𝜌: 密度
𝑡: 時間
𝒖: 速度
𝑘: 熱伝導率
𝑐!: 比熱
エンタルピーを潜熱Δ𝐻、顕熱𝑐!𝑇で表現する
ℎ = 𝑐!𝑇 + Δ𝐻
代入
𝜕 𝜌ℎ
𝜕𝑡
+ ∇ ⋅ 𝜌𝒖ℎ = ∇ ⋅ 𝑘∇𝑇
𝜕 𝜌𝑐!𝑇
𝜕𝑡
+ ∇ ⋅ 𝜌𝑐!𝒖𝑇 = ∇ ⋅ 𝑘∇𝑇 −
𝜕 𝜌Δ𝐻
𝜕𝑡
− ∇ ⋅ 𝜌𝒖Δ𝐻
Energy式
(通常の熱対流用solver)
追加項
(fvOptions)
V. R. Voller and C. Prakash, Int. J. Heat Mass Transfer 30 (1987) 1709-1719
porosity項のモデル
27
p: 圧力
𝐶′: 抵抗係数
𝛼": 液体体積分率
𝑞: 安定化係数
Carman-Koseny式
∇𝑝 = −𝐶′
1 − 𝛼!
"
𝛼!
#
+ 𝑞
C:抵抗係数は晶出物形態によって変化
(例えば、晶出物径小で抵抗係数大へ変化)
q: 安定化するためなので、小さい方が原理的には正確
Carman-Koseny式は元々
充填層や濾過時の圧力抵抗を説明する
固液共存(Mushy)領域における
流体抵抗に応用
V. R. Voller and C. Prakash, Int. J. Heat Mass Transfer 30 (1987) 1709-1719
porosity項のモデル
28
p: 圧力
𝐾: 透過率
𝜇: 粘度
𝒖: 速度
Darcy則
𝒖 = −
𝐾
𝜇
∇𝑝
多孔体における圧力損失と速度の関係性に関する経験則
Navier-Stokes式への追加項
Carman-Koseny式とDarcy則を利用する
𝑺 = −𝐴𝒖 𝐴 = −𝐶
1 − 𝛼"
#
𝛼"
$
+ 𝑞
S: 追加項
A: 係数
𝐶: 抵抗係数
𝒖: 速度
𝛼": 液体体積分率
𝑞: 安定化係数
V. R. Voller and C. Prakash, Int. J. Heat Mass Transfer 30 (1987) 1709-1719
Enthalpy-Porosity法による計算例
29
Galliumの溶解過程
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
30
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
流体+粒子運動
31
流体場:Computational Fluid Dynamics (CFD)
粒子運動:Discrete Element Method (DEM)
CFD-DEM
DEM: 個別要素法
離散要素法
粒子に対してNewtonの運動方程式を解く
DEM
32
各粒子に対するNewtonの運動方程式
𝑚8𝒂8 = 𝑭8
𝑚8
𝑑9𝒙8
𝑑𝑡9 = 𝑭: + 𝑭; + 𝑭< + 𝑭𝒆𝒙𝒕
粒子衝突
による力
流体抵抗
による力
重力 その他外力
DEMにおける衝突力のモデル化
33
「粒子個別要素法」 森北出版
著 Catherine O’Sullivan 訳 鈴木輝一
F = Kδ +η !
δ
F: 力
K: バネ剛性
d: 変位
h: 減衰
!
δ =
dδ
dt
, !
F =
dF
dt
線形Kelvin(Voigt)モデル
線形Maxwellモデル
!
δ =
!
F
K
+
F
η バネ ダッシュポット
物性に応じて様々な衝突モデルを利用
DEMにおける流体抵抗のモデル化
34
単純な球体の抵抗
Re <1000
else.
F = Cd Ap
ρf u2
2
小文字
f: 流体
s: 固体
変数
Ap: 投影面積
Cd: 抵抗係数
r: 密度
u: 速度差(=|uf-us|)
V: 体積
d: 粒子直径
Cd =
24
Re
1+
1
6
Re
2
3
!
"
#
$
%
&
Cd = 0.424
粒子の割合が大きい場合
(Wen-Yuモデル)
nRe <1000
else.
β =
3
4
Cd
ρf 1− n
( )
ds
uf −us n−2.65
Cd =
24
nRe
1+ 0.15 nRe
( )
0.687
( )
Cd = 0.44
Ff =
β
1− n
uf −us
( )Vs
変数
b: 相関係数
n: 空隙率
その他多数のモデルがあり、対象に応じて変更
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
35
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
VOF法計算例
Dam Break (Tutorial)
界面の拡散(誤差)
36
VOF法
Hirt and Nichols (1981)によって開発された手法
C.W. Hirt and B. D. Nichols, J. Comput. Phys. 39 (1981) 201-226.
1. 体積分率a(VOF関数とも呼ばれる)に対する保存方程式を解く
𝜕𝛼
𝜕𝑡
+ ∇ , 𝒖𝛼 = 0
2. 体積分率aが拡散するのを防ぐため、
各計算格子セル内に体積分率が1までたまるまで移動させない
a = 1: 液体
a = 0: 気体
0 < a < 1: 界面
VOF法は体積分率の数値拡散との戦い
37
VOF関数の数値拡散
0 0 0 0 0
0 0 0 0.1 0.3
0 0 0.5 0.95 1.0
0 0.4 1.0 1.0 1.0
0 0.7 1.0 1.0 1.0
界面がなまる
数値的に拡散する
実際の形状 数値上での表現
G. Tryggvason et al., Direct Numerical Simulation of Gas-Liquid Multiphase Flow (Cambridge University Press, 2011)
38
界面再構築方法
• Geometrical reconstruction (幾何学的な再構築)
SLIC, PLIC, ELVIRA, isoAdvector等の方法
計算精度良好、アルゴリズム実装複雑
計算が不安定
• Algebraic reconstruction (代数学的な再構築)
HRIC, CICSAM等の方法
計算精度そこまで高くない、アルゴリズム実装容易
計算が安定
代数学的に修正
幾何学的に
修正
39
OpenFOAMにおけるVOF法
• interFoam
Algebraic VOF法
MULES (Multi-Dimensional Universal Limiter with Explicit Solution)を利用
全てのOpenFOAMで利用可能
• interIsoFoam
Geometric VOF法
IsoAdvectorを利用
ESI版OpenFOAMで利用可能
(OpenFOAM v1706以降, v1806以降でdynamic mesh利用可能)
• interFoam
Algebraic VOF法+PLIC (MPLIC)
MULES (Multi-Dimensional Universal Limiter with Explicit Solution)を利用
PLIC (MPLIC)は補間に利用
OpenFOAM-dev(OpenFOAM Foundation版)で利用可能(2020年夏以降) 40
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
41
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
interFoamのtutorial
Dambreak Dambreak with obstacle
42
interFoamにおける支配方程式
解いている方程式
H. Rusche, Ph.D. Thesis of Imperial College London (2002).
• Navier-Stokes式(表面張力項が追加)
@ A𝒖
@B
+ ∇ ⋅ 𝜌𝒖𝒖 = −∇𝑝 + 𝜇∇9𝒖 + 𝜌𝒈 + 𝑭C
• 連続式
@A
@B
+ ∇ ⋅ 𝜌𝒖 = 0
• VOF関数の保存方程式
@D
@B
+ ∇ ⋅ 𝛼𝒖 + ∇ ⋅ 𝛼 1 − 𝛼 𝒖E = 0
流れ
気液
界面
位置
𝜌: 密度
u: 速度
t:時間
p: 圧力
𝜇 : 粘度
g: 重力加速度
𝑭%: 表面張力項
a: VOF関数
ur: 相対速度
界面圧縮項としてモデル化
43
𝜕𝛼
𝜕𝑡
+ ∇ ⋅ 𝛼𝒖 + ∇ ⋅ 𝛼 1 − 𝛼 𝒖& = 0
VOF関数の保存方程式
VOF関数の保存方程式
Algebraic reconstruction (代数的再構築)の1種
支配方程式を変更することで代数的にVOF関数を修正
界面圧縮
44
𝜕𝛼
𝜕𝑡
+ ∇ ⋅ 𝛼𝒖 + ∇ ⋅ 𝛼 1 − 𝛼 𝒖& = 0
VOF法における物性値更新
VOF関数の保存方程式
𝜌 = 𝜌'𝛼 + 𝜌# 1 − 𝛼
𝜇 = 𝜇'𝛼 + 𝜇# 1 − 𝛼
𝜌: 密度
𝜇: 粘度
物性値の補間には一般には調和平均が利用されるが、
VOF法では線形補間でも大差がないため線形補間がよく利用される 45
𝜕𝛼
𝜕𝑡
+ ∇ ⋅ 𝛼𝒖 + ∇ ⋅ 𝛼 1 − 𝛼 𝒖& = 0
VOF関数の保存方程式の離散化
VOF関数の保存方程式
H
(
∇ ⋅ 𝛼𝒖 + ∇ ⋅ 𝛼 1 − 𝛼 𝒖& 𝑑Ω
ガウスの発散定理
H
(
∇ ⋅ 𝑨 𝑑Ω = H
)
𝑨 𝑑S
Ω: 体積
S: 面積
f: 体積流量
Sf: 面積ベクトル
f: 格子セル表面
H
(
∇ ⋅ 𝛼𝒖 + ∇ ⋅ 𝛼 1 − 𝛼 𝒖& 𝑑Ω = Σ 𝛼𝒖 * + 1 − 𝛼 𝛼𝒖& *
⋅ 𝑺*
= Σ 𝛼𝜙 * + 1 − 𝛼 𝛼𝜙& *
有限体積法なので
相対体積流量のモデル化が必要 46
界面圧縮モデル
相対体積流量(圧縮体積流量としてモデル化)
𝜙& * = min 𝐶+
𝜙*
𝑺*
, max
𝜙*
𝑺*
V
𝑛*
f: 体積流量
𝐶+: 圧縮パラメータ
𝑺*: 面積ベクトル
V
𝑛*: 界面に対する法線面積フラックス
𝒏*: 界面に対する法線単位ベクトル
𝛿,: 安定化パラメータ
𝑉-."": 計算格子セル体積
V
𝑛* = 𝒏* ⋅ 𝑺* 𝒏* =
∇𝛼 *
∇𝛼 * + 𝛿,
𝐶+
/!
𝑺!
とmax
/!
𝑺!
の小さい方を選択
注:古いOpenFOAMの場合
𝐶+ = 0とおくと圧縮流量ゼロに
𝐶+が大きいほど圧縮流量大に
𝛿, =
1×1012
𝑉
3455
'/$
𝜙& * = 𝐶+
𝜙*
𝑺*
V
𝑛*
注:新しいversionのOpenFOAMの場合
注: 論文中では上側の表記が殆ど
a
Ñ
47
界面圧縮モデル
相対体積流量(圧縮体積流量としてモデル化)
f: 体積流量
𝐶+: 圧縮パラメータ
𝑺*: 面積ベクトル
V
𝑛*: 界面に対する法線面積フラックス
𝒏*: 界面に対する法線単位ベクトル
𝛿, : 安定化パラメータ
𝐶+ = 0とおくと圧縮流量ゼロに
𝐶+が大きいほど圧縮流量大に
nf
1 − 𝛼 𝛼𝜙&
界面圧縮体積流量
1 − 𝛼 𝛼 界面領域のみに働く
右側に圧縮する速度を自動的に加えている
注:nfの計算が正確でなければ変な方向に
圧縮を加えてしまう
𝜙& * = 𝐶+
𝜙*
𝑺*
V
𝑛*
48
𝒏* =
∇𝛼 *
∇𝛼 * + 𝛿,
界面圧縮モデル(追加オプション,icAlpha)
相対体積流量(圧縮体積流量としてモデル化)
𝐶+ = 0とおくと圧縮流量ゼロに
𝐶+が大きいほど圧縮流量大に
𝜙& * = 𝐶+
𝜙*
𝑺*
1 − 𝑖37 + 𝐶+𝑖37|𝒖|* V
𝑛*
ESI版追加オプションicAlpha (isotropic compression)
𝜙& * = 𝐶+
𝜙*
𝑺*
V
𝑛*
元々
/!
𝑺!
を利用するか|𝒖|*を利用するかを𝑖37で割合を決定
𝑖37 = 0とおくと従来のinterFoamと同様
𝑖37を1に近づけるほど等方的成分増加 𝜙*
𝑺*
=
𝒖* ⋅ 𝑺*
𝑺*
計算格子セル面垂直成分
計算格子セル面垂直成分で圧縮 or セル面速度の大きさで圧縮
理論上はセル面に平行な流れ成分が支配的な場合は𝑖37が大きい方が圧縮される
(後述のspurious currentの影響もあるので、何とも言えない) 49
界面圧縮モデル(追加オプション,scAlpha)
相対体積流量(圧縮体積流量としてモデル化)
𝜙& * = 𝐶+
𝜙*
𝑺*
+ 𝑠37 𝜹 ⋅
1
2
∇𝒖 + ∇𝒖8
*
V
𝑛*
ESI版追加オプションscAlpha (shear compression)
追加項
剪断成分を追加
𝐶+ = 0とおくと圧縮流量ゼロに
𝐶+が大きいほど圧縮流量大に
𝑠37 = 0とおくと従来のinterFoamと同様
𝑠37を大きくするほど剪断成分増加
理論上は界面付近でセル面で剪断流が支配的な場合は𝑠-+が大きい方が圧縮される
(後述のspurious currentの影響もあるので、何とも言えない)
𝜹: 隣接セル中心との
位置ベクトル
50
interFoamにおける支配方程式
解いている方程式
H. Rusche, Ph.D. Thesis of Imperial College London (2002).
• Navier-Stokes式(表面張力項が追加)
@ A𝒖
@B
+ ∇ ⋅ 𝜌𝒖𝒖 = −∇𝑝 + 𝜇∇9𝒖 + 𝜌𝒈 + 𝑭C
• 連続式
@A
@B
+ ∇ ⋅ 𝜌𝒖 = 0
• VOF関数の保存方程式
@D
@B
+ ∇ ⋅ 𝛼𝒖 + ∇ ⋅ 𝛼 1 − 𝛼 𝒖E = 0
流れ
気液
界面
位置
𝜌: 密度
𝒖: 速度
𝑡:時間
𝑝: 圧力
𝜇 : 粘度
𝒈: 重力加速度
𝑭%: 表面張力項
a: VOF関数
𝒖&: 相対速度
51
表面張力モデル
J.U. Brackbill et al., J. Comput. Phys. 100 (1992) 335-354.
Continuum Surface Tension (CSF) model
表面張力は面積力であるが、
数値的に解くために体積力によってモデル化
𝑭! = 𝜎𝑘𝒏𝛿 = 𝜎𝑘∇𝛼
𝜎: 表面張力
𝑘: 界面曲率
𝒏: 界面に対する法線単位ベクトル
𝛿: デルタ関数(界面でのみのデルタ関数)
𝛼 : 体積分率
𝒏 =
∇𝛼
|∇𝛼|
, 𝛿 = ∇𝛼 ,
𝑘 = ∇ ⋅ 𝒏
表面張力項の計算では、𝛻𝛼がかなり重要となる
この計算の誤差が後に説明するspurious currentの原因に
52
interFoamアルゴリズム
VOF関数の保存方程式
Navier-Stokes式による速度予測
圧力ポアソン方程式
PIMPLE
ループ
時間発展 Δ𝑡!"# =
Δ𝑡
𝑛$,!"#
VOF関数の保存方程式更新
𝑛7,,:;回ループ
オプションで時間刻みを小さくする
サブサイクル
fvSolution/nAlphaSubCyclesで回数を設定
界面移動速度が大きい時には多少安定化することも
(Comaxが大きいときは多少改善)
53
interFoamによるミルククラウンの実行例
54
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
55
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
界面再構築方法
• Geometrical reconstruction (幾何学的な再構築)
SLIC, PLIC, ELVIRA, isoAdvector等の方法
計算精度良好、アルゴリズム実装複雑
計算が不安定
• Algebraic reconstruction (代数学的な再構築)
HRIC, CICSAM等の方法
計算精度そこまで高くない、アルゴリズム実装容易
計算が安定
代数学的に修正
幾何学的に
修正
56
interIsoFoamのtutorial例
Dambreak (interFoam) Dambreak (interIsoFoam)
VOF関数の拡散が大きい VOF関数の拡散が小さい
57
interIsoFoamに利用されるisoAdvector
isoAdvector
気液界面で構成される球面を計算
格子を横切る単一平面で表現
isoAdvectorの時間発展
青、緑、赤の順に時間発展
計算格子内の界面移動も表現可能
58
J. Roenby, H. Bredmose, H. Jasak, R. Soc. Open Sci. 3 (2016) 160405.
isoAdvectorの数値モデル導出
体積分率aの他にHという指標を導入
𝐻 𝒙, 𝑡 =
𝜌 𝒙, 𝑡 − 𝜌d
𝜌e − 𝜌d
Aなら𝐻 = 1
Bなら𝐻 = 0
連続式を考える
59
𝑑𝜌 𝒙, 𝑡
𝑑𝑡
+ ∇ ⋅ 𝜌 𝒙, 𝑡 𝒖 𝒙, 𝑡 = 0
𝑑
𝑑𝑡
<
f
𝜌 𝒙, 𝑡 𝑑Ω = − <
g
𝜌 𝒙, 𝑡 𝒖 𝒙, 𝑡 𝑑𝑺
有限体積法 (ガウスの発散定理利用)
𝜌: 密度
𝑡: 時間
𝒖: 速度
𝒙: 座標
Ω: 体積
𝑺: 面積ベクトル
Hで表現
𝑑
𝑑𝑡
<
f
𝐻 𝒙, 𝑡 𝑑Ω = − <
g
𝐻 𝒙, 𝑡 𝒖 𝒙, 𝑡 𝑑𝑺
isoAdvectorの数値モデル導出
計算格子セルにおける体積分率aは
60
𝑑
𝑑𝑡
<
f
𝐻 𝒙, 𝑡 𝑑Ω = − <
g
𝐻 𝒙, 𝑡 𝒖 𝒙, 𝑡 𝑑𝑺
𝛼 =
1
Ωhijj
<
f%&''
𝐻 𝒙, 𝑡 𝑑Ω
𝛼で表現し時間に対して計算格子に対して離散化すると
𝛼 𝑡 + Δ𝑡 = 𝛼 𝑡 −
1
Ωhijj
Σ𝑠k <
B
BlmB
<
g(
𝐻 𝒙, 𝑡 𝒖 𝒙, 𝑡 𝑑𝑺 𝑑𝑡
Dtの間に計算セル面jにおける計算格子セルに流入する流体Aの体積をDVj(t,Dt)とおくと
Δ𝑉
< 𝑡, Δ𝑡 = H
=
=>?=
H
@"
𝐻 𝒙, 𝑡 𝒖 𝒙, 𝑡 𝑑𝑺𝑑𝑡
𝜌: 密度
𝑡: 時間
𝒖: 速度
𝒙: 座標
Ω: 体積
𝑺: 面積ベクトル
𝑠: 符号関数
isoAdvectorの数値モデル導出
61
𝛼 𝑡 + Δ𝑡 = 𝛼 𝑡 −
1
Ω:noo
Σk𝑠kΔ𝑉
k 𝑡, Δ𝑡
最終的に式変形すると
これをisoAdvectorで求めれば良い
Δ𝑉
< 𝑡, Δ𝑡 = H
=
=>?=
H
@"
𝐻 𝒙, 𝑡 𝒖 𝒙, 𝑡 𝑑𝑺𝑑𝑡
=
𝜙< 𝑡
𝑺<
H
=
=>?=
H
@"
𝐻 𝒙, 𝑡 𝑑𝑺𝑑𝑡 =
𝜙< 𝑡
𝑺<
H
=
=>?=
𝐴< 𝑡 𝑑𝑡
f: 体積流量
𝐴< 𝑡 = H
@"
𝐻 𝒙, 𝑡 𝑑𝑺 とおく
Ajは計算格子セル面における流体Aの埋め込み面積
このAjを逐次幾何学的に求めて計算する
VOF関数移動の計算精度
VOF関数を移動させた際の計算
62
J. Roenby, H. Bredmose, H. Jasak, R. Soc. Open Sci. 3 (2016) 160405.
VOF関数移動の計算精度
J. Roenby, H. Bredmose, H. Jasak, R. Soc. Open Sci. 3 (2016) 160405.
interIsoFoam(IsoAdvector)で計算する方が精度良く計算可能
interIsoFoam interFoam
63
interIsoFoamによるミルククラウンの実行例
64
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
65
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
VOF法における代表的な問題点
66
ü VOF関数の数値的な拡散
ü Spurious current (Parasitic current)
ü Laplace圧の誤差
VOF法における代表的な問題点
67
ü VOF関数の数値的な拡散
ü Spurious current (Parasitic current)
ü Laplace圧の誤差
VOF関数の数値拡散
界面の拡散(誤差)
界面が拡散すると
• 表面張力が正確に計算できない
• 非物理的な界面形状
どのようにVOF関数の数値拡散を
低減するか?
68
VOF関数の数値拡散の低減方法
• 計算格子解像度
• Adaptive mesh refinement (AMR)
• Caの変更 (interFoam)
69
VOF関数の数値拡散の低減方法
計算格子解像度
粗い格子解像度 細かい格子解像度
気液界面を正確に計算するためには計算格子解像度が必要
(特に気液界面付近で) 70
VOF関数の数値拡散の低減方法
• 計算格子解像度
• Adaptive mesh refinement (AMR)
• Caの変更 (interFoam)
71
VOF関数の数値拡散の低減方法
AMR (Adaptive Mesh Refinement)
局所的に計算格子を切り直す方法
VOF法と一緒に利用することで、VOF関数の拡散を低減
interFoam, interIsoFoamで実行可能
八分木で計算格子を計算時間毎に分割
局所的に計算格子を細かくするので、
計算負荷があまり大きくならずに計算精度をあげることができる
72
VOF関数の数値拡散の低減方法:解析例
AMR (Adaptive Mesh Refinement)
格子局所分割を行っている
格子分割のおかげで界面の拡
散(誤差)が低下
注: 初期値の設定要注意
条件によっては計算が破綻 73
VOF関数の数値拡散の低減方法
• 計算格子解像度
• Adaptive mesh refinement (AMR)
• Caの変更 (interFoam)
74
VOF関数の数値拡散の低減方法(interFoam)
Caの変更
Ca = 1が標準値
Ca 大: 界面圧縮が強い
界面が圧縮されすぎて格子形状に沿ってガタガタする
Ca 小: 界面圧縮が弱い
VOF関数が拡散する
非物理的な気泡、液滴の分裂が発生しうる
後述のspurious currentが強くなり、誤差が大きくなる
流れが激しく、界面が拡散しやすく、
spurious currentの影響が小さい条件
流れが緩やかで、界面が拡散しにくく、
spurious currentの影響が大きい条件
75
VOF関数の数値拡散の低減方法:解析例
Caの変更
Ca = 0 Ca = 1 Ca = 2
Caが大きい方が拡散が低減
問題に応じてこの値を変更する必要あり
一般に、激しい気液界面振動の場合はCa大
(Ca大で非物理的な液面振動や気泡分裂も有り) 76
VOF関数の数値拡散の低減方法:解析例
圧縮オプションの変更
Ca = 1, ica = 0.5 Ca = 1 Ca = 1, sca = 1
等方的圧縮 剪断圧縮
あまり大きな差が見られない
問題に応じて利用する
77
VOF法における代表的な問題点
78
ü VOF関数の数値的な拡散
ü Spurious current (Parasitic current)
ü Laplace圧の誤差
Spurious (Parasitic) current
79
Spurious (Parasitic) current
界面張力項(CSFモデル)
J. U. Brackbill et al., J. Comp. Phys., 100, 335-354 (1992).
界面張力項はNavier-Stokes式に直接外力として加えるので、界
面上で界面張力のアンバランスな場所で速度が発生する
∇𝛼, 𝑘の計算で誤差大(界面張力のバランスが取れない)
spurious (parasitic) current 80
𝛿, =
1×1012
𝑉
3455
'/$
𝑭! = 𝜎𝑘𝒏𝛿 = 𝜎𝑘∇𝛼
𝒏 =
∇𝛼
|∇𝛼 + 𝛿p|
, 𝛿 = ∇𝛼 , 𝑘 = ∇ ⋅ 𝒏
Spurious (Parasitic) current
Spurious currentのスケーリング
Lafaurie et al., J. Comput. Phys. 113 (1994) 134-147.
𝑅𝑒p8 ∝ 𝐿𝑎 Re: Reynolds数
La: Laplace数
usp: Spurious currentの速度
D: 代表長さ
𝜈: 動粘度
𝜌: 密度
𝜎: 表面張力
𝜇: 粘度
𝑅𝑒A! =
𝑢A!𝐷
𝜈
𝐿𝑎 =
𝜎𝜌𝐷
𝜇#
𝑢p8 ∝
𝜎
𝜇
表面張力が大きく、粘度が小さい系ではspurious currentが大きくなる
大きさスケールによらないので、マイクロバブル等の小さい気泡を対象とする場合、
Spurious currentによって気泡が動いたりする
solverの改造をしなければまともに計算できないことも
81
Spurious current低減法
• スムーズ化したalpha分布より曲率等を計算する。
D. A. Hoang et al., Comput. Fluids, 86, 28-36 (2013).
!
α =
αf Sf
f =1
n
∑
Sf
f =1
n
∑
• S-CLSVOF法を使い、Level-Set法と組み合わせる。
A. Albadawi et al., Int. J. Multiphase Flow, 53, 11-28 (2013).
• Caの値を解こうとする問題に合わせて調整する。
solverの改良が必要なものがほとんど
• その他多数の誤差低減方法が論文で報告されている
ので、それを自分で実装する。
82
VOF法における代表的な問題点
83
ü VOF関数の数値的な拡散
ü Spurious current (Parasitic current)
ü Laplace圧の誤差
Laplace圧の誤差
Laplace圧
2種の流体を分ける表面を横切るときに生ずる静水圧のジャンプDp
(表面張力の物理学 著 ドゥジェンヌ、ブロシャール−ヴィアール、ケレ 訳
奥村剛)
84
Δp = p0
in
− p∞
out p0
in
p∞
out
気泡中心部の圧力
壁境界での圧力
数値計算によるLaplace圧と理論値の比較
∆𝑝 = 𝜎
1
𝑅
+
1
𝑅′
Laplace圧の誤差
85
• 計算条件
Δp = p0
in
− p∞
out
p0
in
p∞
out
気泡中心部の圧力
壁境界での圧力
等間隔格子
DX = 0.001 m (Fine)
0.05 m
0.05
m
0.01 m
理論値のラプラス圧
物性値
𝜎 0.01 N/m
計算によるラプラス圧
rg 1 kg/m3
µg 10-5 kg/(ms)
rl 1000 kg/m3
µl 10-3 kg/(ms)
gas
liquid
無重力条件
(静置条件)
計算時間
0.1 sec.
(Dt = 1x10-5 sec. (Coarse))
(Dt = 5x10-6 sec. (Fine))
相対圧力誤差E0
E0 =
Δp− Δpexact
Δpexact
∆𝑝 = 𝜎
1
𝑅
+
1
𝑅′
= 2
Laplace圧の誤差
86
黒線(alpha = 0.5)
E0 = 19 %
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
87
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
OpenFOAMのディレクトリ構成
$HOME/OpenFOAM
$WM_PROJECT_DIR
$WM_PROJECT_USER_DIR
run
platforms
applications
このディレクトリ内で作業する。
(USER_NAME-version)
基本的に書き換えない。
計算実行用ディレクトリ
バイナリ(実行)ファイル用ディレクトリ
$WM_PROJECT_USER_DIR (USER_NAME-version)
自作solver, utility用ディレクトリ
移動コマンド(alias)
run
ここに計算するケースディレクトリを置く
88
foam
$ mkdir –p $FOAM_RUN runディレクトリを作成
OpenFOAMのtutorialの場所
89
$ foam
$ cd tutorials
OpenFOAMのproject directoryに移動
OpenFOAMのproject directory内のtutorialが格納されている
ディレクトリに移動
もしくは
$ tut OpenFOAMのtutorialが格納されているディレクトリに移動
$WM_PROJECT_DIR/tutorials
格納されている場所
OpenFOAMのtutorialの種類
90
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
Allclean Alltest Allcollect AutoTest Allrun
IO compressible financial incompressible modules resources
basic discreteMethods finiteArea lagrangian multiphase stressAnalysis
DNS combustion electromagnetics heatTransfer mesh preProcessing
verificationAndValidation
All*** tutorialを実行するスクリプト
その他 tutorial
実行するsolverの種類に応じてディレクトリが異なる
今回はmultiphaseのtutorialを使います
$ cd multiphase multiphaseの中に移動
multiphaseのtutorial
91
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
MPPICInterFoam compressibleMultiphaseInterFoam interIsoFoam
multiphaseInterFoam reactingTwoPhaseEulerFoam cavitatingFoam driftFluxFoam
interMixingFoam overInterDyMFoam twoLiquidMixingFoam
compressibleInterDyMFoam icoReactingMultiPhaseInterFoam
interPhaseChangeDyMFoam potentialFreeSurfaceDyMFoam twoPhaseEulerFoam
compressibleInterFoam interCondensatingEvaporatingFoam interPhaseChangeFoam
potentialFreeSurfaceFoam compressibleInterIsoFoam interFoam
multiphaseEulerFoam reactingMultiphaseEulerFoam
各種solverの名前のディレクトリ
solverごとにtutorialが格納されている
今回はinterFoamとinterIsoFoamのtutorialを使います
$ cd interFoam interFoamの中に移動
interFoamのtutorial
92
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
LES RAS laminar
各種乱流モデルの名前のディレクトリ
乱流モデルごとにtutorialが格納されている
laminar 乱流モデルなし
LES LESモデル
RAS RAS(RANS)モデル
今回はlaminarのtutorialを使います
$ cd laminar laminarの中に移動
interFoam/laminarのtutorial
93
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
capillaryRise damBreakWithObstacle sloshingCylinder sloshingTank2D3DoF
sloshingTank3D3DoF testTubeMixer waves damBreak mixerVessel2D
sloshingTank2D sloshingTank3D sloshingTank3D6DoF vofToLagrangian
各種tutorialが格納されている
今回はdamBreakのtutorialを使います
$ cp -r damBreak $FOAM_RUN $FOAM_RUN(計算実行用ディレクトリ)
の中にdamBreakをコピー
$ run runの中に移動
damBreakのtutorial
94
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
damBreak
runの中にコピーしたdamBreakがあることが確認できる
$ cd damBreak/damBreak damBreakの中に移動
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
0.orig Allclean Allrun constant system
Allrunは前処理からプログラム実行まで全てを実行するスクリプト
Allcleanは計算データを消去するスクリプト
ケースディレクトリの構造
ケースディレクトリ
ケース名 (例:damBreak)
0.orig
constant
system
U, alpha.water, p_rgh
各種変数の初期条件、境界条件の設定ディレクトリ
物性値、乱流モデルの設定ディレクトリ
計算スキーム、ユーティリティー等の設定ディレクトリ
ケースディレクトリ内で計算を実行する
95
0.origディレクトリの構造
各種変数の初期条件、境界条件の設定用フォルダ
U
alpha.water
p_rgh
速度
圧力
VOF関数
0.orig
96
$ ls 0.orig 0.origディレクトリ内のファイル、ディレクトリを表示
ファイルの中身の見方
97
$ cat 0.orig/U 0.origディレクトリ内のUの中身を出力
$ gedit 0.orig/U geditと呼ばれるエディタを利用して中身を確認、編集
$ vi 0.orig/U vimと呼ばれるエディタを利用して中身を確認、編集
$ emacs 0.orig/U emacsと呼ばれるエディタを利用して中身を確認、編集
$ less 0.orig/U 0.origディレクトリ内のUの中身を確認
各自やりすいやり方で中身を見てください
境界条件
boundaryName
{
type fixedValue;
value uniform (*x *y *z);
}
• fixedValue 固定値(Dirichlet境界条件)
(x成分 y成分 z成分)
• zeroGradient
boundaryName
{
type zeroGradient;
}
境界条件指定
• empty
境界の法線方向に勾配ゼロ
boundaryName
{
type empty;
}
境界条件指定
二次元計算をする場合に、
使用しない方向に対する境界条件
98
境界条件
• inletOutlet
boundaryName
{
type inletOutlet;
value uniform (0 0 0);
inletValue uniform (0 0 0);
}
境界条件指定
外に出て行くときは勾配ゼロ
流入する場合は流入値を設定
計算値(初期条件は流入値と同じ)
流入するときの流入値
• fixedFluxPressure
boundaryName
{
type fixedFluxPressure;
value uniform 0;
}
境界条件指定
速度境界で指定した流束になるよう
圧力修正する境界条件
初期値
99
境界条件
• totalPressure
boundaryName
{
type totalPressure;
p0 uniform 0;
}
境界条件指定
全体の圧力を規定
自由流入出条件で利用
計算値(初期条件は流入値と同じ)
• pressureInletOutletVelocity
boundaryName
{
type pressureInletOutletVelocity;
value uniform (0 0 0);
}
境界条件指定
境界面圧力勾配に応じて境界流入、
流出速度を決める自由流入出条件
初期値
100
境界条件
• noSlip
boundaryName
{
type noSlip;
}
境界条件指定
滑りなし(壁面)条件
• constantAlphaContactAngle
boundaryName
{
type constantAlphaContactAngle;
theta0 45;
limit gradient;
value uniform 0;
}
境界条件指定
静的接触角を決定
alpha(VOF関数)に利用
初期値
接触角
制限の掛け方
101
境界条件
• dynamicAlphaContactAngle
boundaryName
{
type dynamicAlphaContactAngle;
uTheta 1;
theta0 90;
thetaA 70;
thetaR 110;
limit gradient;
value uniform 0;
}
境界条件指定
動的接触角を決定
alpha(VOF関数)に利用
前進角
速度スケール
平衡接触角
後退角
制限
初期値
• symmetry
boundaryName
{
type symmetry;
}
対称境界
境界条件指定
102
境界条件
境界 圧力 速度 VOF関数
壁面 fixedFluxPressure fixedValue
noSlip
zeroGradient
constantAlphaContactAngle
dynamicAlphaContactAngle
自由流入出
(大気解放)
totalPressure pressureInletOutlet
Velocity
inletOutlet
2次元面 empty empty empty
対称面 symmetry symmetry symmetry
103
constantディレクトリの構造
constant
turbulenceProperties
transportProperties
物性値、乱流モデルの設定用ディレクトリ
polyMesh 計算格子データの格納 (計算格子作成後)
乱流モデルの設定
物性値の設定
g 重力加速度の設定
物性値や重力加速度の数値を変更する
104
$ ls constant constantディレクトリ内のファイル、ディレクトリを表示
g(重力加速度)の設定
重力加速度の次元を設定
左から順にkg, m, s, K, mol, A, cd
重力加速度のベクトルを決定
それぞれ、x,y,z方向の値を設定する
重力加速度を条件に応じて変更する
105
dimensions [0 1 -2 0 0 0 0];
value (0 -9.81 0);
turbulenceProperties (乱流モデル) の設定
乱流モデルを指定
laminar, RAS, LES
乱流モデルを設定する場合には設定を記入する
乱流モデルに応じて設定を記入する
laminarの場合は乱流モデルを利用しないので特に必要なし
106
simulationType laminar;
transportProperties (物性値等) の設定
相の名前を指定
粘性モデル
動粘度
密度
粘性モデル
動粘度
密度
表面張力
107
phases (water air);
water
{
transportModel Newtonian;
nu 1e-06;
rho 1000;
}
air
{
transportModel Newtonian;
nu 1.48e-05;
rho 1;
}
sigma 0.07;
systemディレクトリの構造
system 計算スキーム、条件、ユーティ
リティーの設定用ディレクトリ
controlDict
fvSchemes
fvSolution
解析の実行条件の設定
離散スキームの設定
時間解法やマトリックスソルバーの設定
blockMeshDict
decomposeParDict
setFieldsDict
blockMeshの設定
並列計算時の分割設定
初期alphaの空間分布設定
108
$ ls system systemディレクトリ内のファイル、ディレクトリを表示
sampling データのサンプリングの設定
controlDict
application interFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.001;
writeControl adjustable;
writeInterval 0.05;
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
maxCo 1;
maxAlphaCo 1;
maxDeltaT 1;
#sinclude "sampling"
solver名
計算開始設定方法
計算開始時刻
計算終了設定方法
計算終了時刻
時間刻み幅
出力設定方法
出力間隔
計算結果を保存する数
出力フォーマット
出力桁数
出力ファイル圧縮の可否
時間の出力フォーマット設定
時間桁数
計算途中に計算条件を変えられるかどうかの可否
最大Courant数 (adjustableの場合有効)
最大Alpha Courant数 (adjustableの場合有効)
最大時間刻み (adjustableの場合有効)
samplingの読み込み 109
controlDict
application interFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 1;
deltaT 0.001;
writeControl adjustable;
writeInterval 0.05;
solver名(必須ではなく、書かれなくても実行する)
計算開始設定方法(firstTime: 最初の(最も古い)時間ステップから/
startTime startTime:で設定した時刻から/latestTime: 最新データから開始)
計算開始時刻
計算終了設定方法(endTime/writeNow/noWriteNow/nextWrite)
計算終了時刻
時間刻み幅
出力設定方法(timeStep: 時間刻み数指定/runTime: 解析上の時間指定
/adjustable: maxCoに調整/cpuTime: cpu時間指定/clockTime: 現時刻指定)
出力間隔(writeControlに合わせた出力間隔を入力)
110
controlDict
計算結果を保存する数(0なら全て保存、1なら現在の最終出力のみ保存、
2なら最終出力とその前の出力を保存)
出力フォーマット(ascii: ASCII形式/binary: Binary形式)
出力桁数(計算データの6桁まで出力)
出力ファイル圧縮の可否(onなら出力データはgzipになる)
時間の出力フォーマット設定(例. fixed: 0.003/scientific: 0.0e-03/ general:
fixedとscientificを切り替え)
時間桁数(デフォルトでは6桁)
計算途中に計算条件を変えられるかどうかの可否
Courant数制御する場合の最大Courant数
Courant数制御する場合の最大Alpha Courant数
Courant数制御する場合の最大時間刻み
purgeWrite 0;
writeFormat ascii;
writePrecision 6;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
maxCo 1;
maxAlphaCo 1;
maxDeltaT 1; 111
fvSchemes
ddtSchemes
{
default Euler;
}
gradScheme
{
default Gauss linear;
}
divSchemes
{
div(rhoPhi,U) Gauss linearUpwind grad(U);
}
時間進行スキーム
スキームの選択
勾配スキーム
スキームの選択
発散スキーム(対流項)
スキームの選択
112
fvSchemes
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationScheme
{
default linear;
}
snGradSchemes
{
default corrected;
}
ラプラシアンスキーム(粘性項、拡散項)
補間スキーム
セル面の法線方向勾配スキーム
スキームの選択
スキームの選択
スキームの選択
離散スキームの種類については下記参照
OpenFOAMユーザーガイド4章
OpenCAE学会 OpenFOAMによる熱移動と流れの数値解析 (森北出版) 113
fvSolution
solvers
{
"alpha.water.*"
{
nAlphaCorr 2;
nAlphaSubCycles 1;
cAlpha 1;
MULESCorr yes;
nLimiterIter 5;
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-8;
relTol 0;
}
…
各変数の代数方程式の解法、残差の決定
代数方程式の解法
スムーザー
残差(打ち切りの条件1)
初期残差に対する比(打ち切りの条件2)
(relTol = 0と置くとtolelanceのみで決まる)
VOF関数の保存方程式の修正回数
時間刻みを変更するサブサイクル回数
圧縮を決定するca値
(ESI版の場合icAlpha,scAlphaをここに加えれば
オプション利用可能)
MULESの修正
制限回数
114
fvSolution
PIMPLE
{
momentumPredictor no;
nOuterCorrectors 1;
nCorrectors 3;
nNonOrthogonalCorrectors 0;
}
relaxationFactors
{
equations
{
".*" 1;
}
}
PIMPLE法の設定
速度予測
外部反復回数
PIMPLE法の反復回数
追加的な反復計算回数設定
(非直交性の大きい計算格子を利用している場合に
この係数を大きくすると計算が安定)
PIMPLE法に利用する緩和係数
変数毎に記載
(1ならPISO法と同じになる)
0~1の間を設定する
115
blockMeshDict
116
scale 0.146;
vertices
(
(0 0 0)
(2 0 0)
(2.16438 0 0)
(4 0 0)
…
);
blocks
(
hex (0 1 5 4 12 13 17 16) (23 8 1) simpleGrading (1 1 1)
…
);
スケールを変更(今回はmmスケールに)
計算領域の頂点を設定
計算領域の大きさに応じて変更
順に0,1,2と名付けられる
頂点を取り囲むブロックを設定
上で名付けた頂点を選択し、分割数を記入
blockMeshDict
117
boundary
(
leftWall
{
type wall;
faces
(
(0 12 16 4)
(4 16 20 8)
);
}
境界面を設定
境界名
境界の種類
面を取り囲む4つの頂点を指定
詳細に関してはOpenFOAM user guide参照
decomposeParDict
118
numberOfSubdomains 4;
method simple;
coeffs
{
n (2 2 1);
}
並列分割数を決定
分割方法を決定
simple, scotch等さまざまなオプションがある
simpleを指定した場合には(x y z)方向の
それぞれの分割数を指定する
並列分割数と対応するようにする
並列計算を行わない場合は必要なし
setFieldsDict
119
defaultFieldValues
(
volScalarFieldValue alpha.water 0
);
regions
(
boxToCell
{
box (0 0 -1) (0.1461 0.292 1);
fieldValues
(
volScalarFieldValue alpha.water 1
);
}
);
全体のデフォルト値設定
直方体領域指定
値
直方体領域指定のオプション
他にも様々なオプションがある
計算の実行
120
$ ./Allrun Allrunスクリプトを実行
もしくは、
$ cp –r 0.orig 0
$ blockMesh
$ setFields
$ interFoam
0.origを0へとコピー
blockMeshによって計算格子作成
setFieldsによってaの初期分布を作成
interFoamによって計算実行
計算結果の可視化
121
$ paraFoam paraviewを起動
①
計算結果の可視化
122
① ①場の変数変更
alpha.water
に変更
計算結果の可視化
123
① ①時間変更
本日の内容
2.1. OpenFOAMにおける混相流解析
2.1.1 気液混相流
2.1.2 気液混相流+相変化
2.1.3 固液相変化
2.1.4 流体+粒子運動
124
2.2. OpenFOAMにおける気液混相流
2.2.1 interFoam
2.2.2 interIsoFoam
2.2.3 VOF法における問題点
2.3. 気液混相流を用いたtutorialの実行
2.3.1 interFoamを利用したdambreakの実行
2.3.2 interIsoFoamを利用したdambreakの実行
OpenFOAMのtutorialの場所
125
$ foam
$ cd tutorials
OpenFOAMのproject directoryに移動
OpenFOAMのproject directory内のtutorialが格納されている
ディレクトリに移動
もしくは
$ tut OpenFOAMのtutorialが格納されているディレクトリに移動
$WM_PROJECT_DIR/tutorials
格納されている場所
OpenFOAMのtutorialの種類
126
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
Allclean Alltest Allcollect AutoTest Allrun
IO compressible financial incompressible modules resources
basic discreteMethods finiteArea lagrangian multiphase stressAnalysis
DNS combustion electromagnetics heatTransfer mesh preProcessing
verificationAndValidation
All*** tutorialを実行するスクリプト
その他 tutorial
実行するsolverの種類に応じてディレクトリが異なる
今回はmultiphaseのtutorialを使います
$ cd multiphase multiphaseの中に移動
multiphaseのtutorial
127
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
MPPICInterFoam compressibleMultiphaseInterFoam interIsoFoam
multiphaseInterFoam reactingTwoPhaseEulerFoam cavitatingFoam driftFluxFoam
interMixingFoam overInterDyMFoam twoLiquidMixingFoam
compressibleInterDyMFoam icoReactingMultiPhaseInterFoam
interPhaseChangeDyMFoam potentialFreeSurfaceDyMFoam twoPhaseEulerFoam
compressibleInterFoam interCondensatingEvaporatingFoam interPhaseChangeFoam
potentialFreeSurfaceFoam compressibleInterIsoFoam interFoam
multiphaseEulerFoam reactingMultiphaseEulerFoam
各種solverの名前のディレクトリ
solverごとにtutorialが格納されている
今回はinterFoamとinterIsoFoamのtutorialを使います
$ cd interIsoFoam interFoamの中に移動
interFoam/laminarのtutorial
128
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
damBreak discInConstantFlowCyclocBCs ….
damBreakWithObstacle discInReversedVortexFlow
…
各種tutorialが格納されている
今回はdamBreakのtutorialを使います
$ cp -r damBreak $FOAM_RUN/damBreakIso
$FOAM_RUN(計算実行用ディレクトリ)
の中にdamBreakIsoとしてdamBreakをコピー
$ run runの中に移動
damBreakのtutorial (interIsoFoam)
129
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
damBreak
damBreakIso
$ cd damBreakIso
前回利用したtutorial
今回利用するtutorial
damBreakIsoの中に移動
$ ls 今いるディレクトリ内のファイル、ディレクトリを表示
0.orig Allclean Allrun Allrun-parallel constant system
Allrunは前処理からプログラム実行まで全てを実行するスクリプト
Allrun-parallelは前処理からプログラム実行までを行うスクリプトで、並列計算を行う
Allcleanは計算データを消去するスクリプト
ファイルの中身の見方(復習)
130
$ cat 0.orig/U 0.origディレクトリ内のUの中身を出力
$ gedit 0.orig/U geditと呼ばれるエディタを利用して中身を確認、編集
$ vi 0.orig/U vimと呼ばれるエディタを利用して中身を確認、編集
$ emacs 0.orig/U emacsと呼ばれるエディタを利用して中身を確認、編集
$ less 0.orig/U 0.origディレクトリ内のUの中身を確認
各自やりすいやり方で中身を見てください
計算の実行
131
$ ./Allrun Allrunスクリプトを実行
もしくは、
$ cp –r 0.orig 0
$ blockMesh
$ setFields
$ interIsoFoam
0.origを0へとコピー
blockMeshによって計算格子作成
setFieldsによってaの初期分布を作成
interIsoFoamによって計算実行
計算結果の可視化
132
$ paraFoam paraviewを起動
①
計算結果の可視化
133
① ①場の変数変更
alpha.water
に変更
計算結果の可視化
134
①
①時間変更
先に進めて時間の余った方
135
是非以下のことにチャレンジしてみてください
• ダムの形を変えて計算してみてください
ヒント:system/setFieldsDictを編集し、setFieldsで初期位置を変更
• 堰の形を変えて計算してみてください
ヒント:system/blockMeshDictを編集し、blockMeshで形状を変更
• interFoam, interIsoFoamの別のtutorialを試してください
ヒント: $FOAM_TUTORIALS/multiphase/interFoam内の
tutorialを$FOAM_RUNにコピーし実行
$FOAM_TUTORIALS/multiphase/interIsoFoam内の
tutorialを$FOAM_RUNにコピーし実行
136
• Copyright © 2022 The Open CAE Society of Japan
• This work is licensed under a Creative Commons
• Attribution-NonCommercial 4.0 International License.
• http://creativecommons.org/licenses/by-nc/4.0/
137

Mais conteúdo relacionado

Mais procurados

About multiphaseEulerFoam
About multiphaseEulerFoamAbout multiphaseEulerFoam
About multiphaseEulerFoam守淑 田村
 
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズOpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズmmer547
 
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』Fumiya Nozaki
 
Dynamic Mesh in OpenFOAM
Dynamic Mesh in OpenFOAMDynamic Mesh in OpenFOAM
Dynamic Mesh in OpenFOAMFumiya Nozaki
 
Mixer vessel by cfmesh
Mixer vessel by cfmeshMixer vessel by cfmesh
Mixer vessel by cfmeshEtsuji Nomura
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてFumiya Nozaki
 
OpenFOAMの壁関数
OpenFOAMの壁関数OpenFOAMの壁関数
OpenFOAMの壁関数Fumiya Nozaki
 
Paraviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力するParaviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力するtakuyayamamoto1800
 
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMBoundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMFumiya Nozaki
 
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能についてOpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能についてFumiya Nozaki
 
OpenFOAMにおけるDEM計算の力モデルの解読
OpenFOAMにおけるDEM計算の力モデルの解読OpenFOAMにおけるDEM計算の力モデルの解読
OpenFOAMにおけるDEM計算の力モデルの解読takuyayamamoto1800
 
OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法takuyayamamoto1800
 
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-Fumiya Nozaki
 
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化takuyayamamoto1800
 
自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた
自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた
自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた守淑 田村
 
OpenFOAMスレッド並列化のための基礎検討
OpenFOAMスレッド並列化のための基礎検討OpenFOAMスレッド並列化のための基礎検討
OpenFOAMスレッド並列化のための基礎検討Fixstars Corporation
 
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)takuyayamamoto1800
 
OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMソルバの実行時ベイズ最適化OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMソルバの実行時ベイズ最適化Masashi Imano
 

Mais procurados (20)

About multiphaseEulerFoam
About multiphaseEulerFoamAbout multiphaseEulerFoam
About multiphaseEulerFoam
 
OpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズOpenFOAM LES乱流モデルカスタマイズ
OpenFOAM LES乱流モデルカスタマイズ
 
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
OpenFOAM v2.3.0のチュートリアル 『oscillatingInletACMI2D』
 
Dynamic Mesh in OpenFOAM
Dynamic Mesh in OpenFOAMDynamic Mesh in OpenFOAM
Dynamic Mesh in OpenFOAM
 
Mixer vessel by cfmesh
Mixer vessel by cfmeshMixer vessel by cfmesh
Mixer vessel by cfmesh
 
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件についてOpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
OpenFOAM の cyclic、cyclicAMI、cyclicACMI 条件について
 
OpenFOAMの壁関数
OpenFOAMの壁関数OpenFOAMの壁関数
OpenFOAMの壁関数
 
Paraviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力するParaviewの等高面を綺麗に出力する
Paraviewの等高面を綺麗に出力する
 
Boundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAMBoundary Conditions in OpenFOAM
Boundary Conditions in OpenFOAM
 
OpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能についてOpenFOAM の Function Object 機能について
OpenFOAM の Function Object 機能について
 
OpenFOAMにおけるDEM計算の力モデルの解読
OpenFOAMにおけるDEM計算の力モデルの解読OpenFOAMにおけるDEM計算の力モデルの解読
OpenFOAMにおけるDEM計算の力モデルの解読
 
OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法OpenFOAMを用いた計算後の等高面データの取得方法
OpenFOAMを用いた計算後の等高面データの取得方法
 
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
OpenFOAM -空間の離散化と係数行列の取り扱い(Spatial Discretization and Coefficient Matrix)-
 
ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化ParaviewでのParticle Tracerを用いた可視化
ParaviewでのParticle Tracerを用いた可視化
 
自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた
自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた
自宅PCでinterFoamを使ってミルククラウンの計算ができるかやってみた
 
OpenFOAMスレッド並列化のための基礎検討
OpenFOAMスレッド並列化のための基礎検討OpenFOAMスレッド並列化のための基礎検討
OpenFOAMスレッド並列化のための基礎検討
 
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
OpenFOAMに実装したS-CLSVOF法検証(静止気泡のLaplace圧)
 
OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMソルバの実行時ベイズ最適化OpenFOAMソルバの実行時ベイズ最適化
OpenFOAMソルバの実行時ベイズ最適化
 
Of tutorials v1806
Of tutorials v1806Of tutorials v1806
Of tutorials v1806
 
rhoCentralFoam in OpenFOAM
rhoCentralFoam in OpenFOAMrhoCentralFoam in OpenFOAM
rhoCentralFoam in OpenFOAM
 

Mais de takuyayamamoto1800

OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索takuyayamamoto1800
 
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumOpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumtakuyayamamoto1800
 
OpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow smallOpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow smalltakuyayamamoto1800
 
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...takuyayamamoto1800
 
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読takuyayamamoto1800
 
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読takuyayamamoto1800
 
How to get contour surface position by openfoam
How to get contour surface position by openfoamHow to get contour surface position by openfoam
How to get contour surface position by openfoamtakuyayamamoto1800
 
Estimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAMEstimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAMtakuyayamamoto1800
 
熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価takuyayamamoto1800
 
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)takuyayamamoto1800
 
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方takuyayamamoto1800
 

Mais de takuyayamamoto1800 (12)

OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
OpenCAEシンポジウム発表資料-OpenFOAMのVOF法における計算時間、計算誤差最小条件の探索
 
OpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity mediumOpenFOAM benchmark for EPYC server: cavity medium
OpenFOAM benchmark for EPYC server: cavity medium
 
OpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow smallOpenFOAM benchmark for EPYC server cavity flow small
OpenFOAM benchmark for EPYC server cavity flow small
 
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
OpenFOAM benchmark for EPYC server -Influence of coarsestLevelCorr in GAMG so...
 
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
OpenFOAMのDEM解析のpatchInteractionModelクラスの解読
 
OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読OpenFOAMにおけるDEM計算の衝突モデルの解読
OpenFOAMにおけるDEM計算の衝突モデルの解読
 
How to get contour surface position by openfoam
How to get contour surface position by openfoamHow to get contour surface position by openfoam
How to get contour surface position by openfoam
 
Estimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAMEstimation of numerical schemes in heat convection by OpenFOAM
Estimation of numerical schemes in heat convection by OpenFOAM
 
熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価熱流体解析における離散スキームの評価
熱流体解析における離散スキームの評価
 
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
Setting and Usage of OpenFOAM multiphase solver (S-CLSVOF)
 
interFoamの検証
interFoamの検証interFoamの検証
interFoamの検証
 
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
OpenFOAMの混相流用改造solver(S-CLSVOF法)の設定・使い方
 

OpenFOAMによる混相流シミュレーション入門