(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023117319
(43)【公開日】2023-08-23
(54)【発明の名称】シミュレーション方法、シミュレーション装置、及びプログラム
(51)【国際特許分類】
G16Z 99/00 20190101AFI20230816BHJP
【FI】
G16Z99/00
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022019957
(22)【出願日】2022-02-10
(71)【出願人】
【識別番号】000002107
【氏名又は名称】住友重機械工業株式会社
(74)【代理人】
【識別番号】100105887
【弁理士】
【氏名又は名称】来山 幹雄
(72)【発明者】
【氏名】廣田 真人
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049DD02
(57)【要約】
【課題】液滴の飛散等の現象を、ナビエストークス方程式を用いて解析可能で、かつ計算資源を削減することが可能なシミュレーション方法を提供する。
【解決手段】解析空間内の流れ場を、粒子法を用いて解析する際に、解析空間を、支配方程式として浅水方程式を用いる領域とナビエストークス方程式を用いる領域との2つの領域に区分する。2つの領域のそれぞれに複数の計算粒子を配置する。2つの領域の境界面を含むある範囲内の計算粒子に付与する物理量の値を、相手側の計算粒子に付与されている物理量の値から計算する物理量の交換を行う。2つの領域のそれぞれにおいて、物理量の交換によって物理量の値が計算された計算粒子の物理量の値を用いて支配方程式を解く。
【選択図】
図3
【特許請求の範囲】
【請求項1】
解析空間内の流れ場を、粒子法を用いて解析するシミュレーション方法であって、
前記解析空間を、支配方程式として浅水方程式を用いる領域とナビエストークス方程式を用いる領域との2つの領域に区分し、
前記2つの領域のそれぞれに複数の計算粒子を配置し、
前記2つの領域の境界面を含むある範囲内の計算粒子に付与する物理量の値を、相手側の計算粒子に付与されている物理量の値から計算する物理量の交換を行い、
前記2つの領域のそれぞれにおいて、物理量の交換によって物理量の値が計算された計算粒子の物理量の値を用いて支配方程式を解くシミュレーション方法。
【請求項2】
前記境界面を横切って移動する計算粒子の位置及び個数に基づいて、計算粒子が流入した側の領域に計算粒子を追加し、追加された計算粒子に、流出側の領域の計算粒子の持つ物理量を、流入側の領域に適用される支配方程式で扱う物理量に交換した物理量を与える請求項1に記載のシミュレーション方法。
【請求項3】
前記2つの領域のそれぞれの領域から前記境界面を超えて相手側の領域に重なるバッファ領域を定義し、
前記バッファ領域のそれぞれに計算粒子を配置し、
前記2つの領域の境界面を含むある範囲内で物理量の交換を行う際に、前記バッファ領域のそれぞれに存在する計算粒子に付与される物理量を、前記バッファ領域に重なる相手側の領域の計算粒子に付与された物理量に基づいて計算する請求項1または2に記載のシミュレーション方法。
【請求項4】
粒子法を用いて液膜の流れを解析するシミュレーション装置であって、
解析空間を、支配方程式として浅水方程式を用いる領域とナビエストークス方程式を用いる領域との2つの領域に区分する情報を含むシミュレーション条件が入力される入力部と、
前記入力部に入力されたシミュレーション条件に基づいて、前記2つの領域のそれぞれに計算粒子を配置し、前記2つの領域のそれぞれについて支配方程式を解くことにより、複数の計算粒子の位置を時間発展させる処理部と
を備え、
前記処理部は、
前記2つの領域の境界面を含むある範囲内の計算粒子に付与する物理量の値を、相手側の計算粒子に付与されている物理量の値から計算する物理量の交換を行い、
前記2つの領域のそれぞれにおいて、物理量の交換によって物理量の値が計算された計算粒子の物理量の値を用いて支配方程式を解くシミュレーション装置。
【請求項5】
粒子法を用いて液膜の流れを解析する手順をコンピュータに実行させるプログラムであって、
解析空間を、支配方程式として浅水方程式を用いる領域とナビエストークス方程式を用いる領域との2つの領域に区分する情報を含むシミュレーション条件を取得する手順と、
取得したシミュレーション条件に基づいて、前記2つの領域のそれぞれに計算粒子を配置する手順と、
前記2つの領域の境界面を含むある範囲内の計算粒子に付与する物理量の値を、相手側の計算粒子に付与されている物理量の値から計算する物理量の交換を行う手順と、
前記2つの領域のそれぞれにおいて、物理量の交換によって物理量の値が計算された計算粒子の物理量の値を用いて支配方程式を解くことにより、複数の計算粒子の位置を時間発展させる手順と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーション方法、シミュレーション装置、及びプログラムに関する。
【背景技術】
【0002】
流れ場を、スタッガードグリッドにより差分化して浅水方程式を解くことで、河川の氾濫のシミュレーションを行う技術が、下記の特許文献1に開示されている。特許文献1に開示されたシミュレーション方法では、粗い格子を用いて得られる浸水深分布を、細かい地形データで補間して、最終的に細かい浸水深分布を得る。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
河川の流れや液膜の流れのように、流路幅に対して水深の浅い流れは、壁面の形状等によってしぶきを発生し、液滴となって飛散することがある。この現象は、治水事業、排水装置及び噴霧化装置等の幅広い技術分野に関わる工学上重要な現象である。液膜の流れを二次元的に取り扱う浅水方程式では、しぶきの発生や液滴となって飛散する現象を解析することができない。
【0005】
ナビエストークス方程式に重力や表面張力等の適切な物理モデルを組み込むことで、しぶきの発生や液滴となって飛散する現象を解析することが可能である。ナビエストークス方程式を、粒子法を用いて離散化し、水深の浅い流れや薄い液膜の流れを解析するためには、計算粒子の直径を水深または液膜の厚さに対して十分小さい値にしなければならない。例えば、100mm×100mmの領域に存在する厚さ0.1mmの液膜の流れを解析するためには、計算粒子の直径を液膜の厚さの1/20程度、すなわち0.005mm程度にしなければならない。
【0006】
計算粒子の直径を0.005mmにしたとき、解析に必要な計算粒子の個数は、8×109個程度になり、膨大な計算資源を必要とすることがわかる。本発明の目的は、液滴の飛散等の現象を、ナビエストークス方程式を用いて解析可能で、かつ計算資源を削減することが可能なシミュレーション方法、シミュレーション装置、及びプログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明の一観点によると、
解析空間内の流れ場を、粒子法を用いて解析するシミュレーション方法であって、
前記解析空間を、支配方程式として浅水方程式を用いる領域とナビエストークス方程式を用いる領域との2つの領域に区分し、
前記2つの領域のそれぞれに複数の計算粒子を配置し、
前記2つの領域の境界面を含むある範囲内の計算粒子に付与する物理量の値を、相手側の計算粒子に付与されている物理量の値から計算する物理量の交換を行い、
前記2つの領域のそれぞれにおいて、物理量の交換によって物理量の値が計算された計算粒子の物理量の値を用いて支配方程式を解くシミュレーション方法が提供される。
【0008】
本発明の他の観点によると、
粒子法を用いて液膜の流れを解析するシミュレーション装置であって、
解析空間を、支配方程式として浅水方程式を用いる領域とナビエストークス方程式を用いる領域との2つの領域に区分する情報を含むシミュレーション条件が入力される入力部と、
前記入力部に入力されたシミュレーション条件に基づいて、前記2つの領域のそれぞれに計算粒子を配置し、前記2つの領域のそれぞれについて支配方程式を解くことにより、複数の計算粒子の位置を時間発展させる処理部と
を備え、
前記処理部は、
前記2つの領域の境界面を含むある範囲内の計算粒子に付与する物理量の値を、相手側の計算粒子に付与されている物理量の値から計算する物理量の交換を行い、
前記2つの領域のそれぞれにおいて、物理量の交換によって物理量の値が計算された計算粒子の物理量の値を用いて支配方程式を解くシミュレーション装置が提供される。
【0009】
本発明のさらに他の観点によると、
粒子法を用いて液膜の流れを解析する手順をコンピュータに実行させるプログラムであって、
解析空間を、支配方程式として浅水方程式を用いる領域とナビエストークス方程式を用いる領域との2つの領域に区分する情報を含むシミュレーション条件を取得する手順と、
取得したシミュレーション条件に基づいて、前記2つの領域のそれぞれに計算粒子を配置する手順と、
前記2つの領域の境界面を含むある範囲内の計算粒子に付与する物理量の値を、相手側の計算粒子に付与されている物理量の値から計算する物理量の交換を行う手順と、
前記2つの領域のそれぞれにおいて、物理量の交換によって物理量の値が計算された計算粒子の物理量の値を用いて支配方程式を解くことにより、複数の計算粒子の位置を時間発展させる手順と
を実行させるプログラムが提供される。
【発明の効果】
【0010】
ナビエストークス方程式を用いる領域で、液滴の飛散等の現象を解析することができる。一部の領域で浅水方程式を用いることにより、計算資源を削減することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、液滴が発生する解析モデルの一例を示す模式図である。
【
図2】
図2は、解析空間に複数の計算粒子を配置した解析モデルを示す模式図である。
【
図3】
図3は、2つの領域間で物理用を交換する手法を説明するための模式図である。
【
図4】
図4は、液面高さHを交換する手法を説明するための模式図である。
【
図5】
図5は、ナビエストークス方程式を適用する領域のバッファ領域内の壁面、計算粒子、及び液膜の表面を示す模式図である。
【
図6】
図6は、浅水方程式の領域からナビエストークス方程式の領域へ移動する計算粒子の制御を説明するための模式図である。
【
図7】
図7は、一実施例によるシミュレーション装置のブロック図である。
【
図8】
図8は、一実施例によるシミュレーション方法の手順を示すフローチャートである。
【
図9】
図9は、シミュレーション対象の解析空間を示す模式図である。
【発明を実施するための形態】
【0012】
[流体の運動を記述するナビエストークス方程式]
本願発明の実施例について説明する前に、流体の運動を記述するナビエストークス方程式について説明する。
【0013】
流れ場の解析手段として、流れの支配方程式を離散化して数値的に解く手法が広く用いられている。ナビエストークス方程式に重力や表面張力等の適切な物理モデルを組み込むことで、水深の浅い流れ、その崩壊、及び液滴の発生現象を捉えることが可能である。例えば、重力と流体の表面張力を考慮する場合の、流体の圧縮性を無視した非圧縮性流れの連続の式及びナビエストークス方程式は次のように書ける。
【数1】
【数2】
ここで、uは速度ベクトル、tは時間、ρは密度、pは圧力、及びμは粘性係数を表す。gは重力ベクトル、σは表面張力係数、κは自由表面の曲率、及びnは自由表面の単位法線ベクトルである。
【0014】
自由表面を有する流れ場の数値解析には、計算点が流れとともに移動するラグランジュ型解法(粒子法と表現される場合もある。)が適している。粒子法では、計算点の移動によって液面の形状及び液滴の形状等の自由表面の形状変化が自動的に表現される。このため、自由表面が大きく変化したり崩壊したりするような流れ場でも計算が破綻せず、安定した解析を行うことができる。流れ場のラグランジュ型解法として、例えばSPH(Smoothed Particle Hydrodynamics)法を用いることができる。
【0015】
[SPH法の概要]
SPH法は、連続体を粒子の集合を用いて離散化し、流れ場の時間発展を計算するラグランジュ型の数値計算手法である。粒子1個の質量分布として、連続かつ微分可能なカーネル関数を用いるとともに、カーネル関数の微分係数の重ね合わせを空間微分とする離散化モデルである。
【0016】
SPH法では、粒子の質量mはカーネル関数Wによってその周囲に分配され、連続的に分布しており、密度場は、その重ね合わせとして与えられる。すなわち、i番目の粒子の位置x
iにおける密度ρ
iは、以下の式で表される。
【数3】
カーネル関数Wとして、例えば、以下の関数を用いることができる。以下の関数は、C2Wendlandカーネルと呼ばれる。
【数4】
【0017】
ここで、xijは位置ベクトルxiと位置ベクトルxjとの差の絶対値であり、q=xij/hである。hは、平滑化長さであり、カーネル幅ともいわれる。カーネル幅hは、複数の粒子を同一の質量及び物性密度の球体に置き換えた等価球の直径に等しい。本明細書において、カーネル幅hを粒子の直径という場合がある。
【0018】
任意の位置x
iにおける任意のスカラー量A及びベクトル量Aの値は、カーネル関数の重ね合わせによって以下の式で表すことができる。
【数5】
ここで、V
j=m
j/ρ
jである。下付き文字jは、j番目の粒子の持つ物理量の値であることを意味する。
【0019】
任意のスカラー量Aの勾配は、カーネル関数の微分係数の重ね合わせによって以下の式で表される。
【数6】
【0020】
ここで、∇W(x
ij,h)はカーネル関数の導関数であり、カーネル関数としてC2Wendlandカーネルを用いる場合、以下の式で表される。
【数7】
【0021】
任意のベクトル量Aに対する発散は、式(6)と同様に、以下の式で表すことができる。
【数8】
【0022】
任意のスカラー量Aに対する2次導関数は、例えば以下の公式を用いて算出することができる。
【数9】
【0023】
[SPH法を用いたナビエストークス方程式の離散化手法]
次に、SPH法を用いたナビエストークス方程式の離散化手法について説明する。
非圧縮性流れの支配方程式である式(1)及び式(2)を、SPH法を用いて離散化すると、例えば次のように表すことができる。
【数10】
【数11】
【数12】
【数13】
ここで、下付き文字i及びjは、粒子に付与される粒子番号を表す。式(12)は、流体が弱い圧縮性を持つという仮定により導出される方程式である。cは仮想的な音速、ρ
0は基準密度を表す。音速cの値は、例えば流れ場の代表速度の10倍程度に設定することができる。基準密度ρ
0は、例えば作動流体の密度に設定することができる。式(10)~式(13)に示す支配方程式は、非圧縮性流れのSPH法による解法として広く用いられている。
【0024】
[SPH法を用いた浅水方程式の離散化手法]
次に、SPH法を用いた浅水方程式の離散化手法について説明する。浅水方程式を用いることにより、液膜流れを二次元的に解析することができる。
【0025】
浅水方程式は、以下の式で与えられる。
【数14】
【数15】
【数16】
【数17】
ここで、Hは液膜の厚さ(液面の高さ)、tは時間、D/Dtは時間での全微分、ρは密度、uは速度ベクトル、pは圧力、μは粘性係数、gは重力ベクトル、nは液面が流れる壁面(曲面)の法線ベクトル、σは表面張力係数、κは液膜の曲率、g
tは重力ベクトルの曲面に対する接線方向成分、θは液膜の接触角、n
clは液膜の縁の法線ベクトルを表す。式(16)の右辺第1項は重力による静水圧力を表し、第2項は液膜の表面張力によるラプラス圧を表す。式(17)の右辺第1項は、液膜に作用する重力加速度、第2項は粘性摩擦力、第3項は液膜の縁に作用する表面張力を表す。
【0026】
液面の曲率κは、以下の式で表すことができる。
【数18】
ここで、下付き文字x、yは、対応する空間方向の導関数を表す。例えば、H
x、H
xxは、以下の式で表される。
【数19】
【0027】
液膜の厚さHが十分薄い場合、その1次導関数H
x、H
yは1より十分小さくなるため、H
xの2乗の項及びH
yの2乗の項は無視することができる。したがって、式(18)は、以下のように簡略化することができる。
【数20】
【0028】
SPH法を用いて浅水方程式を離散化すると、次のように書ける。
【数21】
【数22】
【数23】
【数24】
【数25】
【0029】
浅水方程式は、液膜の厚さHが、計算粒子に付与される物理量として表現される二次元的な方程式であるため、支配方程式の離散化の際に、液膜の厚さを基準として計算粒子の直径を設定する必要がない。このため、100mm×100mmの領域に存在する厚さ0.1mmの液膜を、浅水方程式を用いて離散化する場合、計算粒子の直径は、例えば液膜の厚さより大きな1mm程度に設定することができる。このとき、計算粒子の個数は1×104個程度になる。これに対してナビエストークス方程式を離散化する場合、計算粒子の直径を液膜の厚さに比べて十分小さくする必要がある。このため、計算粒子の個数が多くなってしまう。浅水方程式を用いることにより、計算粒子の個数が大幅に減り、計算資源を削減することができる。
【0030】
[浅水方程式を用いる場合の課題]
ナビエストークス方程式に代えて浅水方程式を用いることにより、計算資源を削減することができる。ところが、浅水方程式では、液面からしぶきが発生し、液滴となって飛散する現象は、浅水方程式の前提条件から逸脱しているため、浅水方程式を用いて解くことはできず、ナビエストークス方程式を用いなければならない。
【0031】
次に、
図1を参照して、液滴が発生する解析モデルの一例について説明する。
図1は、液滴が発生する解析モデルの一例を示す模式図である。水平面に対して傾斜した壁面10が液膜11で覆われている。液膜11は、重力によって斜め下方に向かって流れ、壁面10の下端に達した液膜11は、液滴12となって落下する。
【0032】
落下する液滴12を含む流れ場を解析するためには、浅水方程式を用いることができず、ナビエストークス方程式を用いなければならない。流れ場全域を、ナビエストークス方程式を離散化して解くことは、有限の計算資源の観点から困難である。以下に説明する実施例では、流れ場の解析において、解析空間の液滴12が発生しないことが予想できる領域では浅水方程式を用い、液滴12が発生すると予想される領域ではナビエストークス方程式を用いる。
【0033】
図1に示した例では、解析空間を、傾斜した壁面10の下端の近傍及び液滴が落下する領域Ω
nsと、下端からある程度離れた壁面10を含む領域Ω
swとに区分する。領域Ω
swでは、浅水方程式を用いて流れ場の解析を行い、領域Ω
nsでは、ナビエストークス方程式を用いて液滴12を含む流れ場の解析を行う。
【0034】
[領域間での物理量の交換]
次に、
図2を参照して、解析空間を2つの領域に区分した場合の計算粒子の分布について説明する。
【0035】
図2は、解析空間Ωに複数の計算粒子20を配置した解析モデルを示す模式図である。壁面10が液膜で覆われている。壁面10をxz面とし、壁面10の法線方向をy方向とするxyz直交座標系を定義する。解析対象の流体はx軸の正の向きに流れている。解析空間Ωを、x方向に2つの領域Ω
swとΩ
nsとに区分する。一方の領域Ω
swには浅水方程式を適用し、他方の領域Ω
nsにはナビエストークス方程式を適用する。
【0036】
浅水方程式が適用される領域Ωswでは、複数の計算粒子20が壁面10に沿って二次元的に配置される。すなわち、高さ方向(y方向)には、計算粒子が分布しない。ナビエストークス方程式が適用される領域Ωnsでは、複数の計算粒子20が三次元的に配置される。さらに、浅水方程式が適用される領域Ωsw内の計算粒子20に付与される物理量(浅水方程式が取り扱う物理量)と、ナビエストークス方程式が適用される領域Ωns内の計算粒子20に付与される物理量(ナビエストークス方程式が取り扱う物理量)とは異なる。このため、2つの領域ΩswとΩnsとの境界面において、物理量の交換を行わなければならない。
【0037】
次に、
図3を参照して領域間で物理量を交換する手法について説明する。
図3は、2つの領域間で物理量を交換する手法を説明するための模式図である。解析空間Ωが、境界面BPで2つの領域Ω
swとΩ
nsとに区分されている。
図3では、2つの領域Ω
swとΩ
nsとを、液膜の高さ方向(y方向)に関して異なる位置に記載している。
【0038】
一方の領域Ω
swから境界面BPを越えて他方の領域Ω
ns内まで広がり、他方の領域Ω
nsに重なるバッファ領域Ω
swbを定義する。バッファ領域Ω
swb内に、領域Ω
sw内の計算粒子20と同じ大きさの複数の計算粒子20を配置する。もう一方の領域Ω
nsについても同様に、バッファ領域Ω
nsbを定義し、バッファ領域Ω
nsb内に、領域Ω
ns内の計算粒子20と同じ大きさの計算粒子20を配置する。
図3において、領域Ωsw、Ωns内の計算粒子20に相対的に濃いハッチングを付し、バッファ領域Ω
swb、Ω
nsb内の計算粒子20に相対的に淡いハッチングを付している。バッファ領域Ω
swb、Ω
nsbのそれぞれのx方向の寸法は、そのバッファ領域Ω
swb、Ω
nsb内の計算粒子20の直径の4倍以上、例えば約4倍とする。
【0039】
一方のバッファ領域Ωswb内では、領域Ωswに適用される支配方程式である浅水方程式を解かず、相手側の領域Ωnsのうちバッファ領域Ωswbと重なる領域内の計算粒子20に付与されている物理量に基づいて求められた値を、バッファ領域Ωswb内の計算粒子20の物理量として与える。同様に、他方のバッファ領域Ωnsb内では、領域Ωnsに適用される支配方程式であるナビエストークス方程式を解かず、相手側の領域Ωswのうちバッファ領域Ωnsbと重なる領域内の計算粒子20に付与されている物理量に基づいて求められた値を、バッファ領域Ωnsb内の計算粒子20の物理量として与える。
【0040】
一方の領域のバッファ領域内の計算粒子20の物理量として、相手側の領域の計算粒子に付与されている物理量に基づいて計算した値を与えることを、物理量の交換という。
図3において、物理量の交換を行う向きを白抜き矢印で表している。このように、2つの領域Ω
swとΩ
nsとの境界面BPを含むある範囲内で物理量の交換を行う。流体の圧縮性を無視できる場合、支配方程式を解くために必要な物理量は、液面の高さH、速度ベクトルu、及び圧力pである。したがって、領域間でこれらの物理量を交換しなければならない。以下、これらの物理量を効果する手法について説明する。
【0041】
[液面高さHの交換]
次に、
図4を参照して、液面高さHを交換する手法について説明する。
図4は、液面高さHを交換する手法を説明するための模式図である。
図4に示すように、浅水方程式を解く領域Ω
swでは、液面の高さHが式(21)を用いて計算されるため、高さ方向(y方向)の粒子分布は存在しない。領域Ω
sw内の計算粒子の直径をh
swと標記する。
【0042】
ナビエストークス方程式を解く領域Ω
nsでは、高さ方向にも計算粒子20が分布しており、液膜の表面を構成している計算粒子20Sのy方向の位置によって、液面の高さが与えられる。
図4において、液膜の表面を構成している計算粒子20Sにハッチングを付している。領域Ω
ns内の計算粒子20の直径をh
nsと標記する。
【0043】
浅水方程式を解く領域Ω
swのバッファ領域Ω
swb内のj番目の計算粒子20の位置において、j番目の計算粒子20に付与される液面の高さH
jは以下の式で計算することができる。
【数26】
式(26)においてiは、領域Ω
ns及びバッファ領域Ω
nsb内の計算粒子20に付された通し番号を表し、jは、領域Ω
sw及びバッファ領域Ω
swb内の計算粒子20に付された通し番号を表す。
【0044】
式(26)の右辺のΣ記号は、ナビエストークス方程式を解く領域Ωns及びそのバッファ領域Ωnsbの流体の表面を構成する計算粒子20Sについて合計することを意味する。式(26)のyiは、i番目の計算粒子20Sの高さ方向の位置を表す。(xi-xj)xzは、バッファ領域Ωswb内のj番目の計算粒子20と、相手側の領域Ωns及びバッファ領域Ωnsb内のi番目の計算粒子20との間の距離ベクトルをxz面に射影したベクトルを表す。W2dは、二次元的なカーネル関数であり、W2dとして、例えば浅水方程式を解く領域Ωswで用いられるカーネル関数と同じ関数を選ぶことができる。
【0045】
バッファ領域Ω
nsb内のi番目の計算粒子20の位置において、液面の高さH
iは、以下の式を用いて算出することができる。
【数27】
式(27)の右辺のΣ記号は、領域Ω
sw及びバッファ領域Ω
swb内の計算粒子20について合計することを意味する。
【0046】
式(27)で算出される値を用いてバッファ領域Ωnsb内の表面の計算粒子20Sの高さを変化させると、バッファ領域Ωnsb内の質量保存則に不整合を生じ、計算が不安定になることがある。バッファ領域Ωnsb内の表面の計算粒子20Sの高さは、バッファ領域Ωnsb内に流入する流れの高さ及び速度によって自動的に決まるため、バッファ領域Ωnsb内の計算粒子20及び20Sの高さを、式(27)を用いて変化させる必要はない。なお、式(27)は、後述の計算粒子の流入量の制御を行う際に用いる。
【0047】
[速度ベクトルuの交換]
次に、速度ベクトルuを交換する手法について説明する。
浅水方程式を解く場合には、高さ方向の速度分布は前提条件によって決まる。例えば、高さ方向の平均流速ベクトルをuと標記すると、速度ベクトルの高さ方向の分布u(y)として、次の放物線分布を用いることができる。
【数28】
ここで、yは高さ方向の位置を表す。式(28)の速度ベクトルの分布を用いたとき、式(17)の右辺の第2項の粘性係数μに関する項が得られる。
【0048】
ナビエストークス方程式を解く場合には、高さ方向の速度分布は、各計算粒子20に与えられている速度ベクトルの分布によって決まる。
【0049】
浅水方程式の計算粒子20が持つ速度ベクトルは、流れの高さ方向の速度ベクトルの平均値であるから、バッファ領域Ω
swb(
図3)内に存在する計算粒子20のそれぞれの速度ベクトルは、その計算粒子20の位置において、相手側の領域Ω
ns内の計算粒子20が持つ速度ベクトルの高さ方向の平均値を計算することにより求めることができる。バッファ領域Ω
swb(
図3)内に存在する計算粒子20のそれぞれの速度ベクトルu
jは、例えば、以下の式で計算することができる。
【数29】
式(29)の右辺のΣ記号は、領域Ω
ns内の計算粒子20について合計することを意味する。
【0050】
次に、ナビエストークス方程式を解く領域Ω
nsのバッファ領域Ω
nsb内の計算粒子20の速度ベクトルuの値を求める方法について説明する。計算粒子20のそれぞれのxz面内の位置における速度ベクトルを、相手側の領域Ω
sw内の計算粒子20の速度ベクトルから算出し、式(28)を用いて、バッファ領域Ω
nsb内の計算粒子20のy方向の位置に応じた速度ベクトルに補正すればよい。例えば、バッファ領域Ω
nsb内の位置(x
i,y
i,z
i)の計算粒子20の速度ベクトルu
iは、以下の式で計算することができる。
【数30】
式(30)の右辺のΣ記号は、領域Ω
sw内の計算粒子20について合計することを意味する。
【0051】
[圧力pの交換]
次に、
図5を参照して圧力pを交換する手法について説明する。
浅水方程式を解く場合には、表面張力に起因する圧力(式(23)の右辺第2項)が液膜の表面に作用しており、それに加えて、重力に起因する圧力(式(23)の右辺第1項)が静水圧力として重力方向に分布していると考えることができる。これらの値は、式(26)によって得られるバッファ領域Ω
swb内の計算粒子20が持つ高さH
jの値を用いて算出することができる。
【0052】
図5は、バッファ領域Ω
nsb内の壁面10、計算粒子20、及び液膜の表面13を示す模式図である。傾斜した壁面10が、複数の計算粒子20で表される液膜11で覆われている。壁面10に平行な面をxz面とするxyz直交座標系を定義する。計算粒子20に重力加速度gが作用する。i番目の計算粒子20の位置(x
i,y
i,z
i)における壁面10の単位法線ベクトルをn
iと標記する。液膜の表面13の高さH
iは、その位置のy座標で定義される。
【0053】
ナビエストークス方程式を解く場合には、高さ方向の圧力分布は、計算粒子20のそれぞれに付与されている圧力の分布によって決まる。例えば液膜の表面13における圧力をゼロとしてバッファ領域Ω
nsb内の計算粒子20に付与される圧力p
iは以下の式で計算することができる。
【数31】
ここで、ρ
0は式(12)の基準密度を表す。H
iは、液面13の高さであり、式(26)のx
jに計算粒子20の位置を代入することによって計算することができる。
【0054】
[浅水方程式の領域からナビエストークス方程式の領域へ移動する計算粒子の制御]
次に、
図6を参照して、浅水方程式を適用する領域Ω
swからナビエストークス方程式を適用する領域Ω
nsへ移動する計算粒子20の制御について説明する。
【0055】
図6は、浅水方程式の領域からナビエストークス方程式の領域へ移動する計算粒子の制御を説明するための模式図である。
図3に示した模式図と同様に、領域Ω
swに接続されたバッファ領域Ω
swbが定義され、領域Ω
nsに接続されたバッファ領域Ω
nsbが定義されている。領域Ω
swから領域Ω
nsへの流体の流れがある場合、その速度に応じてバッファ領域Ω
nsbの端面に計算粒子20を追加する必要がある。
【0056】
まず、バッファ領域Ωnsbの端面に複数の格子30を配置する。ここで、「端面」とは、領域Ωnsとの境界面以外の表面のうち、x軸と交差する面を意味する。複数の格子30のそれぞれを、計算粒子20を追加する候補位置とする。
【0057】
次に、格子30の配置方法の一例について説明する。まず、解析空間Ω全体に、格子の一辺の長さが、領域Ωns内の計算粒子20の直径hnsとほぼ等しい直交等間隔格子を張る。この複数の格子のうちバッファ領域Ωnsbの内部にあって、バッファ領域Ωnsbの端面からの距離が21/2×hnsよりも近い位置に中心点を持つ格子を、バッファ領域Ωnsbの端面に配置する複数の格子30として選択する。
【0058】
複数の格子30に通し番号kを付す。それぞれの格子30において、以下の2つの式を満たす場合、その格子からバッファ領域Ω
nsb内に流体が流入していると判定することができる。
【数32】
【数33】
ここで、添え字kは、k番目の格子30を意味する。H
kは、k番目の格子30の位置において、式(27)によって得られる液面の高さを表す。u
swkは、k番目の格子30の位置において、式(30)によって得られる速度ベクトルを表す。n
kは、k番目の格子30の位置におけるバッファ領域Ω
nsbの端面の外向きの単位法線ベクトルを表す。
【0059】
式(32)は、k番目の格子30の高さykが、液面の高さHkより低いことを意味する。式(33)は、k番目の格子30の位置における速度ベクトルが、バッファ領域Ωnsbの内側を向いていること、すなわちバッファ領域Ωnsbの端面を通してバッファ領域Ωnsb内に流体が流入していることを意味する。
【0060】
流体が流入していると判定された格子30において、単位時間あたりに領域Ω
nsへ流入する計算粒子20の個数は、流速の高さ方向の分布を考慮して、以下の式で表すことができる。
【数34】
【数35】
ここで、V
kは、k番目の格子30の体積を表す。N
kは、格子30ごとに定義される変数である。
【0061】
領域Ωnsへ流入させる計算粒子20の位置、個数、及び時刻は、式(35)で与えられる微分方程式を解くことにより算出することができる。具体的には、格子30のそれぞれに定義された変数Nkの初期値を0とし、式(35)にしたがって変数Nkを時間発展させる。変数Nkの値が1になった時刻において、k番目の格子30の位置に計算粒子20を追加し、変数Nkの値を0にする。新たに追加した計算粒子20に与える物理量は、相手側の領域Ωsw内の計算粒子20が持つ物理量に基づいて、物理量を交換する手法を用いて求めることができる。
【0062】
領域Ωswから外に流出した計算粒子20は、領域Ωswにおける解析対象から除外する。この操作を繰り返すことで、流体の流れに応じて領域Ωnsに計算粒子20が追加される。
【0063】
[ナビエストークス方程式の領域から浅水方程式の領域へ移動する計算粒子の制御]
次に、ナビエストークス方程式を適用する領域Ωnsから浅水方程式を適用する領域Ωswへ流体が流れている場合の計算粒子20の制御について説明する。
【0064】
ナビエストークス方程式の領域Ωnsから浅水方程式の領域Ωswに流体が流入している場合も、上述の場合と同様に、計算粒子20を追加する位置、個数、及び時刻を算出することができる。ただし、浅水方程式は二次元的であるため、バッファ領域Ωswbの端面に配置する格子を高さ方向に分布させる必要がない。また、液面の高さHkは、式(26)を用いて計算する。速度ベクトルukは、式(29)を用いて計算する。
【0065】
[実施例によるシミュレーション装置及びシミュレーション方法]
次に、
図7及び
図8を参照して、一実施例によるシミュレーション装置及びシミュレーション方法について説明する。
【0066】
図7は、一実施例によるシミュレーション装置のブロック図である。本実施例によるシミュレーション装置は、入力部40、処理部41、出力部42、及び記憶部43を含む。入力部40から処理部41にシミュレーション条件等が入力される。さらに、ユーザから入力部40に各種指令(コマンド)等が入力される。入力部40は、例えば通信装置、リムーバブルメディア読取装置、キーボード、ポインティングデバイス等で構成される。
【0067】
処理部41は、入力されたシミュレーション条件及び指令に基づいてシミュレーションを実行する。さらに、シミュレーション結果を出力部42に出力する。シミュレーション結果には、例えば、シミュレーション対象物を構成する粒子の位置の時間変化等を表す情報が含まれる。処理部41は、例えばコンピュータの中央処理ユニット(CPU)を含む。本実施例によるシミュレーション方法の各手順をコンピュータに実行させるためのプログラムが、記憶部43に記憶されている。出力部42は、通信装置、リムーバブルメディア書込み装置、ディスプレイ等を含む。
【0068】
図8は、本実施例によるシミュレーション方法の手順を示すフローチャートである。処理部41(
図7)が記憶部43(
図7)に格納されているプログラムを実行することにより、
図8に示した各ステップの処理が実行される。
【0069】
処理部41が、入力部40に入力されたシミュレーション条件を取得する(ステップS1)。シミュレーション条件には、シミュレーション対象の流体を定義する情報、境界条件、初期条件等が含まれる。シミュレーション対象の流体を定義する情報には、流体の密度、粘度等の物性値が含まれる。境界条件には、解析空間Ω(
図3)の形状及び大きさを指定する情報、解析空間Ωを複数の領域(例えば領域Ω
sw、Ω
ns(
図3))に区分するための情報、各領域に適用される支配方程式を指定するための情報、区分された領域のそれぞれにおける計算粒子20(
図3)の直径を指定する情報、バッファ領域(例えばバッファ領域Ω
swb、Ω
nsb(
図3))を定義するための情報等が含まれる。初期条件には、流体の初期物性値を指定する方法、複数の計算粒子20を解析空間Ωに配置するための情報等が含まれる。
【0070】
次に、入力されたシミュレーション条件に基づいて、解析空間Ωを複数の領域(例えば領域Ω
sw、Ω
ns(
図3))に区分し、各領域内で用いる支配方程式を設定する(ステップS2)。次に、各領域に、バッファ領域(例えばバッファ領域Ω
swb、Ω
nsb(
図3))を定義する(ステップS3)。次に、区分された領域及びバッファ領域に、それぞれの領域に適用される支配方程式に応じた複数の計算粒子20を配置する(ステップS4)。領域Ω
sw、Ω
ns内の計算粒子20のそれぞれの物理量には初期値を与える。
【0071】
計算粒子20を配置した後、バッファ領域内の計算粒子20が持つ物理量の値を計算する(ステップS5)。例えば、バッファ領域Ωswb、Ωnsbにそれぞれ重なる相手側の領域Ωns、Ωswの計算粒子20に付与されている物理量の値に基づいて、バッファ領域Ωswb、Ωnsbの計算粒子20に付与される物理量の値を計算する(物理量の交換を行う)。
【0072】
区分された複数の領域の各々について支配方程式を解くことにより、計算粒子20に付与される物理量を計算する(ステップS6)。次に、区分された複数の領域の各々について、計算粒子20の個数の制御を行う(ステップS7)。例えば、式(32)~式(35)を用いて、流体が流入する側の領域に新たに計算粒子20を追加する。
【0073】
次に、区分された複数の領域、及びバッファ領域内の各々に含まれる計算粒子20に付与されている物理量及び位置を更新する(ステップS8)。ステップS5からステップS8までの手順を、解析終了条件が満たされるまで繰り返し実行する(ステップS9)。解析終了条件が満たされると、処理部41は出力部42に解析結果を出力する(ステップS10)。
【0074】
[優れた効果]
次に、上記実施例の優れた効果について説明する。
上記実施例では、解析空間の一部の領域について、二次元的な浅水方程式を用いて解析を行うため、解析空間の全域について三次元のナビエストークス方程式を用いて解析を行う場合と比べて、計算資源の削減が可能である。また、しぶきや液滴等が発生すると想定される領域については、ナビエストークス方程式を用いて解析を行うため、浅水方程式では解析できない現象を解析することが可能である。
【0075】
異なる支配方程式が適用される2つの領域の間で、計算粒子に付与される物理量の交換を行うことにより、異なる支配方程式が適用される2つの領域の間で物理量の連続性を確保することができる。一方の領域から他方の領域に流れる流体の速度ベクトルに応じて計算粒子の除去及び追加を行うことにより、一方の領域から他方の領域に流れる流体の流れを再現することができる。
【0076】
さらに、区分された複数の領域から相手側の領域に入り込むバッファ領域を定義して物理量の交換を行い、バッファ領域の端面に張られた格子を用いて計算粒子の流入を制御するため、解析空間を任意の形状に区分することが可能である。
【0077】
[実際のシミュレーション結果]
次に、
図9~
図10Bを参照して、本実施例による方法で実際にシミュレーションを行った結果について説明する。
【0078】
図9は、シミュレーション対象の解析空間Ωを示す模式図である。解析空間Ωは直方体である。直方体の各面に直交する座標軸を持つxyz直交座標系を定義する。解析空間Ωのx方向の寸法Lx(長さ)を20mとし、y方向の寸法Ly(高さ)を2mとし、z方向(
図9の奥行方向)の寸法Lzを1.6mとした。y軸の負の向きに重力加速度gが作用する。初期状態において、解析空間Ωのx方向の中心からx軸の負の側、かつ高さLyiが1m以下の領域に水15が配置されている。水が配置された領域のx方向の寸法Lxiは10mである。水15は重力によって駆動され、解析空間Ωのx軸の正の向きに流れる。
【0079】
解析空間Ωのx方向の中心からx軸の正の向きに長さLx0だけ移動した位置を境界面とし、境界面よりx軸の負側の領域Ωswに浅水方程式を適用し、正側の領域Ωnsにナビエストークス方程式を適用する。長さLx0を1mとした。水の物性値には、標準大気圧下での温度20℃における値を与えた。重力加速度gは9.81m/s2とした。壁面の境界条件には、すべり無し条件を与えた。計算粒子の直径は、2つの領域Ωsw、Ωnsの両方において0.05mに設定した。初期状態では、水の分布に合わせて、複数の計算粒子を、間隔が計算粒子の直径と等しくなるように、等間隔に配置した。解析の時間刻み幅は0.375×10-4秒とした。時刻0秒を初期状態として流れ場を時間発展させ、時刻1.5秒の時点のz方向の中央における水面の高さのx方向の分布を理論解析の結果と比較した。
【0080】
図10A及び
図10Bは、解析結果を示すグラフである。横軸はx方向の位置を単位[m]で表し、縦軸は、水面の高さを単位[m]で表す。初期状態のときに水15が配置されていた領域を破線で表している。初期状態で水15が配置されていた領域の側面の位置をx軸の原点とする。
図10Aは、解析空間Ωの全体を示すグラフであり、
図10Bは、x方向の位置が6.5m以上9.5以下の範囲を拡大して示すグラフである。
【0081】
グラフ中の破線bは理論解を示し、実線aは、本実施例によるシミュレーションによって得られた計算結果を示す。破線bの位置を中心として上方向及び下方向に延びる線分のそれぞれの長さは、計算粒子の直径に相当する。
【0082】
x座標が1mの位置が、領域ΩswとΩnsとの境界面に相当し、境界面よりx軸の負側の領域が、浅水方程式を適用して解析した領域Ωswに相当し、正側の領域が、ナビエストークス方程式を適用して解析した領域Ωnsに相当する。
【0083】
実線aで示すシミュレーションによる水面の高さは、領域ΩswとΩnsとの境界で連続している。破線bで示す理論解と、実線aで示すシミュレーション結果とを比較すると、両者の差は解析空間Ωの全域において計算粒子の直径以下であることがわかる。このシミュレーションにより、水面高さの分布が時間の経過とともに変化する流れ場を、浅水方程式とナビエストークス方程式とを組み合わせた本実施例によるシミュレーション方法を用いて効率的に解析可能であることが確認された。
【0084】
上記実施例では、SPH法を用いて解析を行っているが、上記実施例の考え方は、その他の粒子法を用いた解析にも応用可能である。
【0085】
上述の実施例は例示であり、本発明は上述の実施例に制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【符号の説明】
【0086】
10 傾斜した壁面
11 液膜
12 液滴
13 液膜の表面
15 水
20 計算粒子
20S 液膜の表面を構成する計算粒子
30 格子
40 入力部
41 処理部
42 記憶部
43 出力部