(57)【特許請求の範囲】
【請求項１】
仮想空間内に定義された複数の粒子を含む系を定義系として取得する定義系取得部と、
前記定義系の各粒子の運動を支配する支配方程式を数値的に演算し、その演算結果に基づいて前記定義系の各粒子の位置を更新する数値演算部と、
前記定義系に含まれる複数の粒子のなかから、前記数値演算部による更新の前後で相対的な位置関係が実質的に保存される粒子群を特定する粒子群特定部と、
前記数値演算部による更新の結果得られる系を更新系と称すとき、前記粒子群特定部によって特定された粒子群とその粒子群に対応する前記更新系に含まれる粒子群とが重なるように、前記定義系と前記更新系との相対位置を調整する系位置調整部と、
前記系位置調整部によって相対位置が調整された前記定義系および前記更新系について、前記定義系に含まれる粒子とその粒子に対応する前記更新系に含まれる粒子との間の相対的な位置関係を変更する位置関係変更部と、を備え、
前記系位置調整部は、前記定義系および前記更新系のうちの少なくともひとつを合同変換することによりそれらの相対位置を調整することを特徴とする解析装置。
【請求項２】
前記粒子群特定部は、前記定義系に含まれる複数の粒子のなかから、前記数値演算部による更新の前後で相対距離が実質的に保存される粒子群を特定することを特徴とする請求項１に記載の解析装置。
【請求項３】
前記位置関係変更部は、前記定義系に含まれる粒子とその粒子に対応する前記更新系に含まれる粒子との間の相対距離を所定の比率で変更することを特徴とする請求項１または２に記載の解析装置。
【請求項４】
定義系取得部と、数値演算部と、粒子群特定部と、系位置調整部と、位置関係変更部と、を備える解析装置により実行される方法であって、
前記定義系取得部が、  仮想空間内に定義された複数の粒子を含む系を定義系として取得するステップと、
前記数値演算部が、前記定義系の各粒子の運動を支配する支配方程式を数値的に演算するステップと、
前記数値演算部が、演算結果に基づいて前記定義系の各粒子の位置を更新するステップと、
前記粒子群特定部が、前記定義系に含まれる複数の粒子のなかから、更新の前後で相対的な位置関係が実質的に保存される粒子群を特定するステップと、
前記系位置調整部が、更新の結果得られる系を更新系と称すとき、特定された粒子群とその粒子群に対応する前記更新系に含まれる粒子群とが重なるように、前記定義系と前記更新系との相対位置を調整するステップと、
前記位置関係変更部が、相対位置が調整された前記定義系および前記更新系について、前記定義系に含まれる粒子とその粒子に対応する前記更新系に含まれる粒子との間の相対的な位置関係を変更するステップと、を含み、
前記調整するステップでは、前記系位置調整部が、前記定義系および前記更新系のうちの少なくともひとつを合同変換することによりそれらの相対位置を調整することを特徴とするシミュレーション方法。
【請求項５】
仮想空間内に定義された複数の粒子を含む系を定義系として取得する機能と、
前記定義系の各粒子の運動を支配する支配方程式を数値的に演算し、その演算結果に基づいて前記定義系の各粒子の位置を更新する機能と、
前記定義系に含まれる複数の粒子のなかから、更新の前後で相対的な位置関係が実質的に保存される粒子群を特定する機能と、
更新の結果得られる系を更新系と称すとき、特定された粒子群とその粒子群に対応する前記更新系に含まれる粒子群とが重なるように、前記定義系と前記更新系との相対位置を調整する機能と、
相対位置が調整された前記定義系および前記更新系について、前記定義系に含まれる粒子とその粒子に対応する前記更新系に含まれる粒子との間の相対的な位置関係を変更する機能と、をコンピュータに実現させ、
前記調整する機能は、前記定義系および前記更新系のうちの少なくともひとつを合同変換することによりそれらの相対位置を調整することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、粒子系を解析する解析装置およびシミュレーション方法に関する。
【背景技術】
【０００２】
従来、古典力学や量子力学等を基に計算機を用いて物質科学全般の現象を探るための方法として、分子動力学法（Molecular Dynamics Method、以下ＭＤ法と称す）や、ＭＤ法をマクロスケールの系を扱えるように発展させた繰り込み群分子動力学法（Renormalized Molecular Dynamics、以下ＲＭＤ法と称す）に基づくシミュレーションが知られている（例えば、特許文献１参照）。ＭＤ法やＲＭＤ法はシミュレーション対象を粒子の集まりで記述する粒子法の一種である。
【０００３】
粒子法は静的な現象だけでなく流れなどの動的な現象をも取り扱えるので、主に静的な現象を解析対象とする有限要素法などの従来の手法に代わるシミュレーション手法として注目されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３７３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
シミュレーションの目的のひとつに、シミュレーションの結果、系がどのように変化するかを把握することがある。ここで、変化量が系の寸法と比べて僅かである場合などに、単にシミュレーションの前後の系をディスプレイで目視確認するだけでは変化の態様を把握し難いことがある。
【０００６】
そこで、例えば有限要素法を使用する場合、節点の初期位置からの移動量をそのままデフォルメすることが考えられる。有限要素法では基本的にはシミュレーションの前後でモデルが平行移動／回転することは考慮されていないので、このようなデフォルメで所望の結果を得ることができる場合が多いと考えられる。
【０００７】
しかしながら粒子法では、各粒子が他の粒子と相互作用しながらその位置を変えるという前提で演算が行われる。したがって、シミュレーションの前後で系全体の位置や向きが変わってしまうことが往々にしてあるため、粒子の移動距離をデフォルメしただけでは視覚的に正しくない場合が多い。
【０００８】
本発明はこうした課題に鑑みてなされたものであり、その目的は、粒子法を使用したシミュレーションにおいて系に生じる現象を捉えやすくできる解析技術の提供にある。
【課題を解決するための手段】
【０００９】
本発明のある態様は解析装置に関する。この解析装置は、仮想空間内に定義された複数の粒子を含む系を定義系として取得する定義系取得部と、定義系の各粒子の運動を支配する支配方程式を数値的に演算し、その演算結果に基づいて定義系の各粒子の位置を更新する数値演算部と、定義系に含まれる複数の粒子のなかから、数値演算部による更新の前後で相対的な位置関係が実質的に保存される粒子群を特定する粒子群特定部と、数値演算部による更新の結果得られる系を更新系と称すとき、粒子群特定部によって特定された粒子群とその粒子群に対応する更新系に含まれる粒子群とが重なるように、定義系と更新系との相対位置を調整する系位置調整部と、系位置調整部によって相対位置が調整された定義系および更新系について、定義系に含まれる粒子とその粒子に対応する更新系に含まれる粒子との間の相対的な位置関係を変更する位置関係変更部と、を備える。
【００１０】
この態様によると、粒子群特定部によって特定された粒子群に基づいて定義系と更新系との相対位置を調整することができる。
【００１１】
本発明の別の態様は、シミュレーション方法である。この方法は、仮想空間内に定義された複数の粒子を含む系を定義系として取得するステップと、定義系の各粒子の運動を支配する支配方程式を数値的に演算するステップと、演算結果に基づいて定義系の各粒子の位置を更新するステップと、更新の結果得られる系を更新系と称すとき、定義系と更新系との相対位置を調整するステップと、相対位置を調整した後の定義系と更新系との差を大きくするステップと、を含む。
【００１２】
なお、以上の構成要素の任意の組み合わせや、本発明の構成要素や表現を装置、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１３】
本発明によれば、粒子法を使用したシミュレーションにおいて系に生じる現象を捉えやすくできる。
【図面の簡単な説明】
【００１４】
【図１】仮想２次元空間内に定義された３つの粒子からなる系を粒子法を使用して演算した場合の、演算前の初期状態と演算後の定常状態とを示す模式図である。
【図２】初期状態の系に平行移動および回転を施した後の状態を示す模式図である。
【図３】差分ベクトルをα倍して得られる拡大差分ベクトルの終点に粒子が移動される様子を示す模式図である。
【図４】実施の形態に係る解析装置の機能および構成を示すブロック図である。
【図５】図５（ａ）〜（ｄ）は、解析装置によるシミュレーション結果の例を示す代表画面図である。
【図６】図４の定義系保持部の一例を示すデータ構造図である。
【図７】図４の解析装置における一連の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。
【００１６】
図１は、仮想２次元空間６内に定義された３つの粒子からなる系を粒子法を使用して演算した場合の、演算前の初期状態２と演算後の定常状態４とを示す模式図である。粒子法を使用した演算により、初期状態２における粒子８、１０、１２はそれぞれ定常状態４における粒子１４、１６、１８となる。このときの各粒子の移動は図１において一点鎖線で示されている。初期状態２と定常状態４とでは粒子の位置は全て異なっている。このように、粒子法による演算の場合、有限要素法などとは異なり、演算の前後で系全体が移動することがよくある。
【００１７】
実施の形態に係る解析装置は、初期状態２の系に含まれる粒子の間の相対的な位置関係と、定常状態４の系に含まれる粒子の間の相対的な位置関係と、を比較する。特に解析装置は、演算の前後で相対距離すなわち粒子間距離が実質的に変わらない粒子のペアを探索する。図１に示される例では、粒子８と粒子１２との粒子間距離が実質的に変わっていない、すなわち粒子８−粒子１２の粒子間距離と粒子１４−粒子１８の粒子間距離とが実質的に等しいとする。
【００１８】
解析装置は、初期状態２の系の粒子８、粒子１２が定常状態４の系の粒子１４、粒子１８にそれぞれ重なるように、初期状態２の系を合同変換する。例えば解析装置は、粒子８が粒子１４に重なるように初期状態２の系を平行移動させ、次に粒子１２が粒子１８に重なるように初期状態２の系を回転させる。
図２は、初期状態２の系に平行移動および回転を施した後の状態を示す模式図である。
【００１９】
解析装置は、初期状態２の系に平行移動および回転を施した後の状態で、合同変換の基準とされていない粒子１０の位置から対応する粒子１６の位置への差分ベクトル２０を求める。解析装置は、差分ベクトル２０をα（α＞１）倍し、そのように拡大された差分ベクトル２０の終点に対応する位置に粒子１６を移動させる。
図３は、差分ベクトル２０をα倍して得られる拡大差分ベクトル２２の終点に粒子１６が移動される様子を示す模式図である。
【００２０】
このように、本実施の形態に係る解析装置では、系内の所定の参照部分を基準にして、粒子法による演算前後の差分が増大される。粒子法では演算により系全体が動いてしまうことがよくあるのであるが、本実施の形態に係る手法を採用することで、そのような系全体の動きを参照部分の比較により吸収した上で、系の変形を大げさにして可視化することができる。
【００２１】
本実施の形態ではＭＤ法に倣って粒子系を解析する場合について説明するが、繰り込み群分子動力学法（Renormalized Molecular Dynamics）やＤＥＭ（Distinct Element Method）やＳＰＨ（Smoothed Particle Hydrodynamics）やＭＰＳ（Moving Particle Semi-implicit）などの他の粒子法に倣って粒子系を解析する場合にも、本実施の形態に係る技術的思想を適用できることは本明細書に触れた当業者には明らかである。
【００２２】
図４は、実施の形態に係る解析装置１００の機能および構成を示すブロック図である。ここに示す各ブロックは、ハードウエア的には、コンピュータのＣＰＵ（central processing unit）をはじめとする素子や機械装置で実現でき、ソフトウエア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウエア、ソフトウエアの組合せによっていろいろなかたちで実現できることは、本明細書に触れた当業者には理解されるところである。
【００２３】
解析装置１００は入力装置１０２およびディスプレイ１０４と接続される。入力装置１０２は、解析装置１００で実行される処理に関係するユーザの入力を受けるためのキーボード、マウスなどであってもよい。入力装置１０２は、インターネットなどのネットワークやＣＤ、ＤＶＤなどの記録媒体から入力を受けるよう構成されていてもよい。
【００２４】
解析装置１００は、定義系取得部１１０と、数値演算部１１４と、粒子群特定部１２８と、系位置調整部１３４と、位置関係変更部１４０と、表示制御部１４８と、定義系保持部１１２と、一時保持部１２６と、更新系保持部１２４と、デフォルメ系保持部１５２と、を備える。
【００２５】
定義系取得部１１０は、仮想空間内に定義されたＮ（Ｎは自然数）個の粒子を含む系を定義系Ｐとして取得する。定義系Ｐは歯車やモータなどの現実の物体を模するものとして定義される。特に定義系取得部１１０は、入力装置１０２を介してユーザから取得する入力情報に基づき、仮想空間内にＮ個の粒子を配置し、配置された各粒子に速度を付与する。定義系Ｐはこのように定義されたＮ個の粒子の系である。定義系取得部１１０は、配置された粒子を特定する粒子ＩＤと、その粒子の位置と、その粒子の速度と、を対応付けて定義系保持部１１２に登録する。
なお、粒子を現実世界の原子または分子に対応させてもよい。また、定義系取得部１１０は、定義系Ｐのデータをネットワークや記録媒体を介して外部から取得し、取得されたデータを定義系保持部１１２に登録してもよい。
【００２６】
以下では定義系Ｐの粒子は全て同質または同等なものとして設定され、かつ、ポテンシャルエネルギ関数は２体のポテンシャルであって粒子によらずに同じ形を有するものとして設定される場合について説明する。しかしながら、他の場合にも本実施の形態に係る技術的思想を適用できることは、本明細書に触れた当業者には明らかである。
【００２７】
数値演算部１１４は、定義系保持部１１２を参照し、定義系Ｐの各粒子の運動を支配する支配方程式を数値的に演算する。特に数値演算部１１４は、離散化された粒子の運動方程式にしたがった繰り返し演算を行う。数値演算部１１４は、その演算結果に基づいて定義系Ｐの各粒子の位置を更新する。
数値演算部１１４は、力演算部１１６と、粒子状態演算部１１８と、状態更新部１２０と、終了条件判定部１２２と、を含む。
【００２８】
数値演算部１１４は演算を開始する前に、定義系保持部１１２によって保持される定義系Ｐのデータを一時保持部１２６に複製する。数値演算部１１４は、一時保持部１２６に保持される各粒子の位置および速度を、定義系保持部１１２から複製された各粒子の位置および速度を初期値として、数値演算が繰り返されるごとに更新する。この更新は、定義系Ｐの各粒子の位置および速度の更新に相当する。数値演算を終了する際、数値演算部１１４は、一時保持部１２６に保持されている各粒子の位置および速度を、更新系Ｑの各粒子の位置および速度として更新系保持部１２４に登録する。
系が定常状態となるまで数値演算が続けられる場合、定義系Ｐは系の初期状態に対応し、更新系Ｑは系の定常状態に対応する。
【００２９】
力演算部１１６は一時保持部１２６に保持されるデータを参照し、各粒子について、粒子間の距離に基づきその粒子に働く力を演算する。力演算部１１６は、ｉ番目（１≦ｉ≦Ｎ）の粒子について、そのｉ番目の粒子との距離が所定のカットオフ距離よりも小さな粒子（以下、近接粒子と称す）を決定する。力演算部１１６は、各近接粒子について、その近接粒子とｉ番目の粒子との間のポテンシャルエネルギ関数およびその近接粒子とｉ番目の粒子との距離に基づいて、その近接粒子がｉ番目の粒子に及ぼす力を演算する。特に力演算部１１６は、その近接粒子とｉ番目の粒子との距離の値におけるポテンシャルエネルギ関数のグラジエント（Gradient）の値から力を算出する。力演算部１１６は、近接粒子がｉ番目の粒子に及ぼす力を全ての近接粒子について足し合わせることによって、ｉ番目の粒子に働く力を算出する。
【００３０】
粒子状態演算部１１８は一時保持部１２６に保持されるデータを参照し、各粒子について、離散化された粒子の運動方程式に力演算部１１６によって演算された力を適用することによって粒子の位置および速度のうちの少なくともひとつを演算する。本実施の形態では、粒子状態演算部１１８は粒子の位置および速度の両方を演算する。
【００３１】
粒子状態演算部１１８は、力演算部１１６によって演算された力を含む離散化された粒子の運動方程式から粒子の速度を演算する。粒子状態演算部１１８は、ｉ番目の粒子について、蛙跳び法やオイラー法などの所定の数値解析の手法に基づき所定の微小な時間刻みΔｔを使用して離散化された粒子の運動方程式に、力演算部１１６によって演算された力を代入することによって、粒子の速度を演算する。この演算には以前の繰り返し演算のサイクルで演算された粒子の速度が使用される。
【００３２】
粒子状態演算部１１８は、演算された粒子の速度に基づいて粒子の位置を算出する。粒子状態演算部１１８は、ｉ番目の粒子について、所定の数値解析の手法に基づき時間刻みΔｔを使用して離散化された粒子の位置と速度の関係式に、演算された粒子の速度を適用することによって、粒子の位置を演算する。この演算には以前の繰り返し演算のサイクルで演算された粒子の位置が使用される。
【００３３】
状態更新部１２０は、一時保持部１２６に保持される各粒子の位置および速度のそれぞれを、粒子状態演算部１１８によって演算された位置および速度で更新する。
【００３４】
終了条件判定部１２２は、数値演算部１１４における繰り返し演算を終了すべきか否かを判定する。繰り返し演算を終了すべき終了条件は、例えば繰り返し演算が所定の回数行われたことや、外部から終了の指示を受け付けたことや、系が定常状態に達したことである。終了条件判定部１２２は、終了条件が満たされる場合、数値演算部１１４における繰り返し演算を終了させると共に、一時保持部１２６に保持される各粒子の位置および速度を、更新系Ｑの各粒子の位置および速度として更新系保持部１２４に登録する。したがって、更新系Ｑは数値演算部１１４による定義系Ｐの各粒子の位置および速度の更新の結果得られる系である。終了条件判定部１２２は、終了条件が満たされない場合、処理を力演算部１１６に戻す。
【００３５】
粒子群特定部１２８は、定義系Ｐに含まれるＮ個の粒子のなかから、数値演算部１１４による位置の更新の前後で相対的な位置関係が実質的に保存される粒子群を特定する。特に粒子群特定部１２８は、位置の更新の前後で粒子間距離が実質的に保存される粒子群を特定する。定義系Ｐが定義される仮想空間が２次元の場合は最近接の粒子ペア（以下、粒子間距離保存ペアと称す）が粒子群として特定され、３次元の場合は最小の三角要素をなす３つの粒子が粒子群として特定される。以下、定義系Ｐは２次元の仮想空間内に定義される場合について説明する。
【００３６】
粒子群特定部１２８は、定義系粒子群選択部１３０と、保存判定部１３２と、を含む。
定義系粒子群選択部１３０は、定義系保持部１１２を参照し、定義系Ｐに含まれるＮ個の粒子のなかから、一方の粒子が他方の粒子の最近接粒子すなわち他方の粒子に最も近い粒子となっている粒子ペアを候補ペアとして選択する。定義系粒子群選択部１３０は、選択された候補ペアの粒子間距離を演算する。
【００３７】
保存判定部１３２は、更新系保持部１２４を参照し、更新系Ｑに含まれるＮ個の粒子のなかから、定義系粒子群選択部１３０によって選択された候補ペアに対応する粒子ペアを特定する。特に保存判定部１３２は、候補ペアに含まれる２つの粒子の粒子ＩＤと同じ粒子ＩＤを有する更新系Ｑの２つの粒子を特定する。保存判定部１３２は特定された粒子ペアの粒子間距離を演算する。保存判定部１３２はそのように演算された粒子間距離と定義系粒子群選択部１３０によって演算された候補ペアの粒子間距離とを比較し、両者が所定の誤差範囲内で一致する場合、候補ペアは位置の更新の前後で粒子間距離が実質的に保存されるペアであると判定し、候補ペアを粒子間距離保存ペアとして特定する。また保存判定部１３２は、保存判定部１３２によって特定された更新系Ｑの粒子ペアを対応ペアとして特定する。
両者が一致しない場合、保存判定部１３２は処理を定義系粒子群選択部１３０に戻し、定義系粒子群選択部１３０は別の候補ペアを選択する。
【００３８】
系位置調整部１３４は、粒子間距離保存ペアと対応ペアとが重なるように、定義系Ｐと更新系Ｑとの相対位置を調整する。特に系位置調整部１３４は、定義系Ｐおよび更新系Ｑのうちの少なくともひとつを合同変換することによりそれらの相対位置を調整する。合同変換は、平行移動に対応する変換および回転に対応する変換を含む。
系位置調整部１３４は、平行移動部１３６と、回転部１３８と、を含む。
【００３９】
平行移動部１３６は、粒子間距離保存ペアの一方の粒子の位置が対応ペアの対応する一方の粒子の位置と実質的に同じとなるように、定義系Ｐ全体を平行移動させる。この平行移動は、定義系Ｐの各粒子の位置ベクトルに所定の平行移動ベクトルを加算することにより行われてもよい。平行移動部１３６は、定義系保持部１１２に保持されている各粒子の位置を、そのような平行移動の結果得られる各粒子の位置で更新する。
【００４０】
回転部１３８は、平行移動部１３６によって粒子間距離保存ペアの一方の粒子の位置が対応ペアの対応する一方の粒子の位置と合わされた後、粒子間距離保存ペアの他方の粒子の位置が対応ペアの対応する他方の粒子の位置と実質的に同じとなるように、定義系Ｐ全体を回転させる。この回転は、平行移動部１３６による更新後の定義系Ｐの各粒子の位置ベクトルに所定の回転行列を積算することにより行われてもよい。回転部１３８は、定義系保持部１１２に保持されている各粒子の位置を、そのような回転の結果得られる各粒子の位置で更新する。
【００４１】
位置関係変更部１４０は、系位置調整部１３４によって相対位置が調整された定義系Ｐおよび更新系Ｑについて、定義系Ｐに含まれる粒子とその粒子に対応する更新系Ｑに含まれる粒子との間の相対的な位置関係を変更する。特に位置関係変更部１４０は、定義系Ｐに含まれる粒子とその粒子に対応する更新系Ｑに含まれる粒子との粒子間距離を所定の比率で変更する。
位置関係変更部１４０は、差分ベクトル演算部１４２と、差分ベクトル拡大部１４４と、拡大結果登録部１４６と、を含む。
【００４２】
差分ベクトル演算部１４２は、回転部１３８による更新後の定義系保持部１１２および更新系保持部１２４を参照し、各粒子について、回転部１３８による更新後の定義系保持部１１２に保持される位置を始点、更新系保持部１２４に保持される位置を終点とする差分ベクトルを演算する。より具体的には、差分ベクトル演算部１４２は、粒子ＩＤごとに、更新系保持部１２４に保持される位置に対応する位置ベクトルから、回転部１３８による更新後の定義系保持部１１２に保持される位置に対応する位置ベクトルを減算することにより、差分ベクトルを演算する。
【００４３】
差分ベクトル拡大部１４４は、差分ベクトル演算部１４２によって演算された差分ベクトルに、１よりも大きな比率γを乗算することにより、拡大差分ベクトルを演算する。
拡大結果登録部１４６は、粒子ＩＤごとに、回転部１３８による更新後の定義系保持部１１２に保持される位置に対応する位置ベクトルに、差分ベクトル拡大部１４４によって演算された拡大差分ベクトルを加算し、新たな位置ベクトルを得る。拡大結果登録部１４６は、粒子ＩＤと、新たな位置ベクトルに対応する位置と、を対応付けてデフォルメ系保持部１５２に登録する。
【００４４】
表示制御部１４８は、デフォルメ系保持部１５２に保持される各粒子の位置に基づくシミュレーション結果をディスプレイ１０４に表示させる。
図５（ａ）〜（ｄ）は、解析装置１００によるシミュレーション結果の例を示す代表画面図である。図５（ａ）〜（ｄ）は噛み合う歯車の一方をシミュレートしたものであり、噛み合いにより歯車の歯面がどのように変形しうるかが関心の対象である。
【００４５】
図５（ａ）は位置関係変更部１４０による変更がなされていない更新系すなわちγ＝１に対応する更新系を示す。なお、定義系と更新系との差は図５（ａ）の縮尺に対して僅かであり、定義系も系の全体的な位置を除けば図５（ａ）と同様に描画されうる。図５（ｂ）、（ｃ）、（ｄ）はそれぞれγ＝１６、１２８、５１２に対応する更新系を示す。デフォルメの比率γを大きくしていくと、歯面がどのように変形するかを視覚的により容易に把握できるようになることが分かる。
【００４６】
図６は、定義系保持部１１２の一例を示すデータ構造図である。定義系保持部１１２は、粒子ＩＤと、粒子の位置と、粒子の速度と、を対応付けて保持する。一時保持部１２６、更新系保持部１２４、デフォルメ系保持部１５２も図６と同様のデータ構造を有する。
【００４７】
上述の実施の形態において、保持部の例は、ハードディスクやメモリである。また、本明細書の記載に基づき、各部を、図示しないＣＰＵや、インストールされたアプリケーションプログラムのモジュールや、システムプログラムのモジュールや、ハードディスクから読み出したデータの内容を一時的に記憶するメモリなどにより実現できることは本明細書に触れた当業者には理解されるところである。
【００４８】
以上の構成による解析装置１００の動作を説明する。
図７は、解析装置１００における一連の処理の一例を示すフローチャートである。定義系取得部１１０は、定義系Ｐを表すデータを取得する（Ｓ２０２）。数値演算部１１４は、定義系ＰについてＭＤ法による数値演算を行い、その演算結果に基づいて定義系Ｐを更新する（Ｓ２０４）。粒子群特定部１２８は、数値演算前の定義系Ｐに含まれるＮ個の粒子のなかから、それまでに候補ペアとして選択されていない候補ペアを選択する（Ｓ２０６）。なお、粒子群特定部１２８は選択すべき候補ペアが存在しない場合、エラーを返してもよい。粒子群特定部１２８は、候補ペアの粒子間距離を演算する（Ｓ２０８）。粒子群特定部１２８は、候補ペアに対応する更新系Ｑの粒子ペアの粒子間距離を演算する（Ｓ２１０）。粒子群特定部１２８は、演算された２つの粒子間距離が実質的に一致するか否かを判定する（Ｓ２１２）。一致しないと判定された場合（Ｓ２１２のＮ）、粒子群特定部１２８は別の候補ペアを選択する（Ｓ２０６）。一致すると判定された場合（Ｓ２１２のＹ）、粒子群特定部１２８はそのような候補ペアを粒子間距離保存ペアとして特定し、そのような候補ペアに対応する更新系Ｑの粒子ペアを対応ペアとして特定する（Ｓ２１４）。系位置調整部１３４は、粒子間距離保存ペアと対応ペアとを重ね合わせる（Ｓ２１６）。位置関係変更部１４０は、重ね合わせの結果から、各粒子について差分ベクトルを演算する（Ｓ２１８）。位置関係変更部１４０は、所定の比率で差分ベクトルを拡大する（Ｓ２２０）。表示制御部１４８は、拡大された差分ベクトルに基づくシミュレーション結果をディスプレイ１０４に表示させる（Ｓ２２２）。
【００４９】
本実施の形態に係る解析装置１００によると、粒子法を使用したシミュレーションにおいて、数値演算の前後での変化を誇張して可視化することができる。変化を大げさに（デフォルメして）表示することにより、ユーザは実際の変化が小さい場合でもその変化を定性的により的確に把握することができる。
【００５０】
例えば、図５（ａ）や図５（ｂ）を参照しても、シミュレーションの結果どこがどのように変形しうるかを把握することは一般には難しい。しかしながら図５（ｃ）や図５（ｄ）を参照すると、歯面のどの部分がどのように変形するかを視覚的に容易に把握できる。このように、本実施の形態に係る手法は、荷重を受け変形しうる構造物を可視化するために好適に使用されうる。
【００５１】
また、本実施の形態に係る解析装置１００では、定義系と更新系との差分が演算される前に、定義系と更新系との相対位置が調整される。これにより、粒子法のように定義系の全体的な位置と更新系の全体的な位置とが容易に変わってしまうようなシミュレーション手法を採用する場合でも、定義系と更新系との的確な比較が可能となる。
【００５２】
本発明者は、当業者としての経験から、粒子法を使用してシミュレーションを行った場合、定義系の全体的な位置と更新系の全体的な位置とが異なっていても、大抵の場合、数値演算の前後で粒子間距離が実質的に変わらない粒子ペアが存在することを認識した。本実施の形態では本発明者のこの認識に基づき、粒子間距離保存ペアを特定し、この粒子間距離保存ペアを基準にして定義系と更新系とを重ね合わせることとしている。したがって、本実施の形態に係る手法の適用可能性を高めることができる。
【００５３】
以上、実施の形態に係る解析装置１００の構成と動作について説明した。これらの実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５４】
実施の形態では、数値演算部１１４において粒子の位置と速度の両方を演算する場合について説明したが、これに限られない。例えば、数値解析の手法にはＶｅｒｌｅｔ法のように、粒子の位置を演算する際に粒子に働く力から粒子の位置を直接演算し、粒子の速度は陽に計算しなくてもよい手法もあり、本実施の形態に係る技術的思想をそのような手法に適用してもよい。
【００５５】
実施の形態では、粒子群特定部１２８によって定義系Ｐから特定される粒子群は最近接の粒子ペアである場合について説明したが、これに限られず、最近接以外の粒子ペアが特定されてもよい。しかしながら、最近接の粒子とする場合、演算が簡素化され、演算量を低減できる。
【００５６】
実施の形態では、定義系Ｐから候補ペアが選択される場合について説明したが、これに限られず、更新系Ｑから候補ペアが選択されてもよい。
【００５７】
実施の形態では、系位置調整部１３４は定義系Ｐを移動させる場合について説明したが、これに限られず、系位置調整部は定義系Ｐの代わりに更新系Ｑを移動させてもよく、あるいはまた両者を移動させてもよい。
【００５８】
実施の形態では、位置関係変更部１４０が更新系Ｑの各粒子の位置を変更する場合について説明したが、これに限られず、例えば定義系Ｐの各粒子の位置が変更されてもよく、あるいはまた、定義系Ｐおよび更新系Ｑの両方の粒子の位置が変更されてもよい。
【００５９】
実施の形態では、位置関係変更部１４０が差分ベクトルを大きくする場合について説明したが、これに限られず、例えば位置関係変更部は差分ベクトルを小さくしてもよい。この場合、例えば更新系における変化が大きすぎて分かりにくい場合に、その変化を小さくすることで分かり易くできる。
【００６０】
実施の形態では、保存判定部１３２が演算された粒子間距離と定義系粒子群選択部１３０によって演算された候補ペアの粒子間距離とを比較し、両者が所定の誤差範囲内で一致する場合、候補ペアは位置の更新の前後で粒子間距離が実質的に保存されるペアであると判定する場合について説明したが、これに限られない。例えば、保存判定部は、定義系Ｐの最近接の粒子ペアの全てについて、対応する更新系Ｑの粒子ペアとの間で粒子間距離を比較し、それらの差が最も小さいすなわち粒子間距離が最も変化していない候補ペアを粒子間距離保存ペアとして特定してもよい。
【符号の説明】
【００６１】
１００  解析装置、  １１０  定義系取得部、  １１４  数値演算部、  １２８  粒子群特定部、  １３４  系位置調整部、  １４０  位置関係変更部。
【図１】
0005777506.tif 000002
【図２】
0005777506.tif 000003
【図３】
0005777506.tif 000004
【図４】
0005777506.tif 000005
【図５】
0005777506.tif 000006
【図６】
0005777506.tif 000007
【図７】
0005777506.tif 000008