(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025004498
(43)【公開日】2025-01-15
(54)【発明の名称】シミュレーション装置、シミュレーション方法、及びプログラム
(51)【国際特許分類】
G16Z 99/00 20190101AFI20250107BHJP
G01N 11/00 20060101ALI20250107BHJP
【FI】
G16Z99/00
G01N11/00 A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023104219
(22)【出願日】2023-06-26
(71)【出願人】
【識別番号】000002107
【氏名又は名称】住友重機械工業株式会社
(74)【代理人】
【識別番号】100105887
【弁理士】
【氏名又は名称】来山 幹雄
(72)【発明者】
【氏名】廣田 真人
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049DD02
(57)【要約】
【課題】壁によって相互に隔てられた領域を含む流れ場の解析を、粒子法を用いて高精度に行うことが可能なシミュレーション装置を提供する。
【解決手段】入力部にシミュレーション条件が入力される。処理部が、シミュレーション条件に基づいて流体を複数の計算粒子で表し、複数の計算粒子のそれぞれについて支配方程式を数値的に解いて、複数の計算粒子の位置及び物理量を時間発展させる。支配方程式を解く際に、着目する計算粒子に対して、前記壁面を隔てて配置された他の計算粒子を除外する。壁面から複数の計算粒子のそれぞれの位置までの最短経路の長さ及び向きで定義される最短距離ベクトルを示す情報を算出する。2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する最短距離ベクトルを用いて、2つの計算粒子が相互に壁面を隔てて配置されているか否かを判定する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
壁面を有する空間内の流体の流れを、粒子法を用いて解析するシミュレーション装置であって、
解析すべき流体を定義する情報、解析の初期条件と境界条件、解析空間に配置される壁面の形状を定義する情報が入力される入力部と、
前記入力部に入力された情報に基づいて、前記流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれについて支配方程式を数値的に解いて、前記複数の計算粒子の位置及び物理量を時間発展させる処理部と
を備え、
前記処理部は、
前記支配方程式を解く際に、着目する計算粒子に対して、前記壁面を隔てて配置された他の計算粒子を除外して前記支配方程式を解く機能と、
前記壁面から前記複数の計算粒子のそれぞれの位置までの最短経路の長さ及び向きで定義される最短距離ベクトルを示す情報を算出する機能と、
2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する前記最短距離ベクトルを用いて、2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定する機能と
を有するシミュレーション装置。
【請求項2】
前記処理部は、
前記壁面のうち前記最短距離ベクトルを与える領域とは異なる領域から前記複数の計算粒子それぞれの位置までの経路の長さの極小値及び経路の向きで定義される極小距離ベクトルを示す情報を算出する機能を、さらに有し、
2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定する際に、2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する前記最短距離ベクトルに加えて、2つの計算粒子のそれぞれに対する前記極小距離ベクトルを用いて、2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定する請求項1に記載のシミュレーション装置。
【請求項3】
前記解析空間に張られた格子の複数の格子点のそれぞれの位置において、前記壁面から格子点までの前記最短距離ベクトルを示す情報が格納された記憶部を、さらに備え、
前記処理部は、前記複数の計算粒子のそれぞれの位置において、前記複数の格子点のそれぞれの位置に対応する前記最短距離ベクトルを示す情報を補間することにより、前記複数の計算粒子のそれぞれの位置における前記最短距離ベクトルを求める機能を、さらに有する請求項2に記載のシミュレーション装置。
【請求項4】
前記処理部は、前記複数の格子点のそれぞれの位置において、着目する格子点に対する前記最短距離ベクトル、着目する格子点の位置ベクトル、着目する格子点から所定距離以内に存在する複数の他の格子点である参照格子点のそれぞれの位置ベクトルと着目する格子点の位置ベクトルとの差、及び前記複数の参照格子点のそれぞれに対する前記最短距離ベクトルを用いて、着目する格子点に対する前記極小距離ベクトルを示す情報を算出する機能を、さらに有する請求項2または3に記載のシミュレーション装置。
【請求項5】
壁面を有する空間内の流体の流れを、粒子法を用いて解析するシミュレーション方法であって、
シミュレーション条件を与えられたコンピュータが、与えられたシミュレーション条件に基づいて、
前記流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれについて支配方程式を数値的に解いて、前記複数の計算粒子の位置及び物理量を時間発展させ、
前記支配方程式を解く際に、着目する計算粒子に対して、前記壁面を隔てて配置された他の計算粒子を除外して前記支配方程式を解き、
前記壁面から前記複数の計算粒子のそれぞれの位置までの最短経路の長さ及び向きで定義される最短距離ベクトルを示す情報を算出し、
2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する前記最短距離ベクトルを用いて、2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定するシミュレーション方法。
【請求項6】
壁面を有する空間内の流体の流れを、粒子法を用いて解析する機能をコンピュータに実現させるプログラムであって、
与えられたシミュレーション条件に基づいて、
前記流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれについて支配方程式を数値的に解いて、前記複数の計算粒子の位置及び物理量を時間発展させる機能と、
前記支配方程式を解く際に、着目する計算粒子に対して、前記壁面を隔てて配置された他の計算粒子を除外して前記支配方程式を解く機能と、
前記壁面から前記複数の計算粒子のそれぞれの位置までの最短経路の長さ及び向きで定義される最短距離ベクトルを示す情報を算出する機能と、
2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する前記最短距離ベクトルを用いて、2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーション装置、シミュレーション方法、及びプログラムに関する。
【背景技術】
【0002】
流体解析技術として、連続な場を仮想的な粒子(以下、計算粒子という。)の集合を用いて離散化して支配方程式を解くことにより、流れ場の時間発展を解析する粒子法が知られている。与えられた物体周りの流れを解析する場合には、解析条件に壁面の境界条件が課される。例えば、特許文献1及び特許文献2に、任意形状の物体に対して壁面境界条件を課す手法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010-243293号公報
【特許文献2】特開2022-80643号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
粒子法を用いて支配方程式を解く場合には、着目する計算粒子の近傍にある他の計算粒子を参照し、それらに付与された物理量を用いて、着目する計算粒子に付与された物理量を更新する。それぞれの計算粒子に対して設定される参照範囲の内部で、かつ薄い壁によって隔てられた領域に流れが存在する場合、着目する計算粒子の参照範囲が、壁によって隔てられた領域の計算粒子まで及んでしまう。
【0005】
一般に、壁によって相互に隔てられた領域を流れる流体の間では、相互作用はほとんど発生しない。ところが、従来の粒子法を用いて流れ場の解析を行うと、壁によって相互に隔てられた2つの計算粒子の間で物理量のやりとりが発生してしまう。その結果、解析精度が低下してしまう。
【0006】
本発明の目的は、壁によって相互に隔てられた領域を含む流れ場の解析を、粒子法を用いて高精度に行うことが可能なシミュレーション装置、シミュレーション方法、及びプログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明の一観点によると、
壁面を有する空間内の流体の流れを、粒子法を用いて解析するシミュレーション装置であって、
解析すべき流体を定義する情報、解析の初期条件と境界条件、解析空間に配置される壁面の形状を定義する情報が入力される入力部と、
前記入力部に入力された情報に基づいて、前記流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれについて支配方程式を数値的に解いて、前記複数の計算粒子の位置及び物理量を時間発展させる処理部と
を備え、
前記処理部は、
前記支配方程式を解く際に、着目する計算粒子に対して、前記壁面を隔てて配置された他の計算粒子を除外して前記支配方程式を解く機能と、
前記壁面から前記複数の計算粒子のそれぞれの位置までの最短経路の長さ及び向きで定義される最短距離ベクトルを示す情報を算出する機能と、
2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する前記最短距離ベクトルを用いて、2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定する機能と
を有するシミュレーション装置が提供される。
【0008】
本発明の他の観点によると、
壁面を有する空間内の流体の流れを、粒子法を用いて解析するシミュレーション方法であって、
シミュレーション条件を与えられたコンピュータが、与えられたシミュレーション条件に基づいて、
前記流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれについて支配方程式を数値的に解いて、前記複数の計算粒子の位置及び物理量を時間発展させ、
前記支配方程式を解く際に、着目する計算粒子に対して、前記壁面を隔てて配置された他の計算粒子を除外して前記支配方程式を解き、
前記壁面から前記複数の計算粒子のそれぞれの位置までの最短経路の長さ及び向きで定義される最短距離ベクトルを示す情報を算出し、
2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する前記最短距離ベクトルを用いて、2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定するシミュレーション方法が提供される。
【0009】
本発明のさらに他の観点によると、
壁面を有する空間内の流体の流れを、粒子法を用いて解析する機能をコンピュータに実現させるプログラムであって、
与えられたシミュレーション条件に基づいて、
前記流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれについて支配方程式を数値的に解いて、前記複数の計算粒子の位置及び物理量を時間発展させる機能と、
前記支配方程式を解く際に、着目する計算粒子に対して、前記壁面を隔てて配置された他の計算粒子を除外して前記支配方程式を解く機能と、
前記壁面から前記複数の計算粒子のそれぞれの位置までの最短経路の長さ及び向きで定義される最短距離ベクトルを示す情報を算出する機能と、
2つの計算粒子のそれぞれの位置ベクトル、及び2つの計算粒子のそれぞれに対する前記最短距離ベクトルを用いて、2つの計算粒子が相互に前記壁面を隔てて配置されているか否かを判定する機能と
を実現させるプログラムが提供される。
【発明の効果】
【0010】
支配方程式を解く際に、着目する計算粒子に対して、壁面を隔てて配置された他の計算粒子を除外して支配方程式を解くことにより、精度の高い解析を行うことができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、解析空間に配置された物体の断面図である。
【
図2】
図2Aは、着目する計算粒子と、参照範囲内の他の計算粒子とが、薄い壁を隔てて配置されている場合の模式図であり、
図2Bは、着目する計算粒子と、参照範囲内の他の計算粒子とが、薄い壁に関して同じ側に存在する場合の模式図である。
【
図3】
図3は、第1実施例によるシミュレーション装置のブロック図である。
【
図4】
図4は、第1実施例によるシミュレーション方法の手順を示すフローチャートである。
【
図5】
図5は、第1実施例の変形例によるシミュレーション方法を説明するための2つの計算粒子、及び壁面の位置関係を示す模式図である。
【
図6】
図6は、第2実施例によるシミュレーション装置の解析対象となる壁面の形状の一例を示す模式図である。
【
図7】
図7は、第2実施例によるシミュレーション方法で用いられる極小距離ベクトルについて説明するための模式図である。
【
図8】
図8は、2つの計算粒子が、外側の壁の壁面の近くに、かつ薄い壁を隔てて配置されている場合の模式図である。
【
図9】
図9は、第2実施例によるシミュレーション方法の手順を示すフローチャートである。
【発明を実施するための形態】
【0012】
[粒子法の概要]
本発明の一実施例について説明する前に、一般的なSPH(Smoothed Particle Hydrodynamics)法について簡単に説明する。SPH法は、連続体を複数の計算粒子の集合を用いて離散化し、流れ場の時間発展を計算するラグランジュ型の数値計算手法である。SPH法では、粒子1個の質量分布として、連続かつ微分可能なカーネル関数を用いるとともに、カーネル関数の微分係数の重ね合わせを空間微分とする離散化モデルを用いる。
【0013】
SPH法では、計算粒子の質量mはカーネル関数Wによってその周囲に分配され、連続的に分布しており、密度場は、その重ね合わせとして与えられる。すなわち、i番目の計算粒子の位置x
iにおける密度ρ
iは、以下の式で表される。
【数1】
本明細書において、下付きの添え字i及びjは、計算粒子のそれぞれに付与された通し番号を表し、下付きの添え字i、jが付された物理量は、それぞれi番目及びj番目の計算粒子に付された物理量を意味する。
【0014】
カーネル関数Wとして、例えば、以下の関数を用いることができる。以下の関数は、C2Wendlandカーネルと呼ばれる。
【数2】
【0015】
hは、平滑化長さであり、カーネル幅ともいわれる。カーネル幅hは、複数の計算粒子のそれぞれを同一の質量及び物性密度の球体に置き換えた等価球の直径に等しい。本明細書において、カーネル幅hを計算粒子の直径という場合がある。
【0016】
任意の位置x
iにおける任意のスカラー量A及びベクトル量Aの値は、カーネル関数の重ね合わせによって以下の式で表すことができる。
【数3】
【0017】
任意のスカラー量Aの勾配は、カーネル関数の微分係数の重ね合わせによって以下の式で表される。
【数4】
【数5】
【0018】
ここで、∇W(x
ij,h)はカーネル関数の導関数であり、カーネル関数としてC2Wendlandカーネルを用いる場合、以下の式で表される。
【数6】
なお、式(2)の関数W(q)は1変数の関数であるため、その勾配∇Wはスカラー量である。
【0019】
任意のベクトル量Aに対する発散は、式(4)と同様に、以下の式で表すことができる。
【数7】
【0020】
任意のスカラー量Aに対する2次導関数は、例えば以下の公式を用いて算出することができる。
【数8】
【0021】
[非圧縮性流れの支配方程式]
非圧縮性流れの連続の式及びナビエストークス方程式は、以下のように表される。
【数9】
【数10】
ここで、uは速度ベクトル、tは時間、ρは密度、pは圧力、μは粘性係数を表す。
【0022】
[SPH法を用いた支配方程式の離散化手法]
式(9)、式(10)に示した流れの支配方程式を、SPH法を用いて離散化すると、例えば以下のように表すことができる。
【数11】
【数12】
【数13】
【数14】
ここで、下付き文字i及びjは、計算粒子に付された通し番号を表す。式(13)は、流体が弱い圧縮性を持つという仮定により導出される状態方程式であり、cは仮想的な音速、ρ
0は基準密度を表す。音速cの値は、例えば流れ場の代表速度の10倍程度に設定することができる。基準密度ρ
0の値は、例えば作動流体の密度に設定することができる。式(11)~式(14)に示す支配方程式は、非圧縮性流れのSPH法による解法として広く用いられる。
【0023】
[第1実施例]
次に、第1実施例によるシミュレーション装置について説明する。第1実施例においては、解析空間に任意形状の物体が配置されており、この物体周りの流れを解析する。物体の形状は、例えばCADデータで与えられる。物体表面(以下、壁面という場合がある。)における境界条件を与えるために、複数の計算粒子のそれぞれの位置から物体表面までの距離を算出する必要がある。
【0024】
解析空間の任意の位置における壁面からの距離を算出するために、例えば符号付距離関数(Signed Distance Function)を用いることができる。解析空間の任意の位置をx、位置xにおける符号付距離関数の値をf(x)と標記すると、f(x)は以下のように定義される。
【数22】
ここで、d(x,∂Ω)は、位置xにおける壁面∂Ωからの最短距離を表す。すなわち、符号付距離関数の絶対値は、壁面からの最短距離であり、符号付距離関数の符号は、物体の外部で正、物体の内部で負である。符号付距離関数は、計算力学や可視化情報学の分野で広く用いられている。
【0025】
[解析空間に薄い壁が存在する場合の課題]
次に、
図1を参照して、解析空間に薄い壁が存在する場合の課題について説明する。
図1は、解析空間に配置された物体10の断面図である。物体10は、流体が収容されている流路を取り囲む外側の壁10Aと、流路内に配置された薄い壁10Bとを含む。流路内に複数の計算粒子20が配置されている。薄い壁10Bの両側にも複数の計算粒子20が配置される。
【0026】
支配方程式を解く対象となる計算粒子20を、着目する計算粒子20iということとする。
図1において、着目する計算粒子20iに、右下がりの相対的に濃いハッチングを付している。計算粒子20iについて支配方程式を解くときの参照範囲23iは、例えば着目する計算粒子20iの位置を中心とする球形であり、その半径は、例えば計算粒子20の直径の3倍~10倍程度である。
図1において、参照範囲23iの外周を破線で示している。
【0027】
着目する計算粒子20iが薄い壁10Bの近傍に位置する場合、着目する計算粒子20iに対して薄い壁10Bによって隔てられた反対側の空間まで参照範囲23iが広がる。
図1において、参照範囲23i内に存在する計算粒子20のうち、薄い壁10Bを境として、着目する計算粒子20iと同じ側に存在する計算粒子20aに右上がりの相対的に淡いハッチングを付し、反対側に存在する計算粒子20bを灰色で表している。
【0028】
薄い壁10Bによって隔てられた両側の空間を流れる流体は、相互に影響を及ぼし合わない。このため、着目する計算粒子20iについて支配方程式を解くとき、計算粒子20bを除外することが好ましい。ところが、従来のSPH法を用いた解析では、着目する計算粒子20iについて支配方程式を解くとき、計算粒子20a及び計算粒子20bの両方が参照されてしまう。以下に説明する第1実施例では、計算粒子20bを除外して、着目する計算粒子20iについて支配方程式を解く。
【0029】
次に、
図2A及び
図2Bを参照して、2つの計算粒子が、相互に薄い壁10Bを隔てて配置されているか否かを判定する方法について説明する。
図2Aは、着目する計算粒子20iと、参照範囲23i(
図1)内の他の計算粒子20j(参照格子点)とが、薄い壁10Bを隔てて配置されている場合の模式図であり、
図2Bは、着目する計算粒子20iと、参照範囲23i(
図1)内の他の計算粒子20jとが、薄い壁10Bに関して同じ側に存在する場合の模式図である。着目する計算粒子20iの位置ベクトルをx
iと標記し、他の計算粒子20jの位置ベクトルをx
jと標記する。
【0030】
図2Aにおいては、薄い壁10Bの一方の壁面10Fが、着目する計算粒子20iの側を向き、他方の壁面10Fが、計算粒子20jの側を向く。
図2Bにおいては、薄い壁10Bの一方の壁面10Fが、着目する計算粒子20i及び他の計算粒子20jの側を向く。
【0031】
解析空間に直交等間隔格子の複数の格子点が定義されており、複数の格子点のそれぞれの位置において、与えられた物体10(
図1)に対する符号付距離関数が計算され、その値が格子点に関連付けられて記憶されている。
【0032】
まず、着目する計算粒子20i及び他の計算粒子20jのそれぞれについて、壁面10Fからの最短距離ベクトルdi、djを算出する。最短距離ベクトルは、壁面10Fから計算粒子20i、20jのそれぞれの位置までの最短経路の長さ及び向きを持つベクトルである。例えば、計算粒子20iの近傍の複数の格子点のそれぞれに関連付けられて記憶されている符号付距離関数の値、及びその勾配ベクトルに基づいて、線形補間演算を行うことにより、最短距離ベクトルdiを算出することができる。最短距離ベクトルdjについても同様に算出することができる。
【0033】
計算粒子20i、20jに対する壁面10Fの位置ベクトルx
wi、x
wjを、以下の式により計算する。
【数23】
【数24】
【0034】
以下の2つの式のいずれかが満たされる場合、計算粒子20iと計算粒子20jとは、相互に壁面10Fを隔てて配置されていると判定することができる。
【数25】
【数26】
ここで、γは任意のパラメータであり、例えばγの値としてゼロを用いることができる。
【0035】
次に、式(25)及び式(26)の物理的な意味について説明する。
式(25)の左辺は、ベクトルxi-xwjと最短距離ベクトルdjとのなす角度θjiを表し、式(26)の左辺は、ベクトルxj-xwiと最短距離ベクトルdiとのなす角度θijを表す。γにゼロを設定した場合、角度θji、θijの少なくとも一方が90°より大きい場合、式(25)及び式(26)の少なくとも一方が満たされる。
【0036】
図2Aに示すように、角度θ
ji、θ
ijの両方が90°より大きい場合は、計算粒子20iと計算粒子20jとは、相互に壁面10Fを隔てて配置されていると判定される。
図2Bに示すように、角度θ
ji、θ
ijの両方が90°より小さい場合は、計算粒子20iと計算粒子20jとは、相互に壁面10Fによって隔てられていないと判定される。
【0037】
図3は、第1実施例によるシミュレーション装置のブロック図である。第1実施例によるシミュレーション装置は、入力部30、処理部31、出力部32、及び記憶部33を含む。入力部30から処理部31にシミュレーション条件等が入力される。さらに、ユーザから入力部30に各種指令(コマンド)等が入力される。入力部30は、例えば通信装置、リムーバブルメディア読取装置、キーボード、ポインティングデバイス等で構成される。
【0038】
処理部31は、入力されたシミュレーション条件及び指令に基づいて粒子法によるシミュレーションを実行する。さらに、シミュレーション結果を出力部32に出力する。シミュレーション結果には、シミュレーション対象物である粒子系の粒子の状態、粒子系の物理量の時間的変化等を表す情報が含まれる。処理部31は、例えばコンピュータの中央処理ユニット(CPU)を含む。粒子法によるシミュレーションをコンピュータに実行させるためのプログラムが、記憶部33に記憶されている。出力部32は、通信装置、リムーバブルメディア書込み装置、ディスプレイ等を含む。
【0039】
図4は、第1実施例によるシミュレーション方法の手順を示すフローチャートである。
図4に示したフローチャートの各ステップの機能は、処理部31が記憶部33に記憶されたプログラムを実行することにより実現される。
【0040】
まず、処理部31が、オペレータによって入力部30に入力されたシミュレーション条件を取得する(ステップS1)。シミュレーション条件には、シミュレーション対象の流体を定義する情報、初期条件、境界条件等が含まれる。流体を定義する情報には、流体の密度、粘度等の物性値が含まれる。初期条件には、複数の計算粒子を解析空間に配置するための情報、計算粒子の初期物性値を指定する方法等が含まれる。境界条件には、解析空間に配置される物体の形状及び大きさを指定する情報等が含まれる。
【0041】
処理部31は、与えられた物体形状について、直交等間隔格子の格子点のそれぞれの位置における符号付距離関数の値を計算する(ステップS2)。
【0042】
次に、処理部31は、入力されたシミュレーション条件及び符号付距離関数の値に基づいて、解析空間に複数の計算粒子20を配置する(ステップS3)。具体的には、符号付距離関数の値が正の領域に、複数の計算粒子20を配置する。その後、複数の計算粒子20のそれぞれ(着目する計算粒子20i)について、参照範囲23i内の計算粒子20jをリスト化した近接粒子リストを作成する(ステップS4)。
【0043】
次に、近接粒子リストを作成するときに着目した計算粒子20iと、近接粒子リストに含まれる他の計算粒子20jのそれぞれとが、相互に壁面を隔てて配置されているか否かを判定し、着目する計算粒子20iに対して壁面を隔てて配置されている他の計算粒子20jを近接粒子リストから除外する(ステップS5)。着目する計算粒子20iと、近接粒子リストに含まれる他の計算粒子20jのそれぞれとが、相互に壁面を隔てて配置されているか否かの判定には、式(25)及び式(26)を用いる。
【0044】
複数の計算粒子のそれぞれについて、式(11)~式(14)に示した支配方程式を数値的に解き、計算粒子20のそれぞれの物理量及び位置を更新する(ステップS6)。着目する計算粒子20iについて支配方程式を解くとき、ステップS5で一部の計算粒子20jを除外する処理を行った後の近接粒子リストに含まれる複数の計算粒子20jを参照する。すなわち、着目する計算粒子20に対して、壁面を隔てて配置された他の計算粒子を除外して支配方程式を解く。
【0045】
次に、近接粒子リストを更新するか否かを判定する(ステップS7)。例えば、複数の計算粒子20のそれぞれについて、現時点の近接粒子リストを作成した時点の位置からの移動量が判定上限値を超えたか否かを判定する。少なくとも1つの計算粒子20の移動量が判定上限値を超えている場合、近接粒子リストを更新すると判定し、それ以外の場合は、近接粒子リストを更新しないと判定する。
【0046】
近接粒子リストを更新すると判定した場合、近接粒子リストを更新する(ステップS8)。近接粒子リストの更新は、ステップS4で行った近接粒子リストの作成と同一の手順で行う。さらに、更新後の近接粒子リストについて、着目する計算粒子20iに対して壁面を隔てて配置されている他の計算粒子を近接粒子リストから除外する(ステップS9)。この手順は、ステップS5の手順と同一である。
【0047】
ステップS6~ステップS9を、計算終了条件が満たされるまで繰り返す(ステップS10)。計算終了条件が満たされた場合は、計算結果を出力部32(
図3)に出力する(ステップS11)。
【0048】
次に、第1実施例のすぐれた効果について説明する。
第1実施例では、解析空間に薄い壁10B(
図1)が配置され、その両側を流体が流れる場合であっても、ステップS5及びステップS9(
図4)において、着目する計算粒子20iに対して壁面を隔てて配置されている他の計算粒子を近接粒子リストから除外するため、解析精度の低下を招くことなく解析することができる。
【0049】
さらに、第1実施例では、
図2A及び
図2Bを参照して説明したように、符号付距離関数の値のみに基づいて、2つの計算粒子20i、20jが、相互に壁面を隔てて配置されているか否かを判定する。このため、解析空間に配置されている壁面の形状及び位置を定義する情報を参照して、壁面を探索する処理を行う必要が無い。
【0050】
次に、
図5を参照して第1実施例の変形例について説明する。
図5は、第1実施例の変形例によるシミュレーション方法を説明するための計算粒子20i、20j、及び壁面10Fの位置関係を示す模式図である。
図2A及び
図2Bに示した例では、計算粒子20i、20jのそれぞれの最短距離ベクトルd
i、d
jが、壁面10Fに対して垂直である。これに対して
図5に示した例では、計算粒子20i、20jが壁面10Fの縁の近傍に配置されている。計算粒子20iの最短距離ベクトルd
iは、壁面10Fに対して垂直であるが、計算粒子20jの最短距離ベクトルd
jの始点が壁面10Fの縁に位置し、計算粒子20jの最短距離ベクトルd
jが壁面10Fに対して垂直ではない。
【0051】
図5に示した例においても、
図2Aに示した例と同様に、角度θ
ij及び角度θ
jiの両方が90°より大きい。このため、式(25)及び式(26)のパラメータγとしてゼロを用いると、着目する計算粒子20iについて支配方程式を解く際に、計算粒子20jが計算対象から除外される。
【0052】
ところが、
図5に示した例では、計算粒子20iの位置における流体の流れと、計算粒子20jの位置における流体の流れとが、相互に影響を及ぼし合うと考えられる。このため、着目する計算粒子20iについて支配方程式を解く際に、計算粒子20jを参照することが好ましい。
【0053】
式(25)及び式(26)のパラメータγを、-1より大きく0以下の値に設定すると、角度θij及びθjiが90°より大きい場合も、計算粒子20iと計算粒子20jとが、相互に壁面10Fによって隔てられていないと判定される。これにより、着目する計算粒子20iについて支配方程式を解く際に、計算粒子20jが参照されることになる。パラメータγの値を調整すると、2つの計算粒子20i、20jが、相互に壁面10Fを隔てて配置されていると判定する角度θij、θjiの条件が変わる。
【0054】
パラメータγの値は、解析空間に配置されている壁面10Fの形状、流体の特性等に基づいて、適切に設定することが好ましい。
【0055】
また、第1実施例では、ステップS4(
図4)で近接粒子リストを作成し、ステップS8(
図4)で近接粒子リストを更新する。近接粒子リストは、支配方程式を解くタイムステップごとに行うのではなく、近接粒子リストを更新する条件を満たす場合だけ、近接粒子リストの更新を行う。この近接粒子リストの更新の際に、計算粒子のそれぞれについて壁面を隔てて配置された他の計算粒子を近接粒子リストから除外する演算を行う。このため、タイムステップごとに、計算粒子のそれぞれについて壁面を隔てて配置された他の計算粒子を近接粒子リストから除外する演算を行う場合と比べて、計算負荷の増大を抑制することができる。
【0056】
[第2実施例]
次に、
図6~
図10Dを参照して、第2実施例によるシミュレーション装置及びシミュレーション方法について説明する。以下、
図1~
図4を参照して説明した第1実施例によるシミュレーション装置及びシミュレーション方法と共通の構成については説明を省略する。
【0057】
図6は、第2実施例によるシミュレーション装置の解析対象となる壁面10Fの形状の一例を示す模式図である。解析空間に配置された物体10の壁面10Fが、一例として、
図6に示したように角部分を含むような条件下で着目する計算粒子20iについて支配方程式を解く際に、参照から除外すべき計算粒子20jが除外されない場合があることが判明した。
【0058】
図6に示すように、物体10が、流路を画定する外側の壁10Aと、外側の壁10Aから流路内に突き出た薄い壁10Bとを含む。薄い壁10Bの両側を流体が流れる。外側の壁10Aと薄い壁10Bとの接続箇所が、壁面10Fの角部を構成する。
【0059】
計算粒子20i及び計算粒子20jが、相互に薄い壁10Bを隔てて配置されている。ただし、計算粒子20i、20jに対応する壁面の位置ベクトルx
wi、x
wjで定義される位置は、薄い壁10Bの壁面10Fではなく、外側の壁10Aの壁面10F上に位置する。2つの計算粒子20i、20jは、外側の壁10Aの壁面10Fから見て同じ側に配置されている。このため、角度θ
ij、θ
jiは、ともに90°未満である。
図2A及び
図2Bを参照して説明した方法では、計算粒子20iと計算粒子20jとは、相互に壁面10Fによって隔てられていないと判定されてしまう。以下に説明する第2実施例では、計算粒子20iと計算粒子20jとが、相互に壁面10Fを隔てて配置されていると判定されるように判定処理がより好適化される。
【0060】
図7は、第2実施例によるシミュレーション方法で用いられる極小距離ベクトルd
2iについて説明するための模式図である。解析空間に、直交等間隔格子の複数の格子点を定義する。着目する格子点15iの位置ベクトルをx
iと標記する。着目する格子点の参照範囲23i内の複数の格子点15jのそれぞれの位置ベクトルをx
jと標記する。参照範囲23iは、格子点15iの位置を中心とする半径Rの円である。半径Rは、例えば格子間隔の10倍程度の大きさとすることができる。
【0061】
格子点15i、15jのそれぞれの最短距離ベクトルd
i、d
jが、符号付距離関数から求められる。
図7では、格子点15iの最短距離ベクトルd
iの始点は、壁面10Fの第1領域A1上に位置し、格子点15jの最短距離ベクトルd
jの始点は、壁面10Fの第2領域A2上に位置する例が示されている。例えば、第1領域A1と第2領域A2とは、相互に直交している。
【0062】
まず、格子点15jに対して次のベクトルd
ijを定義する。
【数27】
【0063】
以下に示す評価値D
ijを計算する。
【数28】
ここで、ベクトルn
i、n
j、n
ijは、それぞれベクトルd
i、d
j、d
ijと同一の向きを持つ単位ベクトルである。参照範囲23i内のすべての格子点15jについて評価値D
ijを計算する。
【0064】
計算結果に基づいて、最も大きな評価値Dijを与える格子点15jにおけるベクトルdijを、着目する格子点15iに対する壁面15Fからの極小距離ベクトルd2iとみなす。最短距離ベクトルdiは、壁面15Fのうち、格子点15iに最も近い平面状の第1領域A1までの最短距離及び最短経路の向きに相当する。極小距離ベクトルd2iは、壁面15Fのうち格子点15iから2番目に近い第2領域A2までの経路の長さの極小値に等しい長さ、及びその経路の向きを表していると考えることができる。
【0065】
次に、式(28)の意味について説明する。
式(28)の1番目の中かっこ内の式の値は、ベクトルdiとベクトルdjとが相互に直交するときに最大値をとり、直交関係からずれるにしたがってその値が小さくなる。式(28)の2番目の中かっこ内の式の値は、ベクトルdijとベクトルdiとが相互に直交するときに最大値をとり、直交関係からずれるにしたがってその値が小さくなる。式(28)の小かっこ内の式の値は、ベクトルdijとベクトルdjとが相互に平行であるとき、最大値を取る。
【0066】
したがって、評価値Dijが最大となる格子点15jを探索することは、ベクトルdiとベクトルdjとのなす角度が90°に近く、ベクトルdijとベクトルdiとのなす角度も90°に近く、ベクトルdijとベクトルdjとのなす角度が0°に近く、ベクトルdijの長さが短くなるような格子点15jを探索していると考えることができる。
【0067】
ベクトルdiとdjとのなす角度が90°に近いという条件から、ベクトルdiとベクトルdjとが平行になるような格子点15jは探索対象から除外される。すなわち、壁面15Fの第1領域A1が、最も近い壁面であるような格子点15jが、探索対象から除外される。ベクトルdijとdiとのなす角度も90°に近いという条件、及びベクトルdijとdjとのなす角度が0°に近いという条件は、着目する格子点15iを通り、最短距離ベクトルdiに対して直交する平面に近い位置の格子点15jを探索することと考えられる。したがって、これらの条件を満たす格子点15jに対するベクトルdijを、着目する格子点15iの極小距離ベクトルd2iと見なすことができる。
【0068】
解析空間内の全ての格子点のそれぞれを着目する格子点15iとして、上記操作を行うことにより、すべての格子点について、最短距離ベクトルdi及び極小距離ベクトルd2iを求めることができる。
【0069】
次に、
図8を参照して、2つの計算粒子が、相互に薄い壁を隔てて配置されているか否かを判定する方法について説明する。
図8は、2つの計算粒子20i、20jが、外側の壁15Aの壁面15Fの近くに、かつ薄い壁10Bを隔てて配置されている場合の模式図である。外側の壁15Aの壁面15Fを、壁面の第1領域A1といい、薄い壁15Bの壁面15Fを、壁面の第2領域A2ということとする。
【0070】
まず、計算粒子20i、20jの位置における最短距離ベクトルdi、dj、及び極小距離ベクトルd2i、d2jを求める。これらのベクトルは、計算粒子20i、20jの近傍の複数の格子点について計算された最短距離ベクトル及び極小距離ベクトルに基づいて、線形補間演算を行うことによる計算することができる。
【0071】
次に、計算粒子20iに対する壁面の位置ベクトルx
wi、x
w2iを、以下の式により計算する。位置ベクトルx
wi及びx
w2iで表される点は、それぞれ第1領域A1及び第2領域A2上に位置する。
【数29】
【数30】
計算粒子20jについても同様に、位置ベクトルx
wj、x
w2jを計算する。位置ベクトルx
wj及びx
w2jで表される点は、それぞれ第1領域A1及び第2領域A2上に位置する。
【0072】
式(25)、式(26)に加えて、以下の2つの式(31)、式(32)の合計4つの式のいずれかが満たされる場合、計算粒子20iと計算粒子20jとは、壁面を隔てて配置されていると判定する。
【数31】
【数32】
【0073】
式(31)は、ベクトルxi-xw2jとベクトルd2jとのなす角度θ2jiが、所定の角度以上であり、式(32)は、ベクトルxj-xw2iとベクトルd2iとのなす角度θ2ijが、所定の角度以上であることを意味する。パラメータγの値は、式(25)、式(26)のパラメータγと同一の値にするとよい。
【0074】
図8に示した例で、式(25)、式(26)のみを用いた判定では、薄い壁15Bが検出されず、2つの計算粒子20i、20jが壁面によって隔てられていないと判定されてしまう。これに対して第2実施例では、式(31)及び式(32)が満たされるため、2つの計算粒子20i、20jは、相互に壁15Bを隔てて配置されていると判定される。
【0075】
図9は、第2実施例によるシミュレーション方法の手順を示すフローチャートである。以下、
図4に示したフローチャートと異なるステップについて説明する。
図4に示したステップS2では、符号付距離関数を算出するが、
図8に示したステップS2aでは、符号付距離関数を算出し、さらに、
図7を参照して説明した方法で、複数の格子点のそれぞれについて最短距離ベクトルd
i及び極小距離ベクトルd
2iを算出する。
【0076】
図4に示したステップS5及びステップS9では、着目する計算粒子に対して壁面を隔てて配置された他の計算粒子を近接粒子リストから除外する際に、式(25)及び式(26)を用いる。これに対して
図8に示したステップS5a及びステップS9aでは、式(25)及び式(26)に加えて式(31)及び(32)を用いる。
【0077】
次に、第2実施例の優れた効果について説明する。
第2実施例では、
図8に示したように壁面15Fに角部が存在する場合でも、2つの計算粒子が壁面を隔てて配置されているか否かを正しく判定することができる。
【0078】
次に、
図10A~
図10Dを参照して、第2実施例で用いられる2つの計算粒子が壁面を隔てて配置されているか否かを判定する方法で実際に判定を行った結果について説明する。
図10A~
図10Dは、着目する計算粒子20iに対して参照すべき他の計算粒子20jを示す図である。流体が収容される2つの空間11A、11Bが、薄い壁15Bで相互に隔てられている。
【0079】
図10A、
図10Bは、一方の空間11A内の計算粒子20iに着目し、
図10C、
図10Dは、他方の空間11B内の計算粒子20iに着目した場合の判定結果を示す。また、
図10A、
図10Cは、着目する計算粒子20iが、薄い壁15Bの中央近傍に位置し、
図10B、
図10Dは、着目する計算粒子20iが角部の近傍に位置する場合の判定結果を示す。
【0080】
相対的に薄い灰色の計算粒子20jが、参照すべき他の計算粒子20jとして近接粒子リストから除外されなかったものを示している。なお、参照範囲23iの半径Rを、計算粒子の直径の10倍に設定した。着目する計算粒子20iに対して薄い壁15Bを隔てて配置されている参照範囲23i内の計算粒子(相対的に濃い色で表されている)が、近接粒子リストから除外されていることが確認された。
【0081】
次に、第2実施例の変形例について説明する。
第2実施例(
図7、
図8)では、解析空間が二次元平面であり、着目する格子点15iに対して1つの最短距離ベクトルd
i及び1つの極小距離ベクトルd
2iが求まる。解析空間が三次元の場合は、例えば直方体の頂点の近傍のように、壁面の3つの平面の領域で角部が形成される場合がある。この場合は、着目する格子点に対して、最短距離ベクトルd
i及び極小距離ベクトルd
2iの他に、3番目に短い極小距離ベクトルd
3iが定義される場合がある。
【0082】
解析空間を三次元に拡張する場合は、式(28)に加えて、以下の式によりD2
ijを計算する。
【数33】
ここで、ベクトルn
2iは、極小距離ベクトルd
2iと同じ向きの単位ベクトルである。
【0083】
最も大きな評価値D2ijを与える格子点15jにおけるベクトルdijを、着目する格子点15iに対する壁面15Fからの3番目に短い極小距離ベクトルd3iとみなすことができる。
【0084】
式(29)及び式(30)に加えて、以下の式により位置ベクトルx
w3iを計算する。
【数34】
【0085】
式(25)、式(26)、式(31)、式(32)に加えて、以下の2つの式(35)、式(36)の合計6個の式のいずれかが満たされる場合、計算粒子20iと計算粒子20jとは、壁面を隔てて配置されていると判定する。
【数35】
【数36】
パラメータγの値は、式(25)、式(26)、式(31)、式(32)のパラメータγと同一の値にするとよい。
【0086】
上述の判定方法を用いることにより、三次元の流れ場を高精度に解析することが可能になる。
【0087】
上述の各実施例は例示であり、異なる実施例で示した構成の部分的な置換または組み合わせが可能であることは言うまでもない。複数の実施例の同様の構成による同様の作用効果については実施例ごとには逐次言及しない。さらに、本発明は上述の実施例に制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【符号の説明】
【0088】
10 物体
10A 外側の壁
10B 薄い壁
10F 壁面
11A、11B 薄い壁で隔てられた空間
15i 着目する格子点
15j 着目する格子点の参照範囲内の格子点
20 計算粒子
20a 着目する計算粒子に対して壁面を隔てていない位置に配置された計算粒子
20b 着目する計算粒子に対して壁面を隔てて配置された計算粒子
20i 着目する計算粒子
20j 他の計算粒子
23i 着目する計算粒子に対する参照範囲
30 入力部
31 処理部
32 記憶部
33 出力部