特開2017-157076(P2017-157076A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 独立行政法人海洋研究開発機構の特許一覧

特開2017-157076粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム
<>
  • 特開2017157076-粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム 図000003
  • 特開2017157076-粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム 図000004
  • 特開2017157076-粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム 図000005
  • 特開2017157076-粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム 図000006
  • 特開2017157076-粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム 図000007
  • 特開2017157076-粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム 図000008
  • 特開2017157076-粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2017-157076(P2017-157076A)
(43)【公開日】2017年9月7日
(54)【発明の名称】粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム
(51)【国際特許分類】
   G06F 19/00 20110101AFI20170810BHJP
【FI】
   G06F19/00 110
【審査請求】未請求
【請求項の数】6
【出願形態】OL
【全頁数】18
(21)【出願番号】特願2016-41001(P2016-41001)
(22)【出願日】2016年3月3日
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成27年度科学技術試験研究委託事業 「地震・津波による複合災害の統合的予測システムの構築」
(71)【出願人】
【識別番号】504194878
【氏名又は名称】国立研究開発法人海洋研究開発機構
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【弁理士】
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100128107
【弁理士】
【氏名又は名称】深石 賢治
(72)【発明者】
【氏名】西浦 泰介
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049DD02
(57)【要約】
【課題】 粒子と構造物との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子と構造物とのシミュレーションを適切に行う。
【解決手段】 粒子シミュレーション装置10は、粒子及び構造物の挙動をシミュレーションする装置である。粒子シミュレーション装置10は、構造物の初期位置及び形状を示す情報を取得する構造物初期情報取得部12と、当該情報に基づいて構造物の表面の近傍に複数の仮想粒子を設定し、複数の仮想粒子それぞれについて、構造物までの距離を算出する仮想領域設定部13と、粒子の位置から予め設定した距離内の仮想粒子を特定する仮想領域特定部15と、特定された仮想粒子について算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出部16と、算出された距離に基づいて粒子と構造物との間の相互作用力を算出する相互作用力算出部17とを備える。
【選択図】 図1
【特許請求の範囲】
【請求項1】
作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置であって、
構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、
前記構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、
粒子の位置を示す位置情報を取得する位置情報取得手段と、
前記位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、
前記仮想領域特定手段によって特定された仮想領域について、前記仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、
前記粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、
前記相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま前記仮想領域を移動させる時間遷移手段と、
を備える粒子シミュレーション装置。
【請求項2】
前記仮想領域設定手段は、前記予め設定した距離に応じた範囲の前記構造物の表面の近傍に複数の仮想領域を設定する請求項1に記載の粒子シミュレーション装置。
【請求項3】
前記時間遷移手段は、前記相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの構造物の位置及び速度を算出する請求項1又は2に記載の粒子シミュレーション装置。
【請求項4】
前記仮想領域は、粒子状の領域である請求項1又は2に記載の粒子シミュレーション装置。
【請求項5】
作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置の動作方法である粒子シミュレーション方法であって、
構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得ステップと、
前記構造物初期情報取得ステップにおいて取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定ステップと、
粒子の位置を示す位置情報を取得する位置情報取得ステップと、
前記位置情報取得ステップにおいて取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定ステップと、
前記仮想領域特定ステップにおいて特定された仮想領域について、前記仮想領域設定ステップにおいて算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出ステップと、
前記粒子距離算出ステップにおいて算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出ステップと、
前記相互作用力算出ステップにおいて算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま前記仮想領域を移動させる時間遷移ステップと、
を含む粒子シミュレーション方法。
【請求項6】
コンピュータを、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置として機能させる粒子シミュレーションプログラムであって、
前記コンピュータを、
構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、
前記構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、
粒子の位置を示す位置情報を取得する位置情報取得手段と、
前記位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、
前記仮想領域特定手段によって特定された仮想領域について、前記仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、
前記粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、
前記相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま前記仮想領域を移動させる時間遷移手段と、
として機能させる粒子シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、粒子及び構造物の挙動をシミュレーションする粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラムに関する。
【背景技術】
【0002】
従来、DEM(Discrete Element Method)、SPH(Smoothed Particle Hydrodynamics)及びMPS(MovingParticle Semi-implicit method)等の粒子法シミュレーションによって、粒子と複雑な形状の構造物との挙動の解析が行われている。このようなシミュレーションでは、粒子と構造物との接触判定を行う必要がある。最近では、計算負荷やシミュレーションの正確性等が考慮されて、符号付き距離関数を用いた接触判定が提案されている(例えば、非特許文献1参照)。符号付き距離関数とは、シミュレーションの対象となる空間内を任意サイズの直交格子で分割し、格子点上から構造物表面までの最近接距離を格子点に記憶させたものである(例えば、非特許文献2参照)。粒子から構造物までの距離が、粒子が位置する格子及び隣接格子の距離関数データを用いて内挿補間して求められ、算出された距離に基づいて接触判定が行われる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Y. Shigeto, M. Sakai,Arbitrary-shaped wall boundary modeling based on signed distance functions forgranular flow simulations, Chem. Eng. J. 231 (2013) 464-476.
【非特許文献2】Y. Wu, J. Man, Z. Xie, Adouble layer method for constructing signed distance fields from trianglemeshes, Graphical Models 76 (2014) 214-223.
【発明の概要】
【発明が解決しようとする課題】
【0004】
構造物の時間変化に伴う移動に対して、距離関数は、例えば、次の何れかのように扱われる。(1)距離関数を固定し、構造物の移動及び回転に対応させて粒子の座標系を平行移動及び回転させる。しかし、この方法は、構造物が複数存在する場合、即ち、移動軸や回転軸が複数存在する場合には適用できない。(2)構造物が動くたびに距離関数を作製し直す。しかし、この方法は距離関数を作り直すための計算コストが膨大となり、実際の計算に用いるのは容易ではない。(3)微分方程式を用いた距離関数の移流計算を行う。しかし、この方法は、格子法であるために数値拡散が生じて距離関数がなまるため、通常、一定時間間隔毎に距離関数を新たに計算し直す再初期化が必要となる。また、その際、それまで格子点上で滑らかに変化していた距離関数が不連続に変化し、不連続に変化する距離振動が発生する。上記の数値拡散や数値振動により、シミュレーションの正確性が低くなり、産業や学術分野では計算精度の面から実用に向かない。(4)構造物の移動に応じて距離関数の時系列データを予め複数用意しておく。しかし、この方法は、格子数×時系列数だけデータ量が必要となり、予め記憶するデータ量が膨大になる。
【0005】
本発明は、上記の問題点に鑑みてなされたものであり、粒子と構造物との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子と構造物とのシミュレーションを適切に行うことができる粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記の目的を達成するために、本発明に係る粒子シミュレーション装置は、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置であって、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、粒子の位置を示す位置情報を取得する位置情報取得手段と、位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、仮想領域特定手段によって特定された仮想領域について、仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま仮想領域を移動させる時間遷移手段と、を備える。
【0007】
本発明に係る粒子シミュレーション装置では、構造物の表面の近傍に設定された複数の仮想領域について算出された距離に基づいて、粒子と構造物との間の距離計算が行われる。シミュレーションにおいて、当該仮想領域は、構造物との位置関係を維持したまま移動される。従って、仮想領域についての距離(距離関数)を計算しなおす必要がない。また、従来の距離関数とは異なり構造物の近傍に設定された仮想領域に対してのみ、距離が計算されていればよい。また、仮想領域は、構造物毎に設定されるため、構造物が複数存在する場合、即ち、互いに異なった移動軸や回転軸が複数存在する場合であっても、適用することができる。また、距離に対応付けられた仮想領域が動くため、移流計算による数値拡散も生じない。即ち、本発明に係る粒子シミュレーション装置によれば、粒子と構造物との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子と構造物とのシミュレーションを適切に行うことができる。
【0008】
仮想領域設定手段は、予め設定した距離に応じた範囲の構造物の表面の近傍に複数の仮想領域を設定することとしてもよい。この構成によれば、仮想領域を必要な分だけ設定することができ、更に効率的に粒子と構造物とのシミュレーションを行うことができる。
【0009】
時間遷移手段は、相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの構造物の位置及び速度を算出することとしてもよい。この構成によれば、構造物に対する粒子の影響もシミュレーションすることができるため、より正確な粒子と構造物とのシミュレーションを行うことができる。
【0010】
仮想領域は、粒子状の領域であることとしてもよい。この構成によれば、仮想領域を適切かつ容易に扱うことができ、適切かつ容易に粒子と構造物とのシミュレーションを行うことができる。
【0011】
ところで、本発明は、上記のように粒子シミュレーション装置の発明として記述できる他に、以下のように粒子シミュレーション方法及び粒子シミュレーションプログラムの発明としても記述することができる。これはカテゴリが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【0012】
即ち、本発明に係る粒子シミュレーション方法は、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置の動作方法である粒子シミュレーション方法であって、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得ステップと、構造物初期情報取得ステップにおいて取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定ステップと、粒子の位置を示す位置情報を取得する位置情報取得ステップと、位置情報取得ステップにおいて取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定ステップと、仮想領域特定ステップにおいて特定された仮想領域について、仮想領域設定ステップにおいて算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出ステップと、粒子距離算出手段において算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出ステップと、相互作用力算出ステップにおいて算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま仮想領域を移動させる時間遷移ステップと、を含む。
【0013】
また、本発明に係る粒子シミュレーションプログラムは、コンピュータを、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置として機能させる粒子シミュレーションプログラムであって、コンピュータを、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、粒子の位置を示す位置情報を取得する位置情報取得手段と、位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、仮想領域特定手段によって特定された仮想領域について、仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま仮想領域を移動させる時間遷移手段と、として機能させる。
【発明の効果】
【0014】
本発明では、仮想領域についての距離(距離関数)を計算しなおす必要がない。また、従来の距離関数とは異なり構造物の近傍に設定された仮想領域に対してのみ、距離が計算されていればよい。また、仮想領域は、構造物毎に設定されるため、構造物が複数存在する場合、即ち、互いに異なった移動軸や回転軸が複数存在する場合であっても、適用することができる。また、距離に対応付けられた仮想領域が動くため、移流計算による数値拡散も生じない。即ち、本発明によれば、粒子と構造物との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子と構造物とのシミュレーションを適切に行うことができる。
【図面の簡単な説明】
【0015】
図1】本発明の実施形態に係る粒子シミュレーション装置の機能構成を示す図である。
図2】構造物に対する仮想粒子を模式的に示す図である。
図3】構造物に対する仮想粒子が配置される範囲及び配置された状態を示す図である。
図4】シミュレーション対象の粒子から設定した距離内の仮想粒子を模式的に示す図である。
図5】本発明の実施形態に係る粒子シミュレーション装置で実行される処理(粒子シミュレーション方法)を示すフローチャートである。
図6】本発明の実施形態におけるシミュレーションの実行中の状態(スナップショット)を示す図である。
図7】本発明の実施形態に係る粒子シミュレーションプログラムの構成を、記録媒体と共に示す図である。
【発明を実施するための形態】
【0016】
以下、図面と共に本発明に係る粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【0017】
図1に本実施形態に係る粒子シミュレーション装置10を示す。粒子シミュレーション装置10は、作業空間(計算領域)内の複数の球形(中心から表面までの距離が一定の形状)の粒子及び構造物の挙動をシミュレーション(解析)する装置である。具体的には、粒子シミュレーション装置は、シミュレーション上の時刻である時間ステップ毎に各粒子及び構造物の位置及び速度に基づき、各粒子に働く力を算出する。各粒子及び構造物に働く力には、例えば、粒子と構造物との間、及び粒子間での相互作用である接触(衝突)による相互作用力である接触力が含まれる。なお、粒子と構造物との間、及び粒子間での相互作用は、必ずしも接触に限られず、位置及び速度に影響を及ぼすものであれば任意のものとしてもよい。粒子シミュレーション装置10は、算出した力に基づいて、次の時間ステップにおける各粒子及び構造物の位置及び速度を算出する。なお、本実施形態における粒子シミュレーションは、DEMに基づいて行われるが、SPHやMPS等の他の粒子法に基づいて行われてもよい。また、粒子法の種類によっては、粒子径や回転速度を情報として保持しなくてもよい。
【0018】
本実施形態に係る粒子シミュレーション装置10によるシミュレーションの対象となる粒子は、従来の粒子シミュレーションの対象となっていた任意の粒子を含む。例えば、土砂や粉体を対象とすることができる。あるいは、流体や固体を複数の粒子からなるものと仮定して対象とすることとしてもよい。本実施形態に係る粒子シミュレーション装置10によるシミュレーションの対象となる構造物は、任意の物体を含む。例えば、粉体を撹拌、混合する装置(の粉体を撹拌、混合する部分(撹拌翼))を対象とする。シミュレーションの対象となる構造物は、複数あってもよい。
【0019】
本実施形態に係る粒子シミュレーション装置10によるシミュレーションにより、物理的な問題をシミュレーションすることができる。例えば、粉体の撹拌、混合についてのシミュレーションを行うことができる。あるいは、ドリルビットの形状に応じた掘削能力の検証やブルドーザー等の建機や重機の設計にも用いることも考えられる。このように、本実施形態に係る粒子シミュレーション装置10によるシミュレーションは、土木、粉体等の産業分野での適用が考えられる。また、堤防、建物、地形と津波や土砂との相互作用や土砂崩れ、雪崩等の自然現象のシミュレーションにも用いることができる。このように、本実施形態に係る粒子シミュレーション装置10によるシミュレーションは、防災分野での適用も考えられる。
【0020】
粒子シミュレーション装置10は、例えば、CPU(CentralProcessing Unit)、GPU(Graphics Processing Unit)、メモリ、ハードディスク、ディスプレイ等のハードウェアを備えるコンピュータとして構成される。これらの構成要素がプログラム等により動作することによって、後述する粒子シミュレーション装置10としての機能が発揮される。粒子シミュレーション装置10は、並列演算が可能な装置において特に効果的に動作する。なお、粒子シミュレーション装置10は、演算装置としては必ずしもGPUを備えている必要はなく、CPUのみを備えた構成であってもよい。
【0021】
図1に示すように粒子シミュレーション装置10は、シミュレーション情報保持部11と、構造物初期情報取得部12と、仮想領域設定部13と、位置情報取得部14と、仮想領域特定部15と、粒子距離算出部16と、相互作用力算出部17と、時間遷移部18とを備えて構成される。
【0022】
本実施形態において粒子が運動する領域である作業領域は、例えば、三次元の空間であり、一辺の大きさが予め設定された立方体のセル(メッシュ)に分割(区分)されている。なお、セルは立方体以外の形状、例えば、直方体であってもよい。粒子シミュレーション装置10は、シミュレーションの処理を行う前に作業空間を予めセルに分割しており、作業空間がどのようにセルに分割されているか予め把握している。上記の一辺の大きさは、例えば、シミュレーションの対象となる複数の粒子の粒子径等に応じて予め設定されている。また、作業領域内の各セルにはセルを特定するセル番号が付されている。セル番号は、例えば、作業空間内のセルの位置に応じて順番に付されている。
【0023】
シミュレーション情報保持部11は、シミュレーションに用いられる情報を保持する手段である。具体的には、シミュレーション情報保持部11は、作業領域内の複数の粒子それぞれについての粒子情報を保持する。粒子情報は、粒子の座標、粒子の速度及び粒子半径を示す情報を含む。粒子の座標は、作業空間における粒子の位置を示す三次元座標である。粒子の速度は、並進速度及び回転速度を含む。粒子の座標及び粒子の速度については、シミュレーションの開始時の情報(初期情報)は、予めシミュレーション情報保持部11に粒子シミュレーション装置10のユーザ等により入力されており、また、シミュレーション中の情報は、後述する時間遷移部18によって更新される。粒子半径は、予めシミュレーション情報保持部11に粒子シミュレーション装置10のユーザ等により入力されている。
【0024】
シミュレーション情報保持部11は、作業領域内の構造物それぞれについての構造物情報を保持する。構造物情報は、構造物の座標、構造物の速度及び構造物の形状を示す情報を含む。構造物の座標は、作業空間における構造物の位置(例えば、構造物の特定の箇所の位置)を示す三次元座標である。構造物の速度は、並進速度及び回転速度を含む。構造物の座標及び構造物の速度については、粒子の座標及び粒子の速度と同様に、シミュレーションの開始時の情報(初期情報)は、予めシミュレーション情報保持部11に粒子シミュレーション装置10のユーザ等により入力されており、また、シミュレーション中の情報は、後述する時間遷移部18によって更新される。構造物の形状を示す情報は、例えば、ポリゴンで構造物の形状を表したCAD(computer-aided design)データである。構造物の形状を示す情報は、予めシミュレーション情報保持部11に粒子シミュレーション装置10のユーザ等により入力されている。構造物情報は、構造物がどのように移動するか(例えば、移動軸や回転軸等)を示す情報を含んでいてもよい。当該情報も、予めシミュレーション情報保持部11に粒子シミュレーション装置10のユーザ等により入力されている。
【0025】
また、シミュレーション情報保持部11は、後述するように仮想粒子の情報を保持する。また、シミュレーション情報保持部11は、上記の粒子情報及び構造物情報以外のシミュレーションに利用される情報を、予め入力して保持していてもよい。このような情報としては、摩擦係数、弾性係数、粘性減衰係数、反発係数等である。
【0026】
構造物初期情報取得部12は、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段である。例えば、構造物初期情報取得部12は、シミュレーション情報保持部11に保持されている構造物に係る初期情報、及び構造物の形状を示す情報を構造物初期情報として取得する。構造物初期情報取得部12は、取得した構造物初期情報を仮想領域設定部13に出力する。
【0027】
仮想領域設定部13は、構造物初期情報取得部12によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離(最近接距離)を算出する仮想領域設定手段である。仮想領域は、後述するように、シミュレーション対象の粒子から構造物までの距離の算出に用いる領域である。本実施形態では、仮想領域は、球形(中心から表面までの距離が一定の形状)の粒子状の領域であり、仮想粒子と呼ぶ。複数の仮想粒子の径の長さは一律であり、予め設定されている。仮想粒子は、計算の負荷等を考慮して、シミュレーション対象の粒子よりも大きいものとしてもよい。
【0028】
上述したように、従来は、シミュレーション対象の粒子から構造物までの距離は、非特許文献1に示されるように符号付き距離関数が用いられて求められていた。例えば、符号付き距離関数は、作業領域がセルに(直交格子で)分割された格子点に構造物からの距離を記憶させたものである。図2(a)に格子点状の距離関数値を基にして生成された構造物100からの等しい距離の位置を線で結んだ等値線図を示す。本実施形態では、図2(b)に示すように、構造物100の表面(構造物100とそれ以外の部分との境界)の近傍に複数の仮想粒子110を設定する。
【0029】
具体的には、仮想領域設定部13は、まず、構造物初期情報によって初期位置及び形状が示される構造物100についての符号付き距離関数を算出する。この算出は、非特許文献2に記載されているような従来の方法を用いて行えばよい。仮想領域設定部13は、算出した符号付き距離関数に基づいて、作業領域内の構造物100からの近傍の位置を検出する。構造物からの近傍は、図2(b)に示すように、構造物の外側、表面及び内側の領域を含む。仮想領域設定部13は、当該近傍の領域に、互いに接触するように複数の仮想粒子110を設定する。例えば、作業領域が三次元である場合には、仮想領域設定部13は、当該領域内において単純立方格子又は面心立方格子の格子点を設定し、当該格子点に仮想粒子110を設定(配置)する。なお、仮想粒子の設定には、構造物100からの距離が分かればよいので必ずしも符号付き距離関数を用いる必要はなく、任意の方法で行われてもよい。
【0030】
仮想粒子110を設定する構造物100の表面の部分は、シミュレーション対象の粒子が接触する(相互作用する)可能性がある部分である。構造物100の表面全体に渡って粒子が接触する可能性がある場合には、図2(b)に示すように、構造物100の表面全体に渡って表面の近傍に仮想粒子110を設定する。接触する可能性がない場所が予め分かっている場合には、その部分の近傍には仮想粒子110を設定しなくてもよい。
【0031】
仮想領域設定部13は、構造物100の表面の法線方向においては、所定の距離(所定の厚み)の範囲を構造物からの近傍とする。例えば、図3に示すように、構造物100の表面から外側へ距離d離れた位置をその距離の中心として、そこから外側及び内側(図3における上下方向)へそれぞれ距離H分の領域を構造物100の近傍の領域とする。距離dは、構造物100と、シミュレーション対象の粒子101とが相互作用し始める、構造物100の表面と粒子101の中心との間の距離である。なお、シミュレーション対象の粒子101の大きさが一律でない等、相互作用し始める距離が粒子101毎に一律でない場合には、例えば、図3におけるd−Hについてはそれらの最小値、d+Hについてはそれらの最大値を用いることとしてもよい。
【0032】
相互作用が接触である場合、距離dは、粒子101の半径である。距離Hは、粒子101から構造物100までの距離を算出するために用いる仮想粒子110を特定するための距離である(詳細には後述する)。距離Hは、予め設定されている。上記の通り、仮想領域設定部13は、距離Hに応じた範囲の構造物100の表面の近傍に複数の仮想粒子110を設定することとしてもよい。なお、距離dが距離Hに比べて大きい場合、構造物100の表面及び内側には、仮想粒子110が設定されない場合もある。また、仮想粒子110が設定される領域(法線方向の距離、厚み)は、上記のように設定(算出)される必要はなく、予め設定されていてもよい。
【0033】
後述するように、構造物100と、設定された仮想粒子110とは、シミュレーションの間中、位置関係が固定される。
【0034】
仮想領域設定部13は、設定した各仮想粒子110について、当該仮想粒子110から(配置された表面に係る)構造物100までの距離、例えば、仮想粒子110の中心の位置から構造物100の表面までの距離を算出する。この算出には、従来の符号付き距離関数を用いた内挿補間による方法等の任意の方法を用いることができる。なお、仮想粒子110から構造物100までの距離の算出は、仮想粒子110の配置とあわせて行われてもよい。設定された仮想粒子110は、仮想粒子110毎に一意となる番号を付与する等して、一意に特定できるようにしておく。仮想領域設定部13は、設定した仮想粒子110の位置及び上記の距離を示す情報をシミュレーション情報保持部11に格納して保持させる。
【0035】
仮想領域設定部13は、仮想粒子110の距離の算出の際に、構造物100の表面に対する法線ベクトルを算出して、距離とあわせて対応付けておいてもよい。法線ベクトルの情報は、後述する内挿補間の処理において用いられ得る。また、仮想粒子110には、ヤング率等の機械的物性を対応付けておき、後述する処理に用いることもできる。
【0036】
上記の構造物初期情報取得部12及び仮想領域設定部13による処理は、シミュレーションの各時間ステップに係る演算の前に行われる。以降の機能部は、シミュレーションの各時間ステップに係る演算のための構成である。
【0037】
位置情報取得部14は、シミュレーション対象となる粒子101の位置を示す位置情報を取得する位置情報取得手段である。具体的には、位置情報取得部14は、シミュレーション情報保持部11に保持された各粒子101の現時間ステップの粒子情報を、粒子101の位置情報として取得する。位置情報取得部14は、取得した粒子101の粒子情報を仮想領域特定部15に入力する。
【0038】
位置情報取得部14は、仮想粒子110の位置を示す位置情報も取得する。位置情報取得部14は、シミュレーション情報保持部11に保持された各粒子101の現時間ステップの位置を示す情報を取得する。位置情報取得部14は、取得した仮想粒子110の位置情報を仮想領域特定部15に出力する。
【0039】
仮想領域特定部15は、位置情報取得部14によって取得された位置情報によって示される粒子101の位置から、予め設定した距離H内の仮想粒子110を特定する仮想領域特定手段である。ここで特定された仮想粒子110は、粒子101から構造物100までの距離を内挿補間によって算出するために用いられる。即ち、距離Hは、内挿補間を行う範囲(補間範囲)を示す距離であり、内挿補間によって適切に粒子101から構造物100までの距離を算出できるような値が予め設定される。具体的には、距離Hは、仮想粒子110が単純立方格子状に設定される場合には、H>D√nを満たすように、仮想粒子110が面心立方格子状に設定される場合には、H>Dを満たすようにされるのがよい。なお、上記の関係式で、Dは図3に示すように仮想粒子110の直径であり、nは作業領域の次元数である。
【0040】
図4に示すように、仮想領域特定部15は、粒子101毎に、位置情報取得部14から入力した情報によって示される粒子101(粒子i)の位置(粒子101の中心の位置)と各仮想粒子110(粒子j)の位置(仮想粒子110の中心の位置)との間の距離Pijを算出する。仮想領域特定部15は、算出した距離Pijが距離H以内であるか否かを判断する。仮想領域特定部15は、当該判断に基づき、粒子101毎に、粒子101からの距離が距離H以内である仮想粒子110を特定する。図4に示す例では、4つの仮想粒子110aが特定される。仮想領域特定部15は、粒子101毎に特定された仮想粒子110を示す情報を粒子距離算出部16に出力する。
【0041】
なお、距離H内の仮想粒子110の特定は、従来の粒子シミュレーションにおける粒子間の接触判定(粒子間距離が閾値以内かの判定)の方法を利用して、効率的に行うこととしてもよい。例えば、特開2015−115567号公報(特許文献1)及び特開2010−238030号公報(特許文献2)に記載されたような、粒子101及び仮想粒子110が位置するセルに基づいて、粒子101と仮想粒子110とのペアを設定し、当該ペアについて距離の判断を行う方法をとってもよい。
【0042】
粒子距離算出部16は、仮想領域特定部15によって特定された仮想粒子110について、仮想領域設定部13によって算出された距離に基づいて、粒子101から構造物100までの距離(最近接距離)を算出する粒子距離算出手段である。粒子距離算出部16は、シミュレーション情報保持部11に保持された、粒子101毎に特定された仮想粒子110についての構造物100までの距離を示す情報を取得する。粒子距離算出部16は、取得した情報によって示される距離に基づいて、粒子101から構造物100までの距離(図4に示す粒子101(粒子i)の中心の位置から構造物100の表面までの距離disを算出する。この算出は、例えば、非特許文献1に示される従来の内挿補間によって行われてもよいし、その他の任意の方法で行うこととしてもよい。例えば、SPH等で用いられるカーネル近似も用いることができる。
【0043】
特定された仮想粒子110がない、あるいは、特定された仮想粒子110が内挿補間を行うのに不十分な数である(例えば、予め設定した閾値以下である)場合には、当該粒子101については、構造物100までの距離が少なくとも相互作用が発生する距離にはなっていないとして、構造物100までの距離を算出しない。この場合、当該距離を用いた処理も行われない。粒子距離算出部16は、粒子101毎に算出した構造物100までの距離を示す情報を相互作用力算出部17に出力する。
【0044】
また、粒子距離算出部16は、通常、上記の距離算出の際に粒子101から構造物100の表面に対する法線ベクトルを算出する。法線ベクトルによって、相互作用力算出部17によって算出される相互作用力をベクトル量で表すことができる。当該ベクトル量が表す方向は、相互作用力が作用する方向を表す。法線ベクトルは、粒子101毎に特定された仮想粒子110についての構造物100までの距離(距離関数データ)に対して空間勾配を計算することで求めることができる。なお、空間勾配からの法線ベクトルの算出は、例えば、非特許文献1に示される従来の方法によって行われてもよい。あるいは、仮想粒子110について予め法線ベクトルを算出している場合には、その情報を内挿補間して算出することとしてもよい。その他の任意の方法で行うこととしてもよい。例えば、SPH等で用いられるカーネル近似による勾配算出法も用いることができる。粒子距離算出部16は、算出した法線ベクトルを示す情報を、距離を示す情報とあわせて相互作用力算出部17に出力する。
【0045】
相互作用力算出部17は、粒子距離算出部16によって算出された距離に基づいて、粒子101と構造物100との間の相互作用力を算出する相互作用力算出手段である。相互作用力算出部17は、粒子101から構造物100までの距離が、予め設定された閾値よりも小さいか否かを判断することで粒子101と構造物100との間で相互作用が発生し得るか否かの判定(相互作用判定)を行う。相互作用力算出部17は、当該距離が閾値よりも小さいと判断した場合、粒子101と構造物100との間で相互作用が発生すると判定する。相互作用力算出部17は、当該距離が閾値よりも小さくないと判断した場合、粒子101と構造物100との間で相互作用が発生しないと判定する。
【0046】
例えば、相互作用が接触である場合、相互作用力算出部17は、当該距離が閾値である粒子101の半径dよりも小さいか否かを判断し、当該距離が閾値よりも小さいと判断した場合、粒子101と構造物100とが接触しており、それらの間に接触力が発生すると判定する。相互作用力の計算は、従来の粒子シミュレーションと同様の方法やその他の任意の方法で行うことができる。相互作用力算出部17は、通常、粒子距離算出部16によって算出された粒子101から構造物100の表面に対する法線ベクトルに基づいて、相互作用力をベクトル量として算出する。
【0047】
相互作用力算出部17は、粒子101と構造物100との間の相互作用力だけでなく、粒子101同士の相互作用力、及び構造物100同士の相互作用力を算出してもよい。粒子101同士の相互作用力の計算は、特許文献1及び2に記載された従来の粒子シミュレーションと同様の方法やその他の任意の方法で行うことができる。構造物100同士の相互作用力の計算も、従来のシミュレーションと同様の方法やその他の任意の方法で行うことができる。なお、相互作用力の算出には、シミュレーション情報保持部11に保持されている、相互作用力の計算に必要なパラメータを取得し、相互作用力の計算に用いてもよい。
【0048】
相互作用力算出部17は、上記のように算出した個々の粒子101と構造物100との間の相互作用力、粒子101同士の相互作用力、及び構造物100同士の相互作用力から、各粒子101及び各構造物100についての相互作用力の総和を算出する。相互作用力算出部17は、算出した各粒子101及び各構造物100の相互作用力の総和を示す情報を時間遷移部18に出力する。
【0049】
時間遷移部18は、相互作用力算出部17によって算出された相互作用力に基づいて、次の時間ステップの粒子101及び構造物100の位置及び速度を算出すると共に、当該構造物100との位置関係を維持したまま仮想粒子110を移動させる時間遷移手段である。具体的には、時間遷移部18は、粒子101及び構造物100毎にシミュレーション情報保持部11に保持された粒子情報及び構造物情報を取得し、粒子情報及び構造物情報に示される現時間ステップの座標及び速度と相互作用力の総和とから、次の時間ステップの座標及び速度を算出する。この算出は、例えば、従来のシミュレーションと同様の方法やその他の任意の方法で行うことができる。時間遷移部18は、算出した次の時間ステップにおける粒子101及び構造物100の位置及び速度で、粒子101及び構造物100毎にシミュレーション情報保持部11に保持された粒子情報及び構造物情報を更新する。
【0050】
時間遷移部18は、構造物100について次の時間ステップの位置を算出すると、当該構造物100に対して設定された仮想粒子110を、当該構造物100との位置関係を維持したまま(当該構造物100の移動と同様に)移動させる。時間遷移部18は、移動させた仮想粒子110の位置を示す情報で、シミュレーション情報保持部11に保持された仮想粒子110を示す情報を更新する(当該情報を、次の時間ステップの仮想粒子110の位置を示す情報として、シミュレーション情報保持部11に保持させる)。
【0051】
なお、構造物100については、相互作用力に基づいた位置及び速度の算出を行わなくてもよい。例えば、構造物100に対する粒子101の影響が極めて小さく、また、構造物100同士の相互作用が生じない場合については、当該算出を行わなくてもよい。この場合、例えば、構造物100が予めどのように動くかを示す情報が、シミュレーション情報保持部11に記憶されており、時間遷移部18は、それに応じて構造物100の移動(次の時間ステップの位置及び速度)を算出することとしてもよい。また、時間遷移部18は、構造物100の当該移動に応じて(予め決まっている構造物100の表面の軌跡に応じて)、仮想粒子110を移動させる。
【0052】
時間遷移部18によって、全ての粒子101、構造物100及び仮想粒子110についての更新が行われると、次の時間ステップの処理が行われる。
【0053】
粒子シミュレーション装置10では、1つの時間ステップでの演算が完了する毎に、シミュレーションの終了条件を満たしているか否かが判断される。例えば、予め設定した回数(時間ステップ)の演算が終了した場合、終了条件を満たしていると判断される。終了条件を満たしていると判断された場合には、粒子シミュレーション装置10では、シミュレーションが終了される。この場合、例えば、表示装置や他の装置への演算結果の出力等が行われる。終了条件を満たしていないと判断された場合には、次の時間ステップの演算が繰り返し行われる。以上が、粒子シミュレーション装置10の構成である。
【0054】
引き続いて、図5のフローチャートを用いて、本実施形態に係る粒子シミュレーション装置10の動作方法である、粒子シミュレーション装置10で実行される処理(粒子シミュレーション方法)を説明する。本処理は、例えば、粒子シミュレーション装置10のユーザが、粒子シミュレーション装置10に対してシミュレーションを開始する操作を行うことで開始される。
【0055】
粒子シミュレーション装置10では、構造物初期情報取得部12によって、シミュレーション情報保持部11に保持されている構造物100の初期位置及び形状を示す構造物初期情報が取得される(S01、構造物初期情報取得ステップ)。構造物100の形状の例を図6(a)に示す。取得された構造物初期情報は、構造物初期情報取得部12から仮想領域設定部13に出力される。
【0056】
続いて、仮想領域設定部13によって、構造物初期情報に係る構造物100の符号付き距離関数が算出される(S02、仮想領域設定ステップ)。続いて、仮想領域設定部13によって、当該符号付き距離関数が用いられて、複数の仮想粒子110が構造物100の表面の近傍に配置(設定)される(S03、仮想領域設定ステップ)。構造物100の表面の近傍に配置された仮想粒子110の例を図6(b)に示す。続いて、仮想領域設定部13によって、仮想粒子110について、当該仮想粒子110から構造物100までの距離が算出される(S04、仮想領域設定ステップ)。仮想粒子110の位置及び距離を示す情報は、シミュレーション情報保持部11に保持される。以上がシミュレーションの各時間ステップに係る演算の前に行われる処理である。
【0057】
引き続いて、位置情報取得部14によって、シミュレーション情報保持部11に保持されている、シミュレーション対象となる粒子101及び仮想粒子110の位置を示す位置情報が取得される(S05、位置情報取得ステップ)。取得された位置情報は、位置情報取得部14から仮想領域特定部15に出力される。
【0058】
続いて、仮想領域特定部15によって、位置情報によって示される粒子101の位置から距離H内の仮想粒子110が特定される(S06、仮想領域特定ステップ)。粒子101毎に特定された仮想粒子110を示す情報は、仮想領域特定部15から粒子距離算出部16に出力される。
【0059】
続いて、粒子距離算出部16によって、粒子101毎に特定された仮想粒子110についての構造物100までの距離に基づいて、粒子101から構造物100までの距離が算出される(S07、粒子距離算出ステップ)。この算出は、上述したように例えば、内挿補間によって行われる。粒子101毎に算出された構造物100までの距離を示す情報は、粒子距離算出部16から相互作用力算出部17に出力される。
【0060】
続いて、相互作用力算出部17によって、粒子101毎に算出された構造物100までの距離に基づいて、粒子101と構造物100との間の相互作用力が算出される(S08、相互作用力算出ステップ)。この際、粒子101同士の相互作用力、及び構造物100同士の相互作用力が算出されてもよい。続いて、相互作用力算出部17によって、算出された相互作用力から、各粒子101及び各構造物100についての相互作用力の総和が算出される。算出された各粒子101及び各構造物100の相互作用力の総和を示す情報は、相互作用力算出部17から時間遷移部18に出力される。
【0061】
続いて、時間遷移部18によって、算出された相互作用力に基づいて、次の時間ステップの粒子101及び構造物100の位置及び速度が算出されると共に、当該構造物100との位置関係を維持したまま仮想粒子110が移動される(S09、時間遷移ステップ)。上記の演算に基づき、シミュレーション情報保持部11に保持された粒子情報、構造物情報、仮想粒子110の位置を示す情報が次の時間ステップの情報に更新される。
【0062】
続いて、粒子シミュレーション装置10では、シミュレーションの終了条件を満たしているか否かが判断される(S10)。終了条件を満たしていると判断された場合(S10のYES)には、処理(シミュレーション)が終了される。終了条件を満たしていないと判断された場合(S10のNO)には、時間ステップが一つ進められて、次の時間ステップでの上述した処理(S05〜S10)が行われる。
【0063】
図6(c)〜図6(f)に各時間ステップにおける状態の例を示す。図6(c)から図6(f)に進むに従って、時間ステップが進んでいる。このシミュレーションでは、容器の内側に粉体を撹拌するための回転する構造物(撹拌翼)が2つ設けられており、粉体が上部から容器の中に落ちて構造物で撹拌される。なお、それぞれの構造物には、それぞれ別の撹拌速度を与えることができる。以上が、本実施形態に係る粒子シミュレーション装置10で実行される処理である。
【0064】
上述したように本実施形態によれば、構造物100の表面の近傍に設定された複数の仮想粒子110について算出された距離に基づいて、粒子101と構造物100との間の距離計算が行われる。シミュレーションにおいて、当該仮想粒子110は、構造物100との位置関係を維持したまま移動される。従って、仮想粒子110についての距離(距離関数)を計算しなおす必要がない。
【0065】
また、作業空間内全域に渡る格子点での従来の距離関数とは異なり、構造物100の近傍に設定された仮想粒子110に対してのみ、距離が計算されていればよい。また、個々の仮想粒子110は、構造物100毎に設定され、構造物100毎の動きに伴って独立に動かすことができる。即ち、構造物100が複数存在する場合、即ち、互いに異なった移動軸や回転軸が複数存在する場合であっても、適用することができる。
【0066】
また、距離に対応付けられた仮想粒子110が動くため、移流計算による数値拡散も生じず、距離関数の初期化処理は必要ない。また、仮想粒子110を動かすだけであるので、移流計算に比べて非常に簡便で計算負荷も少ない。即ち、本実施形態によれば、粒子101と構造物100との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子101と構造物100とのシミュレーションを適切に行うことができる。
【0067】
また、上記の通り、構造物100の近傍に設定された仮想粒子110に対してのみ、距離が計算されて記憶されていればよいため、従来の距離関数と比べて記憶すべきデータ量(メモリ使用量)も圧倒的に削減することができる。
【0068】
メモリ使用量の例を以下に示す。作業空間のサイズを160D×200D×100D、補間範囲Hを3.5d、仮想粒子110の直径(格子サイズ)をD、相互作用距離dを0.5Dとした場合の例を示す。本実施形態による方法では、距離計算に必要な粒子数は85,336であり、総メモリ使用量は2,730,752(Byte)(85,336×4×8:一粒子当り8byteの変数が4個(x,y,z座標と距離関数値)必要)である。従来の方法(粒子の座標系を動かす場合)では、距離計算に必要な格子数は3,200,000であり、総メモリ使用量は102,400,000(Byte)(3,200,000×4×8:一格子当り8byteの変数が4個(x,y,z座標と距離関数値)必要)である。更に、距離関数の移流計算を行う場合、例えば、CIP法(Constrained Interpolation Profile Scheme)を用いるとすると、メモリ使用量は102,400,000+3,200,000×7×8=281,600,000(Byte)(一格子当り8byteの変数が7個必要)である。また、距離関数の時系列データを使う場合、メモリ使用量は102,400,000+3,200,000×8=128,000,000(Byte)(時間補間を行うため、2時刻の距離関数データが必要で、距離関数値が一格子当り8Byteであり、全部で3,200,000×8Byte追加で必要)である。
【0069】
上記の例のように本実施形態では、メモリ使用量を従来の約1/40〜1/100に削減することができる。
【0070】
また、本実施形態のように、仮想粒子110を設定(配置)する範囲を、粒子101から構造物100までの距離を算出するのに用いる仮想粒子110を特定する範囲(補間範囲)に応じたものとしてもよい。この構成によれば、仮想粒子110を必要な分だけ設定することができ、更に効率的に粒子101と構造物100とのシミュレーションを行うことができる。
【0071】
また、本実施形態のように、構造物100が、粒子101からの相互作用力を受けることとしてもよい。この構成によれば、構造物100に対する粒子101の影響もシミュレーションすることができるため、より正確な粒子101と構造物100とのシミュレーションを行うことができる。
【0072】
また、本実施形態のように、仮想領域を仮想粒子110とすることとしてもよい。この構成によれば、仮想領域を適切かつ容易に扱うことができる。例えば、上述したように、従来の粒子ベースのシミュレーションの手法を容易に適用することができ、本実施形態による手法を高速化することができる。即ち、適切かつ容易に粒子101と構造物100とのシミュレーションを行うことができる。但し、必ずしも仮想領域を粒子状の領域とする必要はなく、任意の形状の領域としてもよい。
【0073】
なお、上述した実施形態では、作業領域は三次元の空間としたが、三次元以外の空間、例えば、二次元の空間であってもよい。
【0074】
引き続いて、上述した一連の粒子シミュレーション装置10による処理をコンピュータに実行させるための粒子シミュレーションプログラムを説明する。図7に示すように、粒子シミュレーションプログラム30は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える記録媒体20に形成されたプログラム格納領域21内に格納される。
【0075】
粒子シミュレーションプログラム30は、シミュレーション情報保持モジュール31と、構造物初期情報取得モジュール32と、仮想領域設定モジュール33と、位置情報取得モジュール34と、仮想領域特定モジュール35と、粒子距離算出モジュール36と、相互作用力算出モジュール37と、時間遷移モジュール38とを備えて構成される。シミュレーション情報保持モジュール31と、構造物初期情報取得モジュール32と、仮想領域設定モジュール33と、位置情報取得モジュール34と、仮想領域特定モジュール35と、粒子距離算出モジュール36と、相互作用力算出モジュール37と、時間遷移モジュール38とを実行させることにより実現される機能は、上述した粒子シミュレーション装置10のシミュレーション情報保持部11と、構造物初期情報取得部12と、仮想領域設定部13と、位置情報取得部14と、仮想領域特定部15と、粒子距離算出部16と、相互作用力算出部17と、時間遷移部18とそれぞれ同様である。
【0076】
なお、粒子シミュレーションプログラム30は、その一部又は全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録(インストールを含む)される構成としてもよい。また、粒子シミュレーションプログラム30の各モジュールは、1つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の粒子シミュレーションプログラム30の処理が行われる。
【符号の説明】
【0077】
10…粒子シミュレーション装置、11…シミュレーション情報保持部、12…構造物初期情報取得部、13…仮想領域設定部、14…位置情報取得部、15…仮想領域特定部、16…粒子距離算出部、17…相互作用力算出部、18…時間遷移部、20…記録媒体、21…プログラム格納領域、30…粒子シミュレーションプログラム、31…シミュレーション情報保持モジュール、32…構造物初期情報取得モジュール、33…仮想領域設定モジュール、34…位置情報取得モジュール、35…仮想領域特定モジュール、36…粒子距離算出モジュール、37…相互作用力算出モジュール、38…時間遷移モジュール。
図1
図2
図3
図4
図5
図6
図7