(57)【特許請求の範囲】
【請求項１】
粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索システムであって、
解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定部と、
前記探索基準粒子設定部が抽出した探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定部と、
探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出部と、
探索基準粒子に対する前記領域内粒子抽出部が抽出した領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルと前記ベクトル設定部が設定した探索方向ベクトルの角度を計算するベクトル計算部と、
前記ベクトル計算部が計算したベクトルの大きさと角度により境界粒子を決定する境界粒子判断部と
を備える境界粒子探索システム。
【請求項２】
前記ベクトル設定部は、探索方向ベクトルと直交する探索基準ベクトルを設定し、
前記領域内粒子抽出部は、探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出し、
前記ベクトル計算部は、探索基準粒子に対する前記領域内粒子抽出部により領域内より抽出された各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルと前記ベクトル設定部で設定された探索基準ベクトルの角度を計算し、
前記境界粒子判断部は、前記ベクトル計算部により計算されたベクトルの大きさと角度により、境界粒子を決定する
請求項１に記載の境界粒子探索システム。
【請求項３】
前記ベクトル設定部は、探索処理過程において、決定前の探索基準粒子に対する新たに決定した探索基準粒子の位置ベクトルを新たに探索方向ベクトルとして更新する
請求項１に記載の境界粒子探索システム。
【請求項４】
前記ベクトル設定部は、探索処理過程において、探索方向ベクトルの大きさ、および角度変化の履歴により、その差分を解析して次の探索する方向を予測し、新たに探索方向ベクトルとして更新する
請求項１に記載の境界粒子探索システム。
【請求項５】
前記ベクトル設定部は、探索処理過程において、決定前の探索基準粒子に対する新たに決定した探索基準粒子の位置ベクトルを新たに探索方向ベクトルとして更新し、更新された探索方向ベクトルに直交するベクトルを新たに探索基準ベクトルとして更新する
請求項２に記載の境界粒子探索システム。
【請求項６】
前記ベクトル設定部は、探索処理過程において、探索方向ベクトルの大きさ、および角度変化の履歴により、その差分を解析して次の探索する方向を予測し、新たに探索方向ベクトルとして更新し、更新された探索方向ベクトルに直交するベクトルを新たに探索基準ベクトルとして更新する
請求項２に記載の境界粒子探索システム。
【請求項７】
粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索装置であって、
解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定部と、
前記探索基準粒子設定部が抽出した探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定部と、
探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出部と、
探索基準粒子に対する前記領域内粒子抽出部が抽出した領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルと前記ベクトル設定部が設定した探索方向ベクトルの角度を計算するベクトル計算部と、
前記ベクトル計算部が計算したベクトルの大きさと角度により境界粒子を決定する境界粒子判断部と
を備える境界粒子探索装置。
【請求項８】
粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索装置を制御する制御方法であって、
解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定段階と、
前記探索基準粒子設定段階においてが抽出された探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定段階と、
探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出段階と、
探索基準粒子に対する前記領域内粒子抽出段階において抽出された領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルと前記ベクトル設定段階において設定された探索方向ベクトルの角度を計算するベクトル計算部と、
前記ベクトル計算段階において計算されたベクトルの大きさと角度により境界粒子を決定する境界粒子判断段階と
を備える制御方法。
【請求項９】
粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索装置用のプログラムであって、前記境界粒子探索装置を、
解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定部、
前記探索基準粒子設定部が抽出した探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定部、
探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出部、
探索基準粒子に対する前記領域内粒子抽出部が抽出した領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルと前記ベクトル設定部が設定した探索方向ベクトルの角度を計算するベクトル計算部、
前記ベクトル計算部が計算したベクトルの大きさと角度により境界粒子を決定する境界粒子判断部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、境界粒子探索システム、境界粒子探索装置、制御方法、及びプログラムに関する。特に本発明は、粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索システム及び境界粒子探索装置、当該境界粒子探索装置を制御する制御方法、並びに当該境界粒子探索装置用のプログラムに関する。
【背景技術】
【０００２】
設計の不具合に起因する品質問題が、その企業の存亡に関わる問題にまで発展している例が数多く発生しており、設計品質の検証方法、品質向上が重要な課題となっている。このような状況で、設計品質の検証方法として、数値解析手法が広い分野で用いられている。数ある数値解析手法の中でも有限要素法がその汎用性の高さから、構造解析、流体解析、および熱解析等幅広い分野で採用されている。
【０００３】
しかし、有限要素法では解析対象物を要素に分割する必要があり、複雑な３Ｄ形状においては解析モデル作成に要する時間が膨大となる問題がある。近年、３次元ＣＡＤの普及により設計が３次元化され、詳細な３次元設計データを基に有限要素法の解析モデルが作成されている。更には、ＰＣの処理能力の著しい向上により、解析対象物の実形状を３次元空間上に忠実に再現した解析モデルや、複数の部品をアセンブリした構造体モデルの解析が可能となり、解析モデルが大規模化し、複雑化する傾向にある。
【０００４】
そうした状況の下、以上の問題を解決するために、要素を用いない解析手法であるメッシュフリー法が数多く開発されている。メッシュフリー法の中でも粒子法は、近年活発に研究がなされており、最も注目されているメッシュフリー解析手法のひとつである。
【０００５】
粒子法は、上述したように要素を作成する必要がないため、解析モデル作成が容易であるだけでなく、有限要素法では解析できないような大変形を伴う問題も解析できるというメリットがある。
【０００６】
自由表面や境界面の大変形を取り扱う解析の場合、境界面を構成する粒子が刻々と変化するので、解析の途中で境界面に位置する粒子を探索して、表面張力等の境界条件を付与する必要がある。図１８および図１９に粒子法を用いて、液滴に表面張力を付加した場合の液滴形状の解析事例を示す。図１８から図１９にかけて時間が経過し、液滴形状が円形に近づいていることを示している。図１８の状態で表面に位置している粒子が、時間が経過した図１９の状態では、液滴形状の変形に伴い液滴内部に移動、または液滴内部に位置していた粒子が表面まで移動している。解析の途中の各ステップにおいて、表面に位置する粒子を探索して表面張力を付与することにより解析の精度が向上する。
【０００７】
従来、粒子法では、境界面を構成する粒子を定義する方法として、粒子数密度を用いる方法が採用されている。粒子数密度は以下の式（１）で定義される。Ｗは重み関数である。粒子数密度は、影響半径内の粒子の重み関数の総和として計算される。
【０００８】
【数１】
0005482175.tif 000002
【０００９】
非圧縮性流体の内部では、粒子数密度は、ほぼ一定（ｎ０とする）に保たれているが、境界面の粒子は、粒子数密度（ｎｉ）が低下する。このことを利用して、以下に示す式（２）のように、粒子数密度：ｎｉが内部の粒子数密度：ｎ０にある係数：βを乗じた値より小さいことを満足する粒子が、境界面に位置する粒子と定義する。
【００１０】
【数２】
0005482175.tif 000003
【００１１】
ここでの係数βは、経験的に０．９〜０．９７の値を採用すると、自由境界面を定義する方法として有効であることが確認されている（例えば、非特許文献１参照。）。
【００１２】
以降で使用する次の語句について以下のように定義する。
探索・・・複数の粒子の中から、所定の処理および判断に従い、境界に位置する粒子を探し求める動作。
抽出・・・複数の粒子の中から、所定の条件を満足する粒子を選別する動作。
【００１３】
図２０は、従来の境界粒子探索システムの機能ブロック図である。図２１は、従来の境界粒子探索システムのフローチャートである。入力部１１を用い、解析モデルデータを境界粒子探索システムにインポートする。インポートされる解析モデルデータは、粒子識別番号、粒子座標値、および材料識別番号等を含む所定のフォーマットに従って作成されている。粒子識別番号の最小のもの（以下の説明では１とする）から順次全粒子Ｎ個に対して図２１のフローチャートの処理Ａ２〜Ａ８を実行する。
【００１４】
別途領域設定部１２により定義された領域内に存在する粒子を、領域内粒子抽出部１３により抽出する。ここでの領域とは、選択された粒子の位置座標を元に定義される領域で、例えば、一般的に粒子法で採用されている選択された粒子を中心とする影響半径内の領域を示す。領域内粒子抽出部１３により抽出された粒子Ｍ個に対して、処理Ａ３〜Ａ７を実行する。抽出された粒子のひとつを選択し、粒子密度計算部１４により、式（１）に従い粒子数密度ｎｉを計算する処理Ａ４を実行する。境界粒子判断部１５により、計算された粒子数密度：ｎ１と、別途処理Ａ１にて計算された基準粒子数密度：ｎ０が、式（２）を満足するか否かの判断Ａ５を実行し、満足する場合は、境界粒子と判断し、出力部１６により、境界粒子リストを更新する。満足しない場合は、領域内の他の粒子を選択する。領域内粒子抽出部１３により抽出された全粒子Ｍ個に対して実行が完了すると、処理Ａ２に戻り、粒子識別番号２の粒子に対して同様の処理を繰り返す。以上の処理を全粒子Ｎ個に対して完結すると終了する。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】越塚  誠一、「粒子法」、丸善、２００５年２月、ｐ．３１−３２
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、粒子数密度のみで境界粒子と判断すると、境界に位置するにも関わらず、境界粒子と判断されない粒子が存在する虞がある。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本発明の第１の形態によると、粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索システムであって、解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定部と、探索基準粒子設定部が抽出した探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定部と、探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出部と、探索基準粒子に対する領域内粒子抽出部が抽出した領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルとベクトル設定部が設定した探索方向ベクトルの角度を計算するベクトル計算部と、ベクトル計算部が計算したベクトルの大きさと角度により境界粒子を決定する境界粒子判断部とを備える。
【００１８】
本発明の第２の形態によると、粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索装置であって、解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定部と、探索基準粒子設定部が抽出した探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定部と、探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出部と、探索基準粒子に対する領域内粒子抽出部が抽出した領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルとベクトル設定部が設定した探索方向ベクトルの角度を計算するベクトル計算部と、ベクトル計算部が計算したベクトルの大きさと角度により境界粒子を決定する境界粒子判断部とを備える。
【００１９】
本発明の第３の形態によると、粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索装置を制御する制御方法であって、解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定段階と、探索基準粒子設定段階においてが抽出された探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定段階と、探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出段階と、探索基準粒子に対する領域内粒子抽出段階において抽出された領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルとベクトル設定段階において設定された探索方向ベクトルの角度を計算するベクトル計算部と、ベクトル計算段階において計算されたベクトルの大きさと角度により境界粒子を決定する境界粒子判断段階とを備える。
【００２０】
本発明の第４の形態によると、粒子法等を用いた数値解析で使用する解析モデルの境界に位置する粒子を探索する境界粒子探索装置用のプログラムであって、境界粒子探索装置を、解析モデルを構成する全粒子の位置座標より境界に位置する粒子をひとつ、または複数個抽出して探索基準粒子とする探索基準粒子設定部、探索基準粒子設定部が抽出した探索基準粒子を始点とした探索する方向を示す探索方向ベクトルを設定するベクトル設定部、探索基準粒子の位置座標を元に定義される領域内に存在する他の粒子を抽出する領域内粒子抽出部、探索基準粒子に対する領域内粒子抽出部が抽出した領域内の各粒子の各位置ベクトルを作成し、その位置ベクトルの大きさと、位置ベクトルとベクトル設定部が設定した探索方向ベクトルの角度を計算するベクトル計算部、ベクトル計算部が計算したベクトルの大きさと角度により境界粒子を決定する境界粒子判断部として機能させる。
【００２１】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
【発明の効果】
【００２２】
以上の説明から明らかなように、この発明によれば、各粒子の幾何的な座標値よりベクトルを導出し、そのベクトルの大きさと、探索の基準となるベクトルとの角度を境界粒子の判断基準とするため、境界に位置する粒子は、漏れなく境界粒子と判断することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の境界粒子探索システムの機能ブロックである。
【図２】本発明の境界粒子探索システムのフローチャートである。
【図３】本発明の実施例の解析モデルのシステム表示状態図である。
【図４】本発明の実施例の境界粒子探索システムのフローチャートである。
【図５】本発明の実施例の解析モデル図である。
【図６】本発明の実施例のベクトル計算の説明図である。
【図７】本発明の実施例のベクトル計算の説明図である。
【図８】本発明の実施例のベクトル計算の説明図である。
【図９】本発明の実施例のベクトル計算の説明図である。
【図１０】本発明の実施例のベクトル計算の説明図である。
【図１１】本発明の実施例のベクトル計算の説明図である。
【図１２】本発明の実施例の境界粒子判断説明図である。
【図１３】本発明の実施例の境界粒子判断説明図である。
【図１４】本発明の実施例の境界粒子判断説明図である。
【図１５】本発明の実施例１の探索方向・基準ベクトル説明図である。
【図１６】本発明の実施例２の探索方向ベクトル説明図である。
【図１７】本実施形態に係る境界粒子探索システムのハードウェア構成の一例を示す図である。
【図１８】粒子法を用いた液滴形状解析事例を示す図である。
【図１９】粒子法を用いた液滴形状解析事例を示す図である。
【図２０】従来の境界粒子探索システムの機能ブロック図である。
【図２１】従来の境界粒子探索システムのフローチャートである。
【発明を実施するための形態】
【００２４】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２５】
図１は、本発明の境界粒子探索システムの機能ブロック図である。解析モデルデータを取り込む入力部２１と、取り込まれた解析モデルデータより境界粒子を探索する際に基準となる粒子を設定する探索基準粒子設定部２２と、探索する方向を示す探索方向ベクトルと、それに直交する探索基準ベクトルを設定するベクトル設定部２３と、取り込まれた解析モデルデータより境界粒子を探索する際に候補となる粒子の存在領域を設定する領域設定部２４と、領域設定部２４により設定された領域内に存在する粒子を抽出する領域内粒子抽出部２５と、抽出された粒子群でベクトル計算を行うベクトル計算部２６と、ベクトル計算部２６により算出されたベクトルの大きさと角度より境界粒子と判断する境界粒子判断部２７と、境界粒子と判断された粒子情報を出力する出力部２８を備える。
【００２６】
図２は、本発明の境界粒子探索方法の最良の形態を示すフロー図である。次に図１および図２を参照して、本発明を実施するための最良の形態の動作について詳細に説明する。まず、境界粒子探索システムにおいて、入力部２１を用い、解析モデルデータを境界粒子探索システムにインポートする。インポートされる解析モデルデータは、粒子識別番号、粒子座標値、および材料識別番号等を含む所定のフォーマットに従って作成されている。インポート後は、境界粒子探索システム内で定義されている２次元Ｘ−Ｙ座標系で表示装置７に表示される。探索基準粒子設定部２２により、図２に示す前処理（Ｂ１〜Ｂ４）を実行する。解析モデルの全粒子の座標値から、各軸方向の座標値が最大および最小となる粒子を抽出する処理Ｂ２を実行する。この処理で抽出された粒子を制御点として記憶する。
【００２７】
制御点数は、解析モデルまたは解析モデルのどの部分から境界粒子を抽出するかにより異なるが、少なくともひとつの粒子は抽出されなければならない。抽出された制御点より、探索の始点となる探索基準粒子をひとつ決定する処理Ｂ４を実行する。更に、ベクトル設定部２３により、探索始点粒子を始点とし、探索する方向を示す探索方向ベクトルの初期値を設定する処理Ｂ５と、探索方向ベクトルと直交し、角度計算の基準となる探索基準ベクトルの初期値を設定する処理Ｂ６を実行する。
【００２８】
探索基準粒子としてＸ座標値が最小となる粒子を設定した場合、その粒子よりＸ座標の負の方向に粒子は存在しないので、探索方向ベクトルの初期値として、Ｙ軸方向の単位ベクトル（０、１）を設定し、探索基準ベクトルの初期値として、Ｘ軸の負の方向の単位ベクトル（−１、０）を設定する。同様に、Ｙ座標値が最大となる粒子を設定した場合、その粒子よりＹ座標の正の方向に粒子は存在しないので、探索方向ベクトルの初期値として、Ｘ軸方向の単位ベクトル（１、０）を設定し、探索基準ベクトルの初期値として、Ｙ軸の正の方向の単位ベクトル（０、１）を設定する。
【００２９】
処理Ｂ２で抽出された制御点の座標値より、探索するパスを決定する処理Ｂ７を実行する。例えば、制御点がひとつの場合、境界粒子を探索して再び制御点が境界粒子を判断された場合、探索のパスが完了したものとする。また、制御点が複数個の場合、制御点１→制御点２→…．→制御点Ｘ→制御点１のようにループとなる探索パスを設定し、探索処理の正常実行、および処理終了の判断に使用する。
【００３０】
次に探索実行部分に移行する。領域設定部２４により、探索基準粒子の位置座標を元に定義される領域を設定する。この領域内に存在する粒子群を対象に境界粒子の探索が実行され境界粒子が決定される。領域内粒子抽出部２５により、領域半径内の粒子を抽出する処理Ｂ８を実行する。探索基準粒子の位置座標を元に定義される領域とは、例えば、探索基準粒子を中心した円の内部等を採用する。
【００３１】
ベクトル計算部２６により、抽出された粒子の探索始点粒子に対する位置ベクトルを求め、大きさを計算する処理Ｂ１０を実行し、その位置ベクトルと、探索基準ベクトルとの角度を計算する処理Ｂ１１を実行する。以上のベクトル計算を領域内より抽出された全粒子に対して実施（Ｂ９〜Ｂ１２）する。
【００３２】
処理Ｂ１０において算出された領域内粒子位置ベクトルの大きさと、処理Ｂ１１において算出された探索基準ベクトルとの角度を元に、境界粒子判断部２７により、境界に位置する粒子を決定する処理Ｂ１３を実行し、境界と判断された粒子の情報を抽出リストに出力する処理Ｂ１４を実行する。
【００３３】
探索基準粒子に対する境界粒子判断部２７により境界に位置すると判断された粒子の位置ベクトルを、次回の探索に使用する探索方向ベクトルとして更新する処理Ｂ１５を実行し、同様に、探索方向ベクトルと直交する探索基準ベクトルを更新する処理Ｂ１６を実行する。境界粒子判断部２７により境界に位置すると判断された粒子を次ステップの探索基準粒子として更新する処理Ｂ１７を実行する。
【００３４】
以上で最初の探索ステップが完了する。更新された探索基準粒子に対して、以上の処理を順次繰り返し実施して境界粒子を探索する。処理Ｂ７により設定した探索パスと照合し、探索パスの終了点である制御点が境界粒子と判断された場合に探索処理を終了する。
【００３５】
次に第１の実施例について図３から図１５を参照して説明する。図３は、本発明の実施例の解析モデルのシステム表示状態図である。コマンド部３１のボタンを選択するか、設定部３４の数値表示部に直接数値を入力することにより、境界粒子探索システムは各機能を実行する。
【００３６】
通常、境界粒子探索システムはグローバルな座標系３２を有しており、その座標系に従って、粒子群が解析モデルとして表示部３３に表示されている。インポートされた解析モデルの粒子数等の情報は、自動的に設定部３４に表示される。領域設定部２４で定義する領域の半径等は設定部３４に直接入力する形式を採用することもできる。
【００３７】
図４は、第１の実施例の境界粒子探索のフローチャートである。設定部３４の実行ボタンを押下すると、図４に示すフローチャートに従って処理が開始する。本実施例は、境界粒子探索システムをひとつの独立したシステムとして説明するが、図４に示す処理が、数値計算を実行する解析システムの一部を構成するサブルーチンとして実行される形式も含まれる。
【００３８】
図４に示すフローチャート中の変数の定義は以下のとおりである。
Ｎ・・・解析モデルの全粒子数
Ｍ・・・領域内より抽出された粒子数
Ｒ１・・・境界粒子第１候補のベクトルＲの大きさ  初期値＝０
Ｒ２・・・境界粒子第２候補のベクトルＲの大きさ  初期値＝０
φ１・・・境界粒子第１候補のベクトルＱとベクトルＲの角度  初期値＝２π
φ２・・・境界粒子第２候補のベクトルＱとベクトルＲの角度  初期値＝２π
【００３９】
解析対象構造体の解析モデルデータを境界粒子探索システムにインポートする。インポートされた解析モデルが表示装置７に表示された状態を図３に示す。全粒子数：Ｎは、１７２である。
【００４０】
呼び込まれた解析モデルに対して、探索基準粒子設定部により全粒子の座標値を調査して、Ｘ、Ｙ両方向において座標値が最大、最小となる粒子を抽出する処理Ｃ２を実行する。図３の解析モデルでは、図５に示す４つの粒子、粒子識別番号１、３０、４０、５０が抽出される。抽出された粒子を制御点として記憶し、この４つの制御点から探索の開始点となる探索基準粒子を決定する処理Ｃ４を実行する。図５に示すように、粒子識別番号１（以下、粒子１と称す）を第１ステップの探索基準粒子とする。
【００４１】
次に、粒子１を始点とする探索方向ベクトル：Ｐと、探索基準ベクトル：Ｑの初期設定する処理Ｃ５、Ｃ６を実行する。図３に示すように、探索基準粒子である粒子１よりＸの負の方向には粒子が存在しないので、探索方向の初期値としてＹ軸正方向をとり、探索方向ベクトル：Ｐとして大きさ１の単位ベクトル（０、１）を、探索基準方向の初期値として、Ｘ軸負の方向をとり、探索基準ベクトル：Ｑとして大きさ１の単位ベクトル（−１、０）を採用する。
【００４２】
更に、探索パスとして、探索方向ベクトル：Ｐの方向に、制御点１→制御点３０→制御点４０→制御点５０→制御点１となる閉ループを設定する処理Ｃ７を実行する。以上で探索の前処理部分が終了した。
【００４３】
次に、探索実行部分の処理を説明する。前処理で決定した探索基準粒子である粒子１を中心とした半径：ｒの領域内に存在する粒子を抽出する。ここで抽出された粒子が境界粒子の探索対象となり、境界粒子の候補となる。従って、この領域の決定は重要で、必ず境界に位置する粒子が領域内に存在するように設定しなければならない。半径：ｒを小さく設定すると、探索対象の粒子数が減少し計算時間は短縮されるが、境界粒子として選択されるべき粒子が領域内に存在しない場合がある。また、逆に半径：ｒを大きく設定すると、探索対象の粒子数が増加し計算時間が増大してしまう。半径：ｒとして設定する値として、基本粒子間隔の２．０倍から３．５倍の値を採用する。基本粒子間隔とは、解析モデル作成時に設定する値であり、粒子が充填されるモデル内部は、ほぼこの値で等間隔に粒子が作成される粒子間距離のことである。領域内に存在し、境界粒子の候補となる粒子数をＭとする。本実施例では、領域として探索基準粒子を中心とする円を採用したが、境界粒子候補が含まれていれば中心を移動させたり、円以外の領域を定義することもできる。
【００４４】
領域内の粒子のひとつを選択し、処理Ｃ９〜Ｃ１６を領域内より抽出されたＭ個の粒子に対して実施する。
【００４５】
選択された粒子の探索基準粒子に対する位置ベクトル：Ｒを求め、位置ベクトルの大きさ｜Ｒ｜と、探索基準ベクトル：Ｑとの内積Ｑ・Ｒ、および外積Ｑ×Ｒを計算する。計算された内積と外積よりベクトルＱとＲの角度θを求める。図６を用いて説明すると、探索基準粒子をＯ（斜線ハッチング）、領域内の粒子（黒丸）とする。領域内の粒子の添え字は粒子識別番号で、全粒子に重複なく付与された数である。領域内の粒子２を選択し、ベクトルＲ１を求め、ベクトルＱとベクトルＲ１との角度θ１を求める。｜θ１｜≦φ１を判断する処理Ｃ１３を実行するが、今は最初の処理であるのでφ１には判断処理Ｃ１３が必ず真となるように２πを初期値として設定しておく。
【００４６】
粒子２の場合、｜θ１｜≦φ１の判断で真と判断され、処理Ｃ１５により、粒子２が境界粒子の第１候補として記憶され、ベクトルの大きさ｜Ｒ｜と角度｜θ｜が、それぞれＲ１およびφ１として保存される。
【００４７】
次に図６に示すように、粒子３が選択される。同様にして、探索基準粒子に対する位置ベクトル：Ｒ２を求め、ベクトルの大きさ｜Ｒ２｜と、探索基準ベクトル：Ｑとの内積Ｑ・Ｒ２および外積Ｑ×Ｒ２を計算する。計算された内積と外積よりベクトルＱとＲの角度θ２を求める。｜θ２｜≦φ１を判断する処理Ｃ１３において、粒子１の処理でφ１にはθ１が設定されているので、｜θ２｜＞｜θ１｜となり偽と判断され、粒子３に対しての処理は終了する。
【００４８】
続いて、図７に示すように、粒子４が選択され、同様にベクトルの大きさ｜Ｒ３｜と角度θ３が計算される。｜θ３｜≦φ１を判断する処理Ｃ１３において、｜θ３｜≦｜θ１｜となり真と判断される。今まで境界粒子の第１候補として記憶されていた粒子１のベクトルの大きさＲ１と角度φ１を、境界粒子第２候補としてＲ２とφ２に置換する処理Ｃ１４を実行し、粒子４のベクトルの大きさ｜Ｒ３｜と角度θ３を、境界粒子第１候補としてそれぞれＲ１とφ１に記憶する処理Ｃ１５を実行する。
【００４９】
以上の処理を領域内のＭ個の全粒子において実施すると、最終的に図８に示すように、境界粒子第１候補として粒子５が、境界粒子第２候補として粒子６が記憶されることになる。
【００５０】
ふたつの境界粒子候補のベクトルの大きさＲ１とＲ２を比較し、Ｒ１≦Ｒ２を満足した場合、境界粒子第１候補である粒子５を境界粒子として決定する処理Ｃ１７を実行し、境界粒子リストに粒子５の情報を追加する処理Ｃ１８を実行する。現時点で、境界粒子リストには、粒子１と粒子５の情報が記憶されていることになる。
【００５１】
次のステップの探索方向ベクトル：Ｐとして、粒子５の粒子１に対する位置ベクトルに更新する処理Ｃ１９を実行し、探索基準ベクトル：Ｑとして、更新された探索方向ベクトルを反時計回りに９０度回転させたベクトルに更新する処理Ｃ２０を実行する。探索基準粒子として、境界粒子と決定した粒子５に更新する処理Ｃ２１を実行する。新しい探索基準粒子に対して同様の処理を実行し、順次境界粒子を探索する。
【００５２】
図５中の粒子１０が境界粒子と確定し、次の境界粒子を探索する処理について説明する。図９に示すように、粒子１０を中心とした半径：ｒの領域内に存在する粒子を抽出する。
【００５３】
領域内の粒子のひとつを選択し、以下の処理を領域内に存在する粒子に対して実施するが、既に境界粒子と判断された粒子も領域内に存在するので、既に境界粒子と判断された粒子（斜線ハッチング）に対しては、以下の処理は行わないで次の粒子に処理を移行する。
【００５４】
上述したように、次の探索方向ベクトル：Ｐとして、粒子１０の粒子９に対する位置ベクトルを採用しても良いが、点線で示した、前のステップでの探索方向ベクトルの方向および大きさの変化から予測することができる。例えば、図９に示すように、境界がほぼ円形に沿って推移している場合、探索方向ベクトル：Ｐは、ほぼ一定の角度変化で推移すると考えられるので、次の探索方向ベクトルを図中実線のベクトルＰと予想することができる。
【００５５】
以下同様に、選択された粒子の探索基準粒子に対する位置ベクトル：Ｒを求め、ベクトルの大きさ｜Ｒ｜と、探索基準ベクトル：Ｑとの内積Ｑ・Ｒおよび外積Ｑ×Ｒを計算する。計算された内積と外積よりベクトルＱとＲの角度θを求める。｜θ｜の最小となる粒子１４が境界粒子第１候補、次に｜θ｜が最小となる粒子１５が境界粒子第２候補となる。この場合も、境界粒子候補のベクトルの大きさＲ１とＲ２を比較した場合、Ｒ１≦Ｒ２を満足するので、粒子１４を境界粒子と決定する。
【００５６】
次に、図５中の粒子２０が境界粒子と決定し、次の境界粒子を探索する処理について説明する。図１０に示すように、粒子２０を中心とした半径：ｒの領域内に存在する粒子を抽出する。
【００５７】
以下同様に、｜θ｜の最小となる粒子２５が境界粒子第１候補、次に｜θ｜が最小となる粒子２４が境界粒子第２候補となる。この場合は、境界粒子候補のベクトルの大きさＲ１とＲ２を比較した場合、Ｒ１＞Ｒ２となり、以下の処理で境界粒子を確定する。図１１に示すように、Ｒ１＞Ｒ２となった場合は、図１２〜図１４に示すように、Ｒ１と基本粒子間距離：ｌ０との関係により場合分けする。
【００５８】
Ｒ１≦ｌ０の場合（図１２の場合）、粒子２５を境界粒子として決定する。粒子２０と粒子２５の間隔が基本粒子間隔以下であるので、内部の粒子２４を境界にする必要はない。
【００５９】
Ｒ１＞α×ｌ０の場合（図１４の場合）、粒子２４を境界粒子として決定する。粒子２０と粒子２５の間隔が基本粒子間隔と比較して離れているので内部の粒子２４を境界とする。
【００６０】
ｌ０＜Ｒ１＜α×ｌ０の場合（図１３の場合）、図１３に示すように、Ｒ１を底辺として低角：ωとなる二等辺三角形（クロスハッチング）の内部の領域を境界領域と定義し、この境界領域内に粒子２４が存在する場合、粒子２４を境界粒子とし、存在しない場合、粒子２５を境界粒子とする。
【００６１】
以上の、αおよびωは以下の範囲の数値を取るものとする。
３０°≦ω≦４５゜
１．２≦α≦２．０
【００６２】
以上の処理を探索パス：制御点１→制御点３０→制御点４０→制御点５０→制御点１を全て通過したかの判断処理Ｃ２２を実行し、通過した場合処理を終了する。
【００６３】
探索基準ベクトル：Ｑと位置ベクトル：Ｒの内積と外積よりベクトルＱとＲの角度θを求める方法について以下に詳細に説明する。図１５に示すように、探索基準粒子を原点として、探索方向ベクトル：Ｐと探索基準ベクトル：Ｑを軸方向とした局所座標系を考える。各象限をＺｏｎｅ１〜Ｚｏｎｅ４に分割する。内積と外積よりｔａｎθ’が求まるので、逆関数によりθ’を計算する。得られたθ’に対して、内積および外積の符号よりどのＺｏｎｅに位置するか判断して、以下の式に従いθを求める。
Ｚｏｎｅ１：内積＞０  かつ  外積≦０      θ＝θ’
Ｚｏｎｅ２：内積≦０  かつ  外積≦０      θ＝−（π−θ’）
Ｚｏｎｅ３：内積≦０  かつ  外積＞０      θ＝−（π−θ’）
Ｚｏｎｅ４：内積＞０  かつ  外積＞０      θ＝−（２．０π−θ’）
【００６４】
次に、第２の実施例について図面１７を参照して説明する。上述した第１の実施例では、探索方向ベクトルと、それに直交する探索基準ベクトルのふたつのベクトルを使用していたが、探索方向ベクトルのみで探索基準ベクトルを兼ねることも可能である。図４のフローチャート中の処理Ｃ１１において、実施例１では、探索基準ベクトルと領域内より抽出した粒子の位置ベクトルの内積および外積より角度を算出していたが、実施例２では、探索方向ベクトルと位置ベクトルの内積と外積より探索方向ベクトルと位置ベクトル角度を算出する。図１６に示すように、探索基準粒子を中心とし、探索方向ベクトルを軸方向にもつ直交座標系を考えて、図１５と同様に、各象限をＺｏｎｅ１〜Ｚｏｎｅ４に分割する。実施例１の場合と同様に、内積と外積よりｔａｎθ’が求まるので、逆関数によりθ’を計算する。得られたθ’に対して、内積および外積の符号よりどのＺｏｎｅに位置するか判断してθを求める。
【００６５】
本発明によれば、大変形を伴う流体の挙動の解析に粒子法を用いて行う場合、粒子法の解析モデルから境界に存在する粒子を効率的に探索することができ、壁面との接触判断、および表面張力のような境界条件付与の際に有効である。
【００６６】
図１７は、境界粒子探索システムをコンピュータ等の電子情報処理装置でそれぞれ構成した場合のハードウェア構成の一例を示す。境界粒子探索システムは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）周辺部と、入出力部と、レガシー入出力部とを備える。ＣＰＵ周辺部は、ホスト・コントローラ９０１により相互に接続されるＣＰＵ９０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３、グラフィック・コントローラ９０４、及び表示装置９０５を有する。入出力部は、入出力コントローラ９０６によりホスト・コントローラ９０１に接続される通信インターフェイス９０７、ハードディスクドライブ９０８、及びＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ９０９を有する。レガシー入出力部は、入出力コントローラ９０６に接続されるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１０、フレキシブルディスク・ドライブ９１１、及び入出力チップ９１２を有する。
【００６７】
ホスト・コントローラ９０１は、ＲＡＭ９０３と、高い転送レートでＲＡＭ９０３をアクセスするＣＰＵ９０２、及びグラフィック・コントローラ９０４とを接続する。ＣＰＵ９０２は、ＲＯＭ９１０、及びＲＡＭ９０３に格納されたプログラムに基づいて動作して、各部の制御をする。グラフィック・コントローラ９０４は、ＣＰＵ９０２等がＲＡＭ９０３内に設けたフレーム・バッファ上に生成する画像データを取得して、表示装置９０５上に表示させる。これに代えて、グラフィック・コントローラ９０４は、ＣＰＵ９０２等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００６８】
入出力コントローラ９０６は、ホスト・コントローラ９０１と、比較的高速な入出力装置であるハードディスクドライブ９０８、通信インターフェイス９０７、ＣＤ−ＲＯＭドライブ９０９を接続する。ハードディスクドライブ９０８は、ＣＰＵ９０２が使用するプログラム、及びデータを格納する。通信インターフェイス９０７は、ネットワーク通信装置９９１に接続してプログラム又はデータを送受信する。ＣＤ−ＲＯＭドライブ９０９は、ＣＤ−ＲＯＭ９９２からプログラム又はデータを読み取り、ＲＡＭ９０３を介してハードディスクドライブ９０８、及び通信インターフェイス９０７に提供する。
【００６９】
入出力コントローラ９０６には、ＲＯＭ９１０と、フレキシブルディスク・ドライブ９１１、及び入出力チップ９１２の比較的低速な入出力装置とが接続される。ＲＯＭ９１０は、境界粒子探索システムが起動時に実行するブート・プログラム、あるいは境界粒子探索システムのハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ９１１は、フレキシブルディスク９９３からプログラム又はデータを読み取り、ＲＡＭ９０３を介してハードディスクドライブ９０８、及び通信インターフェイス９０７に提供する。入出力チップ９１２は、フレキシブルディスク・ドライブ９１１、あるいはパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を接続する。
【００７０】
ＣＰＵ９０２が実行するプログラムは、フレキシブルディスク９９３、ＣＤ−ＲＯＭ９９２、又はＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カード等の記録媒体に格納されて利用者によって提供される。記録媒体に格納されたプログラムは圧縮されていても非圧縮であってもよい。プログラムは、記録媒体からハードディスクドライブ９０８にインストールされ、ＲＡＭ９０３に読み出されてＣＰＵ９０２により実行される。ＣＰＵ９０２により実行されるプログラムは、境界粒子探索システムを、図１から図１６に関連して説明した入力部２１、探索基準粒子設定部２２、ベクトル設定部２３、領域設定部２４、領域内粒子抽出部２５、ベクトル計算部２６、境界粒子判断部２７、及び出力部２８として機能させる。
【００７１】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク９９３、ＣＤ−ＲＯＭ９９２の他に、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）又はＰＤ（Ｐｈａｓｅ  Ｄｉｓｋ）等の光学記録媒体、ＭＤ（ＭｉｎｉＤｉｓｋ）等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークあるいはインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶媒体を記録媒体として使用して、ネットワークを介したプログラムとして境界粒子探索システムを提供してもよい。
【００７２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００７３】
２１  入力部
２２  探索基準粒子設定部
２３  ベクトル設定部
２４  領域設定部
２５  領域内粒子抽出部
２６  ベクトル計算部
２７  境界粒子判断部
２８  出力部
９０１  ホスト・コントローラ
９０２  ＣＰＵ
９０３  ＲＡＭ
９０４  グラフィック・コントローラ
９０５  表示装置
９０６  入出力コントローラ
９０７  通信インターフェイス
９０８  ハードディスクドライブ
９０９  ＣＤ−ＲＯＭドライブ
９１０  ＲＯＭ
９１１  フレキシブルディスク・ドライブ
９１２  入出力チップ
９９１  ネットワーク通信装置
９９２  ＣＤ−ＲＯＭ
９９３  フレキシブルディスク
【図１】
0005482175.tif 000004
【図２】
0005482175.tif 000005
【図３】
0005482175.tif 000006
【図４】
0005482175.tif 000007
【図５】
0005482175.tif 000008
【図６】
0005482175.tif 000009
【図７】
0005482175.tif 000010
【図８】
0005482175.tif 000011
【図９】
0005482175.tif 000012
【図１０】
0005482175.tif 000013
【図１１】
0005482175.tif 000014
【図１２】
0005482175.tif 000015
【図１３】
0005482175.tif 000016
【図１４】
0005482175.tif 000017
【図１５】
0005482175.tif 000018
【図１６】
0005482175.tif 000019
【図１７】
0005482175.tif 000020
【図１８】
0005482175.tif 000021
【図１９】
0005482175.tif 000022
【図２０】
0005482175.tif 000023
【図２１】
0005482175.tif 000024