(57)【特許請求の範囲】
【請求項１】
作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置であって、
構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、
前記構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、
粒子の位置を示す位置情報を取得する位置情報取得手段と、
前記位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、
前記仮想領域特定手段によって特定された仮想領域について、前記仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、
前記粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、
前記相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま前記仮想領域を移動させる時間遷移手段と、
を備える粒子シミュレーション装置。
【請求項２】
前記仮想領域設定手段は、前記予め設定した距離に応じた範囲の前記構造物の表面の近傍に複数の仮想領域を設定する請求項１に記載の粒子シミュレーション装置。
【請求項３】
前記時間遷移手段は、前記相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの構造物の位置及び速度を算出する請求項１又は２に記載の粒子シミュレーション装置。
【請求項４】
前記仮想領域は、粒子状の領域である請求項１又は２に記載の粒子シミュレーション装置。
【請求項５】
作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置の動作方法である粒子シミュレーション方法であって、
構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得ステップと、
前記構造物初期情報取得ステップにおいて取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定ステップと、
粒子の位置を示す位置情報を取得する位置情報取得ステップと、
前記位置情報取得ステップにおいて取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定ステップと、
前記仮想領域特定ステップにおいて特定された仮想領域について、前記仮想領域設定ステップにおいて算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出ステップと、
前記粒子距離算出ステップにおいて算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出ステップと、
前記相互作用力算出ステップにおいて算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま前記仮想領域を移動させる時間遷移ステップと、
を含む粒子シミュレーション方法。
【請求項６】
コンピュータを、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置として機能させる粒子シミュレーションプログラムであって、
前記コンピュータを、
構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、
前記構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、
粒子の位置を示す位置情報を取得する位置情報取得手段と、
前記位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、
前記仮想領域特定手段によって特定された仮想領域について、前記仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、
前記粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、
前記相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま前記仮想領域を移動させる時間遷移手段と、
として機能させる粒子シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、粒子及び構造物の挙動をシミュレーションする粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラムに関する。
【背景技術】
【０００２】
従来、ＤＥＭ（Discrete Element Method）、ＳＰＨ（Smoothed Particle Hydrodynamics）及びＭＰＳ（MovingParticle Semi-implicit method）等の粒子法シミュレーションによって、粒子と複雑な形状の構造物との挙動の解析が行われている。このようなシミュレーションでは、粒子と構造物との接触判定を行う必要がある。最近では、計算負荷やシミュレーションの正確性等が考慮されて、符号付き距離関数を用いた接触判定が提案されている（例えば、非特許文献１参照）。符号付き距離関数とは、シミュレーションの対象となる空間内を任意サイズの直交格子で分割し、格子点上から構造物表面までの最近接距離を格子点に記憶させたものである（例えば、非特許文献２参照）。粒子から構造物までの距離が、粒子が位置する格子及び隣接格子の距離関数データを用いて内挿補間して求められ、算出された距離に基づいて接触判定が行われる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Y. Shigeto, M. Sakai,Arbitrary-shaped wall boundary modeling based on signed distance functions forgranular flow simulations, Chem. Eng. J. 231 (2013) 464-476.
【非特許文献２】Y. Wu, J. Man, Z. Xie, Adouble layer method for constructing signed distance fields from trianglemeshes, Graphical Models 76 (2014) 214-223.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
構造物の時間変化に伴う移動に対して、距離関数は、例えば、次の何れかのように扱われる。（１）距離関数を固定し、構造物の移動及び回転に対応させて粒子の座標系を平行移動及び回転させる。しかし、この方法は、構造物が複数存在する場合、即ち、移動軸や回転軸が複数存在する場合には適用できない。（２）構造物が動くたびに距離関数を作製し直す。しかし、この方法は距離関数を作り直すための計算コストが膨大となり、実際の計算に用いるのは容易ではない。（３）微分方程式を用いた距離関数の移流計算を行う。しかし、この方法は、格子法であるために数値拡散が生じて距離関数がなまるため、通常、一定時間間隔毎に距離関数を新たに計算し直す再初期化が必要となる。また、その際、それまで格子点上で滑らかに変化していた距離関数が不連続に変化し、不連続に変化する距離振動が発生する。上記の数値拡散や数値振動により、シミュレーションの正確性が低くなり、産業や学術分野では計算精度の面から実用に向かない。（４）構造物の移動に応じて距離関数の時系列データを予め複数用意しておく。しかし、この方法は、格子数×時系列数だけデータ量が必要となり、予め記憶するデータ量が膨大になる。
【０００５】
本発明は、上記の問題点に鑑みてなされたものであり、粒子と構造物との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子と構造物とのシミュレーションを適切に行うことができる粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明に係る粒子シミュレーション装置は、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置であって、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、粒子の位置を示す位置情報を取得する位置情報取得手段と、位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、仮想領域特定手段によって特定された仮想領域について、仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま仮想領域を移動させる時間遷移手段と、を備える。
【０００７】
本発明に係る粒子シミュレーション装置では、構造物の表面の近傍に設定された複数の仮想領域について算出された距離に基づいて、粒子と構造物との間の距離計算が行われる。シミュレーションにおいて、当該仮想領域は、構造物との位置関係を維持したまま移動される。従って、仮想領域についての距離（距離関数）を計算しなおす必要がない。また、従来の距離関数とは異なり構造物の近傍に設定された仮想領域に対してのみ、距離が計算されていればよい。また、仮想領域は、構造物毎に設定されるため、構造物が複数存在する場合、即ち、互いに異なった移動軸や回転軸が複数存在する場合であっても、適用することができる。また、距離に対応付けられた仮想領域が動くため、移流計算による数値拡散も生じない。即ち、本発明に係る粒子シミュレーション装置によれば、粒子と構造物との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子と構造物とのシミュレーションを適切に行うことができる。
【０００８】
仮想領域設定手段は、予め設定した距離に応じた範囲の構造物の表面の近傍に複数の仮想領域を設定することとしてもよい。この構成によれば、仮想領域を必要な分だけ設定することができ、更に効率的に粒子と構造物とのシミュレーションを行うことができる。
【０００９】
時間遷移手段は、相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの構造物の位置及び速度を算出することとしてもよい。この構成によれば、構造物に対する粒子の影響もシミュレーションすることができるため、より正確な粒子と構造物とのシミュレーションを行うことができる。
【００１０】
仮想領域は、粒子状の領域であることとしてもよい。この構成によれば、仮想領域を適切かつ容易に扱うことができ、適切かつ容易に粒子と構造物とのシミュレーションを行うことができる。
【００１１】
ところで、本発明は、上記のように粒子シミュレーション装置の発明として記述できる他に、以下のように粒子シミュレーション方法及び粒子シミュレーションプログラムの発明としても記述することができる。これはカテゴリが異なるだけで、実質的に同一の発明であり、同様の作用及び効果を奏する。
【００１２】
即ち、本発明に係る粒子シミュレーション方法は、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置の動作方法である粒子シミュレーション方法であって、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得ステップと、構造物初期情報取得ステップにおいて取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定ステップと、粒子の位置を示す位置情報を取得する位置情報取得ステップと、位置情報取得ステップにおいて取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定ステップと、仮想領域特定ステップにおいて特定された仮想領域について、仮想領域設定ステップにおいて算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出ステップと、粒子距離算出手段において算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出ステップと、相互作用力算出ステップにおいて算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま仮想領域を移動させる時間遷移ステップと、を含む。
【００１３】
また、本発明に係る粒子シミュレーションプログラムは、コンピュータを、作業空間内の粒子と構造物との間の相互作用力に基づいて、当該粒子の位置及び速度を算出し、当該粒子及び当該構造物の挙動をシミュレーションする粒子シミュレーション装置として機能させる粒子シミュレーションプログラムであって、コンピュータを、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段と、構造物初期情報取得手段によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離を算出する仮想領域設定手段と、粒子の位置を示す位置情報を取得する位置情報取得手段と、位置情報取得手段によって取得された位置情報によって示される粒子の位置から、予め設定した距離内の仮想領域を特定する仮想領域特定手段と、仮想領域特定手段によって特定された仮想領域について、仮想領域設定手段によって算出された距離に基づいて、粒子から構造物までの距離を算出する粒子距離算出手段と、粒子距離算出手段によって算出された距離に基づいて、粒子と構造物との間の相互作用力を算出する相互作用力算出手段と、相互作用力算出手段によって算出された相互作用力に基づいて、次の時間ステップの粒子の位置及び速度を算出すると共に、当該構造物との位置関係を維持したまま仮想領域を移動させる時間遷移手段と、として機能させる。
【発明の効果】
【００１４】
本発明では、仮想領域についての距離（距離関数）を計算しなおす必要がない。また、従来の距離関数とは異なり構造物の近傍に設定された仮想領域に対してのみ、距離が計算されていればよい。また、仮想領域は、構造物毎に設定されるため、構造物が複数存在する場合、即ち、互いに異なった移動軸や回転軸が複数存在する場合であっても、適用することができる。また、距離に対応付けられた仮想領域が動くため、移流計算による数値拡散も生じない。即ち、本発明によれば、粒子と構造物との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子と構造物とのシミュレーションを適切に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る粒子シミュレーション装置の機能構成を示す図である。
【図２】構造物に対する仮想粒子を模式的に示す図である。
【図３】構造物に対する仮想粒子が配置される範囲及び配置された状態を示す図である。
【図４】シミュレーション対象の粒子から設定した距離内の仮想粒子を模式的に示す図である。
【図５】本発明の実施形態に係る粒子シミュレーション装置で実行される処理（粒子シミュレーション方法）を示すフローチャートである。
【図６】本発明の実施形態におけるシミュレーションの実行中の状態（スナップショット）を示す図である。
【図７】本発明の実施形態に係る粒子シミュレーションプログラムの構成を、記録媒体と共に示す図である。
【発明を実施するための形態】
【００１６】
以下、図面と共に本発明に係る粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラムの実施形態について詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１７】
図１に本実施形態に係る粒子シミュレーション装置１０を示す。粒子シミュレーション装置１０は、作業空間（計算領域）内の複数の球形（中心から表面までの距離が一定の形状）の粒子及び構造物の挙動をシミュレーション（解析）する装置である。具体的には、粒子シミュレーション装置は、シミュレーション上の時刻である時間ステップ毎に各粒子及び構造物の位置及び速度に基づき、各粒子に働く力を算出する。各粒子及び構造物に働く力には、例えば、粒子と構造物との間、及び粒子間での相互作用である接触（衝突）による相互作用力である接触力が含まれる。なお、粒子と構造物との間、及び粒子間での相互作用は、必ずしも接触に限られず、位置及び速度に影響を及ぼすものであれば任意のものとしてもよい。粒子シミュレーション装置１０は、算出した力に基づいて、次の時間ステップにおける各粒子及び構造物の位置及び速度を算出する。なお、本実施形態における粒子シミュレーションは、ＤＥＭに基づいて行われるが、ＳＰＨやＭＰＳ等の他の粒子法に基づいて行われてもよい。また、粒子法の種類によっては、粒子径や回転速度を情報として保持しなくてもよい。
【００１８】
本実施形態に係る粒子シミュレーション装置１０によるシミュレーションの対象となる粒子は、従来の粒子シミュレーションの対象となっていた任意の粒子を含む。例えば、土砂や粉体を対象とすることができる。あるいは、流体や固体を複数の粒子からなるものと仮定して対象とすることとしてもよい。本実施形態に係る粒子シミュレーション装置１０によるシミュレーションの対象となる構造物は、任意の物体を含む。例えば、粉体を撹拌、混合する装置（の粉体を撹拌、混合する部分（撹拌翼））を対象とする。シミュレーションの対象となる構造物は、複数あってもよい。
【００１９】
本実施形態に係る粒子シミュレーション装置１０によるシミュレーションにより、物理的な問題をシミュレーションすることができる。例えば、粉体の撹拌、混合についてのシミュレーションを行うことができる。あるいは、ドリルビットの形状に応じた掘削能力の検証やブルドーザー等の建機や重機の設計にも用いることも考えられる。このように、本実施形態に係る粒子シミュレーション装置１０によるシミュレーションは、土木、粉体等の産業分野での適用が考えられる。また、堤防、建物、地形と津波や土砂との相互作用や土砂崩れ、雪崩等の自然現象のシミュレーションにも用いることができる。このように、本実施形態に係る粒子シミュレーション装置１０によるシミュレーションは、防災分野での適用も考えられる。
【００２０】
粒子シミュレーション装置１０は、例えば、ＣＰＵ（CentralProcessing Unit）、ＧＰＵ（Graphics Processing Unit）、メモリ、ハードディスク、ディスプレイ等のハードウェアを備えるコンピュータとして構成される。これらの構成要素がプログラム等により動作することによって、後述する粒子シミュレーション装置１０としての機能が発揮される。粒子シミュレーション装置１０は、並列演算が可能な装置において特に効果的に動作する。なお、粒子シミュレーション装置１０は、演算装置としては必ずしもＧＰＵを備えている必要はなく、ＣＰＵのみを備えた構成であってもよい。
【００２１】
図１に示すように粒子シミュレーション装置１０は、シミュレーション情報保持部１１と、構造物初期情報取得部１２と、仮想領域設定部１３と、位置情報取得部１４と、仮想領域特定部１５と、粒子距離算出部１６と、相互作用力算出部１７と、時間遷移部１８とを備えて構成される。
【００２２】
本実施形態において粒子が運動する領域である作業領域は、例えば、三次元の空間であり、一辺の大きさが予め設定された立方体のセル（メッシュ）に分割（区分）されている。なお、セルは立方体以外の形状、例えば、直方体であってもよい。粒子シミュレーション装置１０は、シミュレーションの処理を行う前に作業空間を予めセルに分割しており、作業空間がどのようにセルに分割されているか予め把握している。上記の一辺の大きさは、例えば、シミュレーションの対象となる複数の粒子の粒子径等に応じて予め設定されている。また、作業領域内の各セルにはセルを特定するセル番号が付されている。セル番号は、例えば、作業空間内のセルの位置に応じて順番に付されている。
【００２３】
シミュレーション情報保持部１１は、シミュレーションに用いられる情報を保持する手段である。具体的には、シミュレーション情報保持部１１は、作業領域内の複数の粒子それぞれについての粒子情報を保持する。粒子情報は、粒子の座標、粒子の速度及び粒子半径を示す情報を含む。粒子の座標は、作業空間における粒子の位置を示す三次元座標である。粒子の速度は、並進速度及び回転速度を含む。粒子の座標及び粒子の速度については、シミュレーションの開始時の情報（初期情報）は、予めシミュレーション情報保持部１１に粒子シミュレーション装置１０のユーザ等により入力されており、また、シミュレーション中の情報は、後述する時間遷移部１８によって更新される。粒子半径は、予めシミュレーション情報保持部１１に粒子シミュレーション装置１０のユーザ等により入力されている。
【００２４】
シミュレーション情報保持部１１は、作業領域内の構造物それぞれについての構造物情報を保持する。構造物情報は、構造物の座標、構造物の速度及び構造物の形状を示す情報を含む。構造物の座標は、作業空間における構造物の位置（例えば、構造物の特定の箇所の位置）を示す三次元座標である。構造物の速度は、並進速度及び回転速度を含む。構造物の座標及び構造物の速度については、粒子の座標及び粒子の速度と同様に、シミュレーションの開始時の情報（初期情報）は、予めシミュレーション情報保持部１１に粒子シミュレーション装置１０のユーザ等により入力されており、また、シミュレーション中の情報は、後述する時間遷移部１８によって更新される。構造物の形状を示す情報は、例えば、ポリゴンで構造物の形状を表したＣＡＤ（computer-aided design）データである。構造物の形状を示す情報は、予めシミュレーション情報保持部１１に粒子シミュレーション装置１０のユーザ等により入力されている。構造物情報は、構造物がどのように移動するか（例えば、移動軸や回転軸等）を示す情報を含んでいてもよい。当該情報も、予めシミュレーション情報保持部１１に粒子シミュレーション装置１０のユーザ等により入力されている。
【００２５】
また、シミュレーション情報保持部１１は、後述するように仮想粒子の情報を保持する。また、シミュレーション情報保持部１１は、上記の粒子情報及び構造物情報以外のシミュレーションに利用される情報を、予め入力して保持していてもよい。このような情報としては、摩擦係数、弾性係数、粘性減衰係数、反発係数等である。
【００２６】
構造物初期情報取得部１２は、構造物の初期位置及び形状を示す構造物初期情報を取得する構造物初期情報取得手段である。例えば、構造物初期情報取得部１２は、シミュレーション情報保持部１１に保持されている構造物に係る初期情報、及び構造物の形状を示す情報を構造物初期情報として取得する。構造物初期情報取得部１２は、取得した構造物初期情報を仮想領域設定部１３に出力する。
【００２７】
仮想領域設定部１３は、構造物初期情報取得部１２によって取得された構造物初期情報によって示される構造物の初期位置及び形状に基づいて、当該構造物の表面の近傍に複数の仮想領域を設定し、設定した複数の仮想領域それぞれについて、構造物までの距離（最近接距離）を算出する仮想領域設定手段である。仮想領域は、後述するように、シミュレーション対象の粒子から構造物までの距離の算出に用いる領域である。本実施形態では、仮想領域は、球形（中心から表面までの距離が一定の形状）の粒子状の領域であり、仮想粒子と呼ぶ。複数の仮想粒子の径の長さは一律であり、予め設定されている。仮想粒子は、計算の負荷等を考慮して、シミュレーション対象の粒子よりも大きいものとしてもよい。
【００２８】
上述したように、従来は、シミュレーション対象の粒子から構造物までの距離は、非特許文献１に示されるように符号付き距離関数が用いられて求められていた。例えば、符号付き距離関数は、作業領域がセルに（直交格子で）分割された格子点に構造物からの距離を記憶させたものである。図２（ａ）に格子点状の距離関数値を基にして生成された構造物１００からの等しい距離の位置を線で結んだ等値線図を示す。本実施形態では、図２（ｂ）に示すように、構造物１００の表面（構造物１００とそれ以外の部分との境界）の近傍に複数の仮想粒子１１０を設定する。
【００２９】
具体的には、仮想領域設定部１３は、まず、構造物初期情報によって初期位置及び形状が示される構造物１００についての符号付き距離関数を算出する。この算出は、非特許文献２に記載されているような従来の方法を用いて行えばよい。仮想領域設定部１３は、算出した符号付き距離関数に基づいて、作業領域内の構造物１００からの近傍の位置を検出する。構造物からの近傍は、図２（ｂ）に示すように、構造物の外側、表面及び内側の領域を含む。仮想領域設定部１３は、当該近傍の領域に、互いに接触するように複数の仮想粒子１１０を設定する。例えば、作業領域が三次元である場合には、仮想領域設定部１３は、当該領域内において単純立方格子又は面心立方格子の格子点を設定し、当該格子点に仮想粒子１１０を設定（配置）する。なお、仮想粒子の設定には、構造物１００からの距離が分かればよいので必ずしも符号付き距離関数を用いる必要はなく、任意の方法で行われてもよい。
【００３０】
仮想粒子１１０を設定する構造物１００の表面の部分は、シミュレーション対象の粒子が接触する（相互作用する）可能性がある部分である。構造物１００の表面全体に渡って粒子が接触する可能性がある場合には、図２（ｂ）に示すように、構造物１００の表面全体に渡って表面の近傍に仮想粒子１１０を設定する。接触する可能性がない場所が予め分かっている場合には、その部分の近傍には仮想粒子１１０を設定しなくてもよい。
【００３１】
仮想領域設定部１３は、構造物１００の表面の法線方向においては、所定の距離（所定の厚み）の範囲を構造物からの近傍とする。例えば、図３に示すように、構造物１００の表面から外側へ距離ｄ離れた位置をその距離の中心として、そこから外側及び内側（図３における上下方向）へそれぞれ距離Ｈ分の領域を構造物１００の近傍の領域とする。距離ｄは、構造物１００と、シミュレーション対象の粒子１０１とが相互作用し始める、構造物１００の表面と粒子１０１の中心との間の距離である。なお、シミュレーション対象の粒子１０１の大きさが一律でない等、相互作用し始める距離が粒子１０１毎に一律でない場合には、例えば、図３におけるｄ−Ｈについてはそれらの最小値、ｄ＋Ｈについてはそれらの最大値を用いることとしてもよい。
【００３２】
相互作用が接触である場合、距離ｄは、粒子１０１の半径である。距離Ｈは、粒子１０１から構造物１００までの距離を算出するために用いる仮想粒子１１０を特定するための距離である（詳細には後述する）。距離Ｈは、予め設定されている。上記の通り、仮想領域設定部１３は、距離Ｈに応じた範囲の構造物１００の表面の近傍に複数の仮想粒子１１０を設定することとしてもよい。なお、距離ｄが距離Ｈに比べて大きい場合、構造物１００の表面及び内側には、仮想粒子１１０が設定されない場合もある。また、仮想粒子１１０が設定される領域（法線方向の距離、厚み）は、上記のように設定（算出）される必要はなく、予め設定されていてもよい。
【００３３】
後述するように、構造物１００と、設定された仮想粒子１１０とは、シミュレーションの間中、位置関係が固定される。
【００３４】
仮想領域設定部１３は、設定した各仮想粒子１１０について、当該仮想粒子１１０から（配置された表面に係る）構造物１００までの距離、例えば、仮想粒子１１０の中心の位置から構造物１００の表面までの距離を算出する。この算出には、従来の符号付き距離関数を用いた内挿補間による方法等の任意の方法を用いることができる。なお、仮想粒子１１０から構造物１００までの距離の算出は、仮想粒子１１０の配置とあわせて行われてもよい。設定された仮想粒子１１０は、仮想粒子１１０毎に一意となる番号を付与する等して、一意に特定できるようにしておく。仮想領域設定部１３は、設定した仮想粒子１１０の位置及び上記の距離を示す情報をシミュレーション情報保持部１１に格納して保持させる。
【００３５】
仮想領域設定部１３は、仮想粒子１１０の距離の算出の際に、構造物１００の表面に対する法線ベクトルを算出して、距離とあわせて対応付けておいてもよい。法線ベクトルの情報は、後述する内挿補間の処理において用いられ得る。また、仮想粒子１１０には、ヤング率等の機械的物性を対応付けておき、後述する処理に用いることもできる。
【００３６】
上記の構造物初期情報取得部１２及び仮想領域設定部１３による処理は、シミュレーションの各時間ステップに係る演算の前に行われる。以降の機能部は、シミュレーションの各時間ステップに係る演算のための構成である。
【００３７】
位置情報取得部１４は、シミュレーション対象となる粒子１０１の位置を示す位置情報を取得する位置情報取得手段である。具体的には、位置情報取得部１４は、シミュレーション情報保持部１１に保持された各粒子１０１の現時間ステップの粒子情報を、粒子１０１の位置情報として取得する。位置情報取得部１４は、取得した粒子１０１の粒子情報を仮想領域特定部１５に入力する。
【００３８】
位置情報取得部１４は、仮想粒子１１０の位置を示す位置情報も取得する。位置情報取得部１４は、シミュレーション情報保持部１１に保持された各粒子１０１の現時間ステップの位置を示す情報を取得する。位置情報取得部１４は、取得した仮想粒子１１０の位置情報を仮想領域特定部１５に出力する。
【００３９】
仮想領域特定部１５は、位置情報取得部１４によって取得された位置情報によって示される粒子１０１の位置から、予め設定した距離Ｈ内の仮想粒子１１０を特定する仮想領域特定手段である。ここで特定された仮想粒子１１０は、粒子１０１から構造物１００までの距離を内挿補間によって算出するために用いられる。即ち、距離Ｈは、内挿補間を行う範囲（補間範囲）を示す距離であり、内挿補間によって適切に粒子１０１から構造物１００までの距離を算出できるような値が予め設定される。具体的には、距離Ｈは、仮想粒子１１０が単純立方格子状に設定される場合には、Ｈ＞Ｄ√ｎを満たすように、仮想粒子１１０が面心立方格子状に設定される場合には、Ｈ＞Ｄを満たすようにされるのがよい。なお、上記の関係式で、Ｄは図３に示すように仮想粒子１１０の直径であり、ｎは作業領域の次元数である。
【００４０】
図４に示すように、仮想領域特定部１５は、粒子１０１毎に、位置情報取得部１４から入力した情報によって示される粒子１０１（粒子ｉ）の位置（粒子１０１の中心の位置）と各仮想粒子１１０（粒子ｊ）の位置（仮想粒子１１０の中心の位置）との間の距離Ｐｉｊを算出する。仮想領域特定部１５は、算出した距離Ｐｉｊが距離Ｈ以内であるか否かを判断する。仮想領域特定部１５は、当該判断に基づき、粒子１０１毎に、粒子１０１からの距離が距離Ｈ以内である仮想粒子１１０を特定する。図４に示す例では、４つの仮想粒子１１０ａが特定される。仮想領域特定部１５は、粒子１０１毎に特定された仮想粒子１１０を示す情報を粒子距離算出部１６に出力する。
【００４１】
なお、距離Ｈ内の仮想粒子１１０の特定は、従来の粒子シミュレーションにおける粒子間の接触判定（粒子間距離が閾値以内かの判定）の方法を利用して、効率的に行うこととしてもよい。例えば、特開２０１５−１１５５６７号公報（特許文献１）及び特開２０１０−２３８０３０号公報（特許文献２）に記載されたような、粒子１０１及び仮想粒子１１０が位置するセルに基づいて、粒子１０１と仮想粒子１１０とのペアを設定し、当該ペアについて距離の判断を行う方法をとってもよい。
【００４２】
粒子距離算出部１６は、仮想領域特定部１５によって特定された仮想粒子１１０について、仮想領域設定部１３によって算出された距離に基づいて、粒子１０１から構造物１００までの距離（最近接距離）を算出する粒子距離算出手段である。粒子距離算出部１６は、シミュレーション情報保持部１１に保持された、粒子１０１毎に特定された仮想粒子１１０についての構造物１００までの距離を示す情報を取得する。粒子距離算出部１６は、取得した情報によって示される距離に基づいて、粒子１０１から構造物１００までの距離（図４に示す粒子１０１（粒子ｉ）の中心の位置から構造物１００の表面までの距離ｄｉｓｉを算出する。この算出は、例えば、非特許文献１に示される従来の内挿補間によって行われてもよいし、その他の任意の方法で行うこととしてもよい。例えば、ＳＰＨ等で用いられるカーネル近似も用いることができる。
【００４３】
特定された仮想粒子１１０がない、あるいは、特定された仮想粒子１１０が内挿補間を行うのに不十分な数である（例えば、予め設定した閾値以下である）場合には、当該粒子１０１については、構造物１００までの距離が少なくとも相互作用が発生する距離にはなっていないとして、構造物１００までの距離を算出しない。この場合、当該距離を用いた処理も行われない。粒子距離算出部１６は、粒子１０１毎に算出した構造物１００までの距離を示す情報を相互作用力算出部１７に出力する。
【００４４】
また、粒子距離算出部１６は、通常、上記の距離算出の際に粒子１０１から構造物１００の表面に対する法線ベクトルを算出する。法線ベクトルによって、相互作用力算出部１７によって算出される相互作用力をベクトル量で表すことができる。当該ベクトル量が表す方向は、相互作用力が作用する方向を表す。法線ベクトルは、粒子１０１毎に特定された仮想粒子１１０についての構造物１００までの距離（距離関数データ）に対して空間勾配を計算することで求めることができる。なお、空間勾配からの法線ベクトルの算出は、例えば、非特許文献１に示される従来の方法によって行われてもよい。あるいは、仮想粒子１１０について予め法線ベクトルを算出している場合には、その情報を内挿補間して算出することとしてもよい。その他の任意の方法で行うこととしてもよい。例えば、ＳＰＨ等で用いられるカーネル近似による勾配算出法も用いることができる。粒子距離算出部１６は、算出した法線ベクトルを示す情報を、距離を示す情報とあわせて相互作用力算出部１７に出力する。
【００４５】
相互作用力算出部１７は、粒子距離算出部１６によって算出された距離に基づいて、粒子１０１と構造物１００との間の相互作用力を算出する相互作用力算出手段である。相互作用力算出部１７は、粒子１０１から構造物１００までの距離が、予め設定された閾値よりも小さいか否かを判断することで粒子１０１と構造物１００との間で相互作用が発生し得るか否かの判定（相互作用判定）を行う。相互作用力算出部１７は、当該距離が閾値よりも小さいと判断した場合、粒子１０１と構造物１００との間で相互作用が発生すると判定する。相互作用力算出部１７は、当該距離が閾値よりも小さくないと判断した場合、粒子１０１と構造物１００との間で相互作用が発生しないと判定する。
【００４６】
例えば、相互作用が接触である場合、相互作用力算出部１７は、当該距離が閾値である粒子１０１の半径ｄよりも小さいか否かを判断し、当該距離が閾値よりも小さいと判断した場合、粒子１０１と構造物１００とが接触しており、それらの間に接触力が発生すると判定する。相互作用力の計算は、従来の粒子シミュレーションと同様の方法やその他の任意の方法で行うことができる。相互作用力算出部１７は、通常、粒子距離算出部１６によって算出された粒子１０１から構造物１００の表面に対する法線ベクトルに基づいて、相互作用力をベクトル量として算出する。
【００４７】
相互作用力算出部１７は、粒子１０１と構造物１００との間の相互作用力だけでなく、粒子１０１同士の相互作用力、及び構造物１００同士の相互作用力を算出してもよい。粒子１０１同士の相互作用力の計算は、特許文献１及び２に記載された従来の粒子シミュレーションと同様の方法やその他の任意の方法で行うことができる。構造物１００同士の相互作用力の計算も、従来のシミュレーションと同様の方法やその他の任意の方法で行うことができる。なお、相互作用力の算出には、シミュレーション情報保持部１１に保持されている、相互作用力の計算に必要なパラメータを取得し、相互作用力の計算に用いてもよい。
【００４８】
相互作用力算出部１７は、上記のように算出した個々の粒子１０１と構造物１００との間の相互作用力、粒子１０１同士の相互作用力、及び構造物１００同士の相互作用力から、各粒子１０１及び各構造物１００についての相互作用力の総和を算出する。相互作用力算出部１７は、算出した各粒子１０１及び各構造物１００の相互作用力の総和を示す情報を時間遷移部１８に出力する。
【００４９】
時間遷移部１８は、相互作用力算出部１７によって算出された相互作用力に基づいて、次の時間ステップの粒子１０１及び構造物１００の位置及び速度を算出すると共に、当該構造物１００との位置関係を維持したまま仮想粒子１１０を移動させる時間遷移手段である。具体的には、時間遷移部１８は、粒子１０１及び構造物１００毎にシミュレーション情報保持部１１に保持された粒子情報及び構造物情報を取得し、粒子情報及び構造物情報に示される現時間ステップの座標及び速度と相互作用力の総和とから、次の時間ステップの座標及び速度を算出する。この算出は、例えば、従来のシミュレーションと同様の方法やその他の任意の方法で行うことができる。時間遷移部１８は、算出した次の時間ステップにおける粒子１０１及び構造物１００の位置及び速度で、粒子１０１及び構造物１００毎にシミュレーション情報保持部１１に保持された粒子情報及び構造物情報を更新する。
【００５０】
時間遷移部１８は、構造物１００について次の時間ステップの位置を算出すると、当該構造物１００に対して設定された仮想粒子１１０を、当該構造物１００との位置関係を維持したまま（当該構造物１００の移動と同様に）移動させる。時間遷移部１８は、移動させた仮想粒子１１０の位置を示す情報で、シミュレーション情報保持部１１に保持された仮想粒子１１０を示す情報を更新する（当該情報を、次の時間ステップの仮想粒子１１０の位置を示す情報として、シミュレーション情報保持部１１に保持させる）。
【００５１】
なお、構造物１００については、相互作用力に基づいた位置及び速度の算出を行わなくてもよい。例えば、構造物１００に対する粒子１０１の影響が極めて小さく、また、構造物１００同士の相互作用が生じない場合については、当該算出を行わなくてもよい。この場合、例えば、構造物１００が予めどのように動くかを示す情報が、シミュレーション情報保持部１１に記憶されており、時間遷移部１８は、それに応じて構造物１００の移動（次の時間ステップの位置及び速度）を算出することとしてもよい。また、時間遷移部１８は、構造物１００の当該移動に応じて（予め決まっている構造物１００の表面の軌跡に応じて）、仮想粒子１１０を移動させる。
【００５２】
時間遷移部１８によって、全ての粒子１０１、構造物１００及び仮想粒子１１０についての更新が行われると、次の時間ステップの処理が行われる。
【００５３】
粒子シミュレーション装置１０では、１つの時間ステップでの演算が完了する毎に、シミュレーションの終了条件を満たしているか否かが判断される。例えば、予め設定した回数（時間ステップ）の演算が終了した場合、終了条件を満たしていると判断される。終了条件を満たしていると判断された場合には、粒子シミュレーション装置１０では、シミュレーションが終了される。この場合、例えば、表示装置や他の装置への演算結果の出力等が行われる。終了条件を満たしていないと判断された場合には、次の時間ステップの演算が繰り返し行われる。以上が、粒子シミュレーション装置１０の構成である。
【００５４】
引き続いて、図５のフローチャートを用いて、本実施形態に係る粒子シミュレーション装置１０の動作方法である、粒子シミュレーション装置１０で実行される処理（粒子シミュレーション方法）を説明する。本処理は、例えば、粒子シミュレーション装置１０のユーザが、粒子シミュレーション装置１０に対してシミュレーションを開始する操作を行うことで開始される。
【００５５】
粒子シミュレーション装置１０では、構造物初期情報取得部１２によって、シミュレーション情報保持部１１に保持されている構造物１００の初期位置及び形状を示す構造物初期情報が取得される（Ｓ０１、構造物初期情報取得ステップ）。構造物１００の形状の例を図６（ａ）に示す。取得された構造物初期情報は、構造物初期情報取得部１２から仮想領域設定部１３に出力される。
【００５６】
続いて、仮想領域設定部１３によって、構造物初期情報に係る構造物１００の符号付き距離関数が算出される（Ｓ０２、仮想領域設定ステップ）。続いて、仮想領域設定部１３によって、当該符号付き距離関数が用いられて、複数の仮想粒子１１０が構造物１００の表面の近傍に配置（設定）される（Ｓ０３、仮想領域設定ステップ）。構造物１００の表面の近傍に配置された仮想粒子１１０の例を図６（ｂ）に示す。続いて、仮想領域設定部１３によって、仮想粒子１１０について、当該仮想粒子１１０から構造物１００までの距離が算出される（Ｓ０４、仮想領域設定ステップ）。仮想粒子１１０の位置及び距離を示す情報は、シミュレーション情報保持部１１に保持される。以上がシミュレーションの各時間ステップに係る演算の前に行われる処理である。
【００５７】
引き続いて、位置情報取得部１４によって、シミュレーション情報保持部１１に保持されている、シミュレーション対象となる粒子１０１及び仮想粒子１１０の位置を示す位置情報が取得される（Ｓ０５、位置情報取得ステップ）。取得された位置情報は、位置情報取得部１４から仮想領域特定部１５に出力される。
【００５８】
続いて、仮想領域特定部１５によって、位置情報によって示される粒子１０１の位置から距離Ｈ内の仮想粒子１１０が特定される（Ｓ０６、仮想領域特定ステップ）。粒子１０１毎に特定された仮想粒子１１０を示す情報は、仮想領域特定部１５から粒子距離算出部１６に出力される。
【００５９】
続いて、粒子距離算出部１６によって、粒子１０１毎に特定された仮想粒子１１０についての構造物１００までの距離に基づいて、粒子１０１から構造物１００までの距離が算出される（Ｓ０７、粒子距離算出ステップ）。この算出は、上述したように例えば、内挿補間によって行われる。粒子１０１毎に算出された構造物１００までの距離を示す情報は、粒子距離算出部１６から相互作用力算出部１７に出力される。
【００６０】
続いて、相互作用力算出部１７によって、粒子１０１毎に算出された構造物１００までの距離に基づいて、粒子１０１と構造物１００との間の相互作用力が算出される（Ｓ０８、相互作用力算出ステップ）。この際、粒子１０１同士の相互作用力、及び構造物１００同士の相互作用力が算出されてもよい。続いて、相互作用力算出部１７によって、算出された相互作用力から、各粒子１０１及び各構造物１００についての相互作用力の総和が算出される。算出された各粒子１０１及び各構造物１００の相互作用力の総和を示す情報は、相互作用力算出部１７から時間遷移部１８に出力される。
【００６１】
続いて、時間遷移部１８によって、算出された相互作用力に基づいて、次の時間ステップの粒子１０１及び構造物１００の位置及び速度が算出されると共に、当該構造物１００との位置関係を維持したまま仮想粒子１１０が移動される（Ｓ０９、時間遷移ステップ）。上記の演算に基づき、シミュレーション情報保持部１１に保持された粒子情報、構造物情報、仮想粒子１１０の位置を示す情報が次の時間ステップの情報に更新される。
【００６２】
続いて、粒子シミュレーション装置１０では、シミュレーションの終了条件を満たしているか否かが判断される（Ｓ１０）。終了条件を満たしていると判断された場合（Ｓ１０のＹＥＳ）には、処理（シミュレーション）が終了される。終了条件を満たしていないと判断された場合（Ｓ１０のＮＯ）には、時間ステップが一つ進められて、次の時間ステップでの上述した処理（Ｓ０５〜Ｓ１０）が行われる。
【００６３】
図６（ｃ）〜図６（ｆ）に各時間ステップにおける状態の例を示す。図６（ｃ）から図６（ｆ）に進むに従って、時間ステップが進んでいる。このシミュレーションでは、容器の内側に粉体を撹拌するための回転する構造物（撹拌翼）が２つ設けられており、粉体が上部から容器の中に落ちて構造物で撹拌される。なお、それぞれの構造物には、それぞれ別の撹拌速度を与えることができる。以上が、本実施形態に係る粒子シミュレーション装置１０で実行される処理である。
【００６４】
上述したように本実施形態によれば、構造物１００の表面の近傍に設定された複数の仮想粒子１１０について算出された距離に基づいて、粒子１０１と構造物１００との間の距離計算が行われる。シミュレーションにおいて、当該仮想粒子１１０は、構造物１００との位置関係を維持したまま移動される。従って、仮想粒子１１０についての距離（距離関数）を計算しなおす必要がない。
【００６５】
また、作業空間内全域に渡る格子点での従来の距離関数とは異なり、構造物１００の近傍に設定された仮想粒子１１０に対してのみ、距離が計算されていればよい。また、個々の仮想粒子１１０は、構造物１００毎に設定され、構造物１００毎の動きに伴って独立に動かすことができる。即ち、構造物１００が複数存在する場合、即ち、互いに異なった移動軸や回転軸が複数存在する場合であっても、適用することができる。
【００６６】
また、距離に対応付けられた仮想粒子１１０が動くため、移流計算による数値拡散も生じず、距離関数の初期化処理は必要ない。また、仮想粒子１１０を動かすだけであるので、移流計算に比べて非常に簡便で計算負荷も少ない。即ち、本実施形態によれば、粒子１０１と構造物１００との間の距離計算を少ない計算負荷で正確に行い、これにより、粒子１０１と構造物１００とのシミュレーションを適切に行うことができる。
【００６７】
また、上記の通り、構造物１００の近傍に設定された仮想粒子１１０に対してのみ、距離が計算されて記憶されていればよいため、従来の距離関数と比べて記憶すべきデータ量（メモリ使用量）も圧倒的に削減することができる。
【００６８】
メモリ使用量の例を以下に示す。作業空間のサイズを１６０Ｄ×２００Ｄ×１００Ｄ、補間範囲Ｈを３．５ｄ、仮想粒子１１０の直径（格子サイズ）をＤ、相互作用距離ｄを０．５Ｄとした場合の例を示す。本実施形態による方法では、距離計算に必要な粒子数は８５，３３６であり、総メモリ使用量は２，７３０，７５２（Ｂｙｔｅ）（８５，３３６×４×８：一粒子当り８ｂｙｔｅの変数が４個（ｘ，ｙ，ｚ座標と距離関数値）必要）である。従来の方法（粒子の座標系を動かす場合）では、距離計算に必要な格子数は３，２００，０００であり、総メモリ使用量は１０２，４００，０００（Ｂｙｔｅ）（３，２００，０００×４×８：一格子当り８ｂｙｔｅの変数が４個（ｘ，ｙ，ｚ座標と距離関数値）必要）である。更に、距離関数の移流計算を行う場合、例えば、ＣＩＰ法（Constrained Interpolation Profile Scheme）を用いるとすると、メモリ使用量は１０２，４００，０００＋３，２００，０００×７×８＝２８１，６００，０００（Ｂｙｔｅ）（一格子当り８ｂｙｔｅの変数が７個必要）である。また、距離関数の時系列データを使う場合、メモリ使用量は１０２，４００，０００＋３，２００，０００×８＝１２８，０００，０００（Ｂｙｔｅ）（時間補間を行うため、２時刻の距離関数データが必要で、距離関数値が一格子当り８Ｂｙｔｅであり、全部で３，２００，０００×８Ｂｙｔｅ追加で必要）である。
【００６９】
上記の例のように本実施形態では、メモリ使用量を従来の約１／４０〜１／１００に削減することができる。
【００７０】
また、本実施形態のように、仮想粒子１１０を設定（配置）する範囲を、粒子１０１から構造物１００までの距離を算出するのに用いる仮想粒子１１０を特定する範囲（補間範囲）に応じたものとしてもよい。この構成によれば、仮想粒子１１０を必要な分だけ設定することができ、更に効率的に粒子１０１と構造物１００とのシミュレーションを行うことができる。
【００７１】
また、本実施形態のように、構造物１００が、粒子１０１からの相互作用力を受けることとしてもよい。この構成によれば、構造物１００に対する粒子１０１の影響もシミュレーションすることができるため、より正確な粒子１０１と構造物１００とのシミュレーションを行うことができる。
【００７２】
また、本実施形態のように、仮想領域を仮想粒子１１０とすることとしてもよい。この構成によれば、仮想領域を適切かつ容易に扱うことができる。例えば、上述したように、従来の粒子ベースのシミュレーションの手法を容易に適用することができ、本実施形態による手法を高速化することができる。即ち、適切かつ容易に粒子１０１と構造物１００とのシミュレーションを行うことができる。但し、必ずしも仮想領域を粒子状の領域とする必要はなく、任意の形状の領域としてもよい。
【００７３】
なお、上述した実施形態では、作業領域は三次元の空間としたが、三次元以外の空間、例えば、二次元の空間であってもよい。
【００７４】
引き続いて、上述した一連の粒子シミュレーション装置１０による処理をコンピュータに実行させるための粒子シミュレーションプログラムを説明する。図７に示すように、粒子シミュレーションプログラム３０は、コンピュータに挿入されてアクセスされる、あるいはコンピュータが備える記録媒体２０に形成されたプログラム格納領域２１内に格納される。
【００７５】
粒子シミュレーションプログラム３０は、シミュレーション情報保持モジュール３１と、構造物初期情報取得モジュール３２と、仮想領域設定モジュール３３と、位置情報取得モジュール３４と、仮想領域特定モジュール３５と、粒子距離算出モジュール３６と、相互作用力算出モジュール３７と、時間遷移モジュール３８とを備えて構成される。シミュレーション情報保持モジュール３１と、構造物初期情報取得モジュール３２と、仮想領域設定モジュール３３と、位置情報取得モジュール３４と、仮想領域特定モジュール３５と、粒子距離算出モジュール３６と、相互作用力算出モジュール３７と、時間遷移モジュール３８とを実行させることにより実現される機能は、上述した粒子シミュレーション装置１０のシミュレーション情報保持部１１と、構造物初期情報取得部１２と、仮想領域設定部１３と、位置情報取得部１４と、仮想領域特定部１５と、粒子距離算出部１６と、相互作用力算出部１７と、時間遷移部１８とそれぞれ同様である。
【００７６】
なお、粒子シミュレーションプログラム３０は、その一部又は全部が、通信回線等の伝送媒体を介して伝送され、他の機器により受信されて記録（インストールを含む）される構成としてもよい。また、粒子シミュレーションプログラム３０の各モジュールは、１つのコンピュータでなく、複数のコンピュータのいずれかにインストールされてもよい。その場合、当該複数のコンピュータによるコンピュータシステムよって上述した一連の粒子シミュレーションプログラム３０の処理が行われる。
【符号の説明】
【００７７】
１０…粒子シミュレーション装置、１１…シミュレーション情報保持部、１２…構造物初期情報取得部、１３…仮想領域設定部、１４…位置情報取得部、１５…仮想領域特定部、１６…粒子距離算出部、１７…相互作用力算出部、１８…時間遷移部、２０…記録媒体、２１…プログラム格納領域、３０…粒子シミュレーションプログラム、３１…シミュレーション情報保持モジュール、３２…構造物初期情報取得モジュール、３３…仮想領域設定モジュール、３４…位置情報取得モジュール、３５…仮想領域特定モジュール、３６…粒子距離算出モジュール、３７…相互作用力算出モジュール、３８…時間遷移モジュール。
【図１】
0006671064.tif 000002
【図２】
0006671064.tif 000003
【図３】
0006671064.tif 000004
【図４】
0006671064.tif 000005
【図５】
0006671064.tif 000006
【図６】
0006671064.tif 000007
【図７】
0006671064.tif 000008