JP6458501B2 - シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置 - Google Patents

シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置 Download PDF

Info

Publication number
JP6458501B2
JP6458501B2 JP2015000797A JP2015000797A JP6458501B2 JP 6458501 B2 JP6458501 B2 JP 6458501B2 JP 2015000797 A JP2015000797 A JP 2015000797A JP 2015000797 A JP2015000797 A JP 2015000797A JP 6458501 B2 JP6458501 B2 JP 6458501B2
Authority
JP
Japan
Prior art keywords
particles
region
particle
boundary
repulsive force
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015000797A
Other languages
English (en)
Other versions
JP2016125934A (ja
Inventor
多聞 諏訪
多聞 諏訪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015000797A priority Critical patent/JP6458501B2/ja
Priority to US14/950,373 priority patent/US10068037B2/en
Publication of JP2016125934A publication Critical patent/JP2016125934A/ja
Application granted granted Critical
Publication of JP6458501B2 publication Critical patent/JP6458501B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)

Description

本発明は、シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置に関する。
数値計算を用いて流体である水や空気の流れを調べる流体解析や、圧縮された弾性体であるゴムの振る舞いを調べる弾性体解析などの、連続体の運動の解析において、粒子法と呼ばれる技術がある。連続体は、物質の巨視的な性質を保持した質点の集合体であり、質点は物質の存在する空間内に連続的に、密に分布している。粒子法は、連続体を粒子の分布で実現し、連続体の運動を粒子の運動として解析する解析手法である。粒子法としては、SPH(Smoothed Particles Hydrodynamics)法やMPS(Moving Particles Semi-implicit)法が知られている。また、粒子法において粉流体の挙動を表現する手法としては、個別要素法と呼ばれる方法がある。
粒子分布を用いて解析対象を表現する場合、固定境界が設定される。固定境界を実現する手法には様々なものがある。
粒子法において固定境界を実現する標準的な方法としては、以下の3つの方法がある。第1の方法では、境界に沿って仮想的な流体粒子(以下、「境界粒子」と呼ぶ)を配置する。この境界粒子を固定境界に固着した流体とみなすことで、固定境界が実現される。第2の方法では、第1の方法と同様に配置された境界粒子と、解析対象である連続体を実現する粒子との間に、両粒子間の距離の関数で大きさが与えられ、両粒子の相対位置ベクトルに沿った方向の反発力が設定される。これにより、連続体を実現する粒子が固定境界の内側に運動の領域が限定される。第3の方法では、解析対象である連続体を実現する粒子に対して、予め設定された境界面を挟んで鏡映対称な位置に仮想的な連続体粒子を配置することで、固定境界が実現される。
固定境界を実現する他の方法としては、境界粒子を配置し、その境界粒子に対して一定以下の距離に近づいた連続体粒子に対して、境界面の法線に沿った向きの反発力を与えることで、固定境界を実現する方法がある。
また、固定境界をポリゴンの集合として表現する方法もある。この方法では、連続体粒子は、その重心座標が最も近いポリゴンとの間に、該連続体粒子と該ポリゴンを含む平面との距離に応じた反発力が与えられる。ただし、該連続体粒子と該ポリゴンを含む平面との距離が一定値以下になる場合にのみ、反発力が与えられる。
さらに、汎用性が高く、濡れ性モデルを統一的に取り扱うことができ、空間解像度が粗くても精度よく解析を行うことができる流体解析装置も考えられている。この流体解析装置は、流体を表す第1の粒子ごと、および流体に接する壁を表す第2の粒子ごとに、速度、位置、圧力を記録し、流体と壁との接触角θと、各粒子が他の粒子から作用力を受ける範囲に含まれる粒子を特定する。そして流体解析装置は、第1の粒子は第1の関数で、第2の粒子は第1の関数に(1+cosθ)/2を乗じて作用力を算出する。
さらに、次の処理をコンピュータに実行させる連続体運動解析プログラムが考えられている。連続体運動解析プログラムに基づいて、コンピュータは、連続体を粒子として表し、固定境界を任意の形状を有する微小な領域(微小面要素)の集合として表し、各連続体粒子の影響範囲に含まれる微小面要素から連続体粒子に対して微小面要素の法線方向に働く反発力を算出する。そしてコンピュータは、各反発力を足し合わせて連続体粒子に働く固定境界からの力を求める。
計算コストを抑えると共に固定壁の境界条件について任意の形状に対応可能であり、さらに計算精度の良い流動解析方法も考えられている。この流動解析方法では、壁境界の距離が所定以下と判断された第1粒子の各々に対して最も近い壁境界の曲率が算出される。そして、算出された曲率に応じた拡大率で、壁境界を挟んで対称に、壁を表す複数の第2粒子が、境界条件として配置される。
特開2008−111675号公報 国際公開第2012/025995号 特開2010−243293号公報
G.R.Liu, M.B.Liu, "Smoothed Particle Hydrodynamics:A Meshfree Particle Method", World Scientific Pub Co Inc., 2003年10月, pp.138-141 M.G.Gesteira, B.D.Rogers, R.A.Dalrymplem, A.J.C.Crespo, M.Narayanaswamy, "User Guide for the SPHysics Code v1.4",2009年2月, pp.16-19 原田隆宏、越塚誠一、河口洋一郎、「流体と布のリアルタイム連成シミュレーション」、情報処理学会研究報告、グラフィクスとCAD研究会報告、社団法人情報処理学会、2007年11月12日、p.13-18
従来技術のうち、境界面を微小面要素の集合として表現する固定境界の表現方法は、他の表現方法に比べ、解析を行うために用いるメモリ容量および解析の計算時間を軽減することができ、適用場面に関する制約も少ないという利点がある。しかし、微小面要素から一定距離以内に近づいた連続体粒子に反発力を及ぼすため、一定距離よりも狭い隙間を有する領域内での連続体の運動解析を行うことができない。境界要素からの反発力が及ぶ距離は、例えば、数値計算上の空間解像度に合わせて平均粒子間隔程度とすることが多い。このとき、粒子間隔が1cm程度のときには、5mm程度の間隔で空いた隙間に粒子が入り込む過程を扱うことなどができない。
1つの側面では、本件は、狭い隙間を有する領域内での粒子法による解析を可能とすることを目的とする。
1つの案では、コンピュータに以下の処理を実行させるシミュレーションプログラムが提供される。コンピュータは、連続体を表す複数の粒子の位置と、第1の領域と第2の領域との境界を表す複数の要素の位置とに基づいて、複数の粒子それぞれが第2の領域内にあるか否かを判断する。次にコンピュータは、第2の領域内にある粒子に関して、複数の要素で表される境界と粒子との距離に基づいて、第1の領域側に向かう力を算出する。そしてコンピュータは、第2の領域内にある粒子に力を作用させて、複数の粒子の運動を解析する。
1態様によれば、狭い隙間を有する領域内での粒子法による解析が可能となる。
第1の実施の形態に係るシミュレーション装置の構成例を示す図である。 第2の本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。 コンピュータのシミュレーション機能を示すブロック図である。 連続体粒子データの一例を示す図である。 円盤要素データの一例を示す図である。 交差円盤リストの一例を示す図である。 固定境界での反発力作用範囲の違いを示す図である。 凸に交差する円盤要素の例を示す図である。 凹に交差する円盤要素の例を示す図である。 シミュレーション手順の一例を示す第1のフローチャートである。 連続体粒子と円盤要素との位置関係の判断例を示す図である。 交差円盤リスト作成処理の手順の一例を示すフローチャートである。 2つの円盤要素が共通部分を持つかどうかの判定例を示す図である。 シミュレーション手順の一例を示す第2のフローチャートである。 シミュレーション手順の一例を示す第3のフローチャートである。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、流体や弾性体などの連続体を粒子法で解析するシミュレーション装置である。このシミュレーション装置は、連続体を表す粒子の運動解析時に、境界の裏側への粒子の侵入を許容し、境界の表側に近づいても反発させない。その代わり、シミュレーション装置は、境界の裏側に入った粒子に対して、表側に戻す反発力を加える。これにより、屈折する境界の狭い隙間にも粒子が入り込めるようになる。
図1は、第1の実施の形態に係るシミュレーション装置の構成例を示す図である。シミュレーション装置10は、記憶部11と演算部12とを有する。
記憶部11は、連続体を表す複数の粒子4〜7に関する粒子データ11aと、第1の領域1と第2の領域2との境界3を表す複数の境界要素3a〜3eに関する境界要素データ11bとを記憶する。第1の領域1は、連続体で表される物質が存在する領域である。
第1の領域1と第2の領域2との境界3は、例えば、複数の境界要素3a〜3eを交差させながら組み合わせることで形成される。境界3は、要素間の交差部において屈折しており、狭い隙間が生じている場合もある。例えば図1の例では、境界要素3bと境界要素3dとの間が、狭い隙間となっている。
粒子データ11aには、例えば各粒子4〜7の位置を示す情報が含まれる。境界要素データ11bには、各境界要素3a〜3eの位置を示す情報が含まれる。複数の境界要素3a〜3eは、例えば円盤形のような面状の要素である。複数の境界要素3a〜3eが円盤形の場合、境界要素データ11bには、さらに各境界要素3a〜3eの大きさを示す情報(例えば半径または面積)や向きを示す情報(例えば法線ベクトル)が含まれる。
演算部12は、複数の粒子4〜7の位置と、複数の境界要素3a〜3eの位置とに基づいて、複数の粒子4〜7それぞれが第2の領域2内にあるか否かを判断する。例えば複数の境界要素3a〜3eが円盤形であるとき、第1の領域1を向く面を表面とし、第2の領域2を向く面を裏面とする。このとき、演算部12は、例えば、複数の粒子4〜7それぞれを注目粒子とする。そして演算部12は、注目粒子の位置が裏面側となる境界要素が少なくとも1つ存在するかどうかを判断する。該当する境界要素が存在しない場合、演算部12は、注目粒子が第1の領域1内にあると判断する。また該当する境界要素が存在する場合、演算部12は、境界要素のうちの該注目粒子に最も近い最近接要素を特定する。そして演算部12は、注目粒子の位置が、最近接要素に対して第1の領域1側に凸となるように交差する交差境界要素の表面側ではない場合、注目粒子が第2の領域2内にあると判断する。
第2の領域2内にある粒子4,7を検出すると、演算部12は、それらの粒子4,7に関して、複数の境界要素3a〜3eで表される境界3と粒子4,7との距離に基づいて、第1の領域1側に向かう力4a,7aを算出する。例えば演算部12は、複数の境界要素3a〜3eが、第1の領域1を向く表面と第2の領域2を向く裏面とを有する円盤の場合、粒子4,7が裏面側にある境界要素のうちの、粒子に最も近い境界要素の表面側の法線方向の力を算出する。
また演算部12は、粒子が、第1の領域1側に凹となるように交差する第1および第2の要素それぞれの裏面側にある場合、第1および第2の要素のうち、粒子との距離が長い方の要素における粒子との距離に基づいて、力を算出する。
力の算出後、演算部12は、第2の領域2内にある粒子4,7に対して算出した力4a,7aを作用させて、複数の粒子4〜7の運動を解析する。
このように、粒子が境界要素の裏側に回り込んだ時に反発力を与えることで、境界形状に細い隙間があっても、その隙間に容易に粒子が入り込むことができる。例えば粒子5は、いずれの要素の裏側でもないため、要素からの反発力を受けず、容易に隙間に入り込むことができる。その結果、流体や弾性体の粒子の流れ込みを扱う解析が可能となる。
また、複数の粒子4〜7は、第2の領域2側に入り込んだときに、例えば、境界3を構成する複数の境界要素3a〜3eのうち、粒子に対して裏側を見せているいずれかから反発する力を受けることとなる。例えば粒子4は、境界要素3dと境界要素3eとの裏面側にある。粒子4に最も近いのは境界要素3eであるため、粒子4は、境界要素3eから、例えば境界要素3eの法線方向の力4aを受ける。このように、より近い境界要素3eから力4aを受けることで、粒子4は、迅速に第1の領域1に戻すことができる。
なお、複数の境界要素3a〜3eを用いて境界3の形状を定義すると、要素の端が表現したい形状からはみ出ることがあり得る。第1の実施の形態では、要素同士の角度を用いて、反発力の与え方に修正を施すことで、要素の端において、不自然な反発力が発生することを防ぐことができる。例えば、粒子6の位置は、境界要素3dの裏側にあるが、その境界要素3dとの間で、第1の領域1側に凸に交差する境界要素3eの表側でもある。この場合、粒子6には反発力は働かない。すなわち、交差する要素の端部が飛び出していても、飛び出した部分の影響で粒子6に不自然な力が働くことが抑止される。なお粒子7の位置は、境界要素3cの裏側にあり、境界要素3cと交差する境界要素3bの表側にあるが、境界要素3cと境界要素3dとは、第1の領域1に対して凹に交差している。そのため、粒子7は、例えば境界要素3cの法線方向の力7aを境界要素3cから受けることとなる。
しかも、要素間の交差部分において要素の端が飛び出ることが許容されることにより、複数の境界要素3a〜3eを用いて境界3の形状を表現する際に、要素間の接続情報を取り扱わずにすむ。その結果、形状を生成するときに煩雑な処理が減らされ、表面を隙間なく覆う境界3の作成が容易となる。
図1に示す第1の実施の形態に示すシミュレーション装置10による連続体の運動解析における境界面の設定手法は、他の手法に比べ、さまざまな点で優れている。
例えば、境界粒子を配置し、その境界粒子に対して一定以下の距離に近づいた連続体粒子に対して、境界面の法線に沿った向きの反発力を与える手法では、滑らかな形状の境界を表現するためには多数の粒子を用いることとなる。粒子の量が多ければ、メモリ容量、計算時間のいずれも多く消費される。それに対して第1の実施の形態では、粒子で境界を構成する場合に使用する粒子よりも少ない量の要素で境界を設定でき、消費するメモリ量の削減、および計算時間の削減が可能となる。
しかも多数の粒子で境界を設定する手法の中には、境界により粒子に与える反発力は、例えば、連続体を構成する粒子の位置からx軸,y軸それぞれの正・負の方向に1つずれた位置にある4つの境界粒子を用いて得られる法線ベクトル方向に設定されるものがある。この場合、境界面上の粒子分布は正則(隣接する粒子数が一定となること)な格子点、もしくは、それを連続的に変形させた位置に配置しなくてはならないという制約がある。その結果、例えば、テトラメッシュの重心位置に境界粒子を配置するなどした場合には応用することができないという問題がある。それに対して、第1の実施の形態では、境界の設定に関し、そのような制約はなく、柔軟性が高い。
また、固定境界をポリゴンの集合として表現する手法もあるが、この手法ではポリゴンのサイズが一様であると仮定している。そのため、ポリゴンのサイズが異なる状況では、ポリゴンの境界付近において不合理な反発力を生じうるという問題がある。それに対して、第1の実施の形態のシミュレーション装置10では、境界を構成する要素のサイズが一定でなくても適切な反発力を生じさせることができる。
さらに、境界面に対して鏡映対称な位置に仮想的な連続体粒子を配置する手法がある。この手法では、鏡映対称な位置を計算するためには境界面を解析的に表現しなくてはならない。そのため、例えば、人手によって作成された、境界面の形状、および、その法線方向を表現する数式が特に与えられていないような境界形状に対しては適用できないという問題がある。それに対して、第1の実施の形態では、境界面の法線方向は、円盤形の要素データから一意に決定するため、数式によって与えずにすむ。
粒子に最も近い壁境界の曲率に応じた拡大率で、壁境界を挟んで対称に、壁を表す複数の第2粒子を配置する手法では、境界面が動くとき、距離関数の算出を毎ステップ行うこととなり、計算量が過大となる。そのため、数値計算に要する時間が増大するという問題がある。それに対して、第1の実施の形態では、境界面が動く場合、境界データを更新すればよく、数値計算に要する時間の増大は微小である。
固定境界を任意の形状を有する微小な領域(微小面要素)の集合として表す従来の手法では、境界要素から一定距離以内に近づいた粒子に反発力を及ぼす。そのため、その距離よりも狭い隙間を扱うことができない。境界要素からの反発力が及ぶ距離は数値計算上の空間解像度に合わせて平均粒子間隔程度とすることが多いが、例えば、粒子間隔が1cm程度のときには、5mm程度の間隔で空いた隙間に粒子が入り込む過程を扱うことなどができない。それに対して、第1の実施の形態では、狭い隙間にも粒子を入り込ませることができ、狭い隙間を有する領域における連続体の運動を、適切に解析することができる。
なお、演算部12は、例えばシミュレーション装置10が有するプロセッサにより実現することができる。また、記憶部11は、例えばシミュレーション装置10が有するメモリにより実現することができる。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、粒子法を用いた数値計算により、流体または弾性体の運動解析シミュレーションを行うものである。なお第2の実施の形態では、円形の円盤要素で境界面が設定される。
図2は、第2の本実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
メモリ102は、コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に必要な各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、コンピュータ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの不揮発性の半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ21が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取りを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示したシミュレーション装置10も、図2に示したコンピュータ100と同様のハードウェアにより実現することができる。シミュレーション装置10内の要素のうち、演算部12は、コンピュータ100のプロセッサ101によって実現できる。またシミュレーション装置10内の要素のうち、記憶部11は、コンピュータ100のメモリ102またはHDD103によって実現できる。
コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。またコンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
図3は、コンピュータのシミュレーション機能を示すブロック図である。コンピュータ100は、記憶部110、シミュレーション制御部120、運動計算部130、および反発力計算部140を有する。
記憶部110は、シミュレーションに用いるデータを記憶する。例えば記憶部110は、連続体粒子データ群111、円盤要素データ群112、および交差円盤リスト113を記憶する。記憶部110としては、例えばメモリ102またはHDD103の記憶領域の一部が使用される。
連続体粒子データ群111は、連続体粒子ごとに用意された単位データ(連続体粒子データ)の集合である。また、連続体粒子データは流体や弾性体をモデル化したものであり、流体・弾性体などの連続体を表す各粒子の状態を示すデータである。連続体粒子データ群111は、シミュレーション制御部120によりシミュレーション開始時に初期値が設定され、シミュレーションの進行に伴い更新される。
円盤要素データ群112は、円盤要素ごとに用意された単位データ(円盤要素データ)の集合であり、流体を格納した容器の壁などを微小円盤の集合として境界の壁全体をモデル化したものである。円盤要素データは、境界面を形成する各円盤要素の形状を示すデータである。円盤要素データ群112は、シミュレーション制御部120によりシミュレーション開始時に設定される。
交差円盤リスト113は、ある円盤要素と交差する他の円盤要素のリストである。交差円盤リスト113は、反発力計算部140による反発力計算時に作成される中間データである。
シミュレーション制御部120は、運動計算部130および反発力計算部140と連携して、連続体の運動解析のシミュレーションを行う。例えばシミュレーション制御部120は、シミュレーションの時間ステップごとに、その時間ステップにおける連続体粒子の状態を計算する。そしてシミュレーション制御部120は、連続体粒子の運動(速度や加速度)については、運動計算部130に計算させる。またシミュレーション制御部120は、連続体粒子に対して円盤要素から働く反発力については、反発力計算部140に計算させる。
運動計算部130は、流体または弾性体に働く物理法則に従って、シミュレーション上のタイムステップごとの連続体粒子の位置や物理量を計算する。運動計算部130は、計算結果に基づいて、連続体粒子データ群111内の各連続体粒子データを更新する。
反発力計算部140は、連続体粒子の運動に対して固定境界条件を適用するため、円盤要素に一定以上近づいた連続体粒子に対して、円盤要素の法線方向に加える反発力を計算する。例えば反発力計算部140は、連続体粒子が円盤要素の裏側にあるときに、その円盤要素の表側に向かう反発力を、その連続体粒子に働かせる。
なお、図3に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータ100に実行させることで実現することができる。
次に、記憶部110内のデータについて詳細に説明する。
図4は、連続体粒子データの一例を示す図である。連続体粒子データ群111に含まれる連続体粒子データ111a,111b,111c,・・・には、例えば連続体粒子番号、中心座標データ、速度データ、加速度データ、およびその他のデータが含まれる。連続体粒子番号は、連続体粒子の識別番号である。中心座標データは、連続体粒子の中心(例えば重心)位置の座標である。速度データは、連続体粒子の移動速度である。加速度データは、連続体粒子の加速度である。その他のデータは、例えば連続体粒子で表現されている流体の物性値などである。例えば、影響半径、密度、質量、変形勾配テンソル、材料物性、温度などのデータが、その他のデータに含まれる。
図5は、円盤要素データの一例を示す図である。円盤要素データ群112に含まれる円盤要素データ112a,112b,112c,・・・には、例えば円盤要素番号、中心座標データ、法線ベクトルデータ、面積データなどが含まれる。円盤要素番号は、円盤要素の識別番号である。中心座標データは、円盤要素の中心(例えば円盤要素の重心)位置の座標である。法線ベクトルデータは、円盤要素の表側に向かう大きさ1の法線ベクトルを示すベクトルデータである。面積データは、円盤要素の面積を示すデータである。面積データに基づいて、円盤要素の半径を算出できる。
図6は、交差円盤リストの一例を示す図である。交差円盤リスト113には、判定対象となっている円盤要素に交差する他の円盤要素それぞれに関するエントリ113a,113b,・・・が登録されている。各エントリには、円盤要素番号と角度フラグデータとが含まれる。円盤要素番号は、判定対象の円盤要素に交差する他の円盤要素の識別番号である。角度フラグデータは、対応する円盤要素番号で示される円盤要素と、判定対象の円盤要素(最近接要素)との交差する位置における表側の角度が、凸なのか凹なのかを示すデータである。交差する位置の表側の角度が180度以上であれば、凸に交わっており、交差する位置の表側の角度が180度未満であれば、凹に交わっている。
このような機能を有するコンピュータ100により、連続体の運動解析シミュレーションが行われる。なお、第2の実施の形態におけるシミュレーションでは、連続体粒子が固定境界の裏側に入り込むことを許容している。そして、固定境界の境界面が円盤要素で表され、円盤要素の裏側に入り込んだ連続体粒子に対して、反発力が加えられる。これにより、固定境界の表側で反発力を生じさせた場合と異なり、極めて狭い空間にも連続体粒子が侵入できるようになる。
図7は、固定境界での反発力作用範囲の違いを示す図である。図7では、上段に、固定境界の表側の連続体粒子に反発力を加えた例を示し、下段に、固定境界の裏側の連続体粒子に反発力を加えた例を示している。固定境界は、複数の円盤要素31〜35によって境界面が表現されている。図7の例では、円盤要素31〜35で表された境界面の上が表側、下が裏側である。
固定境界の表側の連続体粒子に反発力を加える場合、円盤要素31〜35の表側の所定の距離d以下の範囲が、反発力作用範囲41となる。反発力作用範囲41外にある連続体粒子51には反発力は加えられないが、反発力作用範囲41内にある連続体粒子52には、円盤要素35から遠ざかる方向への反発力42が加えられる。
ここで、反発力作用範囲41を定める距離dに比べて狭い幅(例えば距離dの2倍以下)の領域43があると、その領域43内に連続体粒子51,52が入り込むことは困難となる。図7の例では、円盤要素32〜34に囲まれた領域が、狭い領域43である。また、連続体粒子51,52が狭い領域43に入り込んだとしても、常にいずれかの円盤要素から反発力を受けることとなり、運動を正しく解析することができない。
他方、固定境界の裏側の連続体粒子に反発力を加える場合、円盤要素31〜35の裏側の所定の距離d以下の範囲が、反発力作用範囲44となる。反発力作用範囲44外にある連続体粒子53には反発力は加えられないが、反発力作用範囲44内にある連続体粒子54には、円盤要素35の表側に向かう反発力45が加えられる。
この場合、幅の狭い領域43は、反発力作用範囲44外である。そのため、連続体粒子53,54は、領域43内に容易に入り込むことができる。しかも、狭い領域43に入り込んだ連続体粒子5に対して、反発力が作用しないため、運動を正しく解析することができる。
なお、固定境界を形成する複数の円盤要素は、隣接する円盤要素同士が交差する。そのため、各円盤要素には、隣接する円盤要素と交差する部分からはみ出す部分がある。三次元空間内で円盤要素を組み合わせた際に生じる円盤要素の端のはみ出しは、凸に交差する場合と凹に交差する場合とに分けて、以下の方針で処理される。
図8は、凸に交差する円盤要素の例を示す図である。図8の例では、円盤要素36と円盤要素37とが凸に交差している。円盤要素36の中心位置は、位置ベクトルrj1で表される。円盤要素36の法線ベクトルはnj1である。同様に円盤要素37の中心位置は、位置ベクトルrj2で表される。円盤要素37の法線ベクトルはnj2である。円盤要素37の位置ベクトルrj2から、円盤要素36の位置ベクトルrj1を減算することで、円盤要素36から円盤要素37への相対位置ベクトルrj1j2が得られる。
図8に示したように円盤要素36,37が凸に交差する状況では、各円盤要素36,37の裏側に入り込んだ連続体粒子ri1は、最も鉛直距離の近い円盤要素36から反発力を受ける。ただし、最も鉛直距離の近い円盤要素36の裏側ではあるが、円盤要素36に凸に交わる円盤要素37の表側にある連続体粒子ri2は、いずれの円盤要素36,37からも反発力を受けないこととする。
このように、連続体粒子が円盤要素の裏側にある場合でも、隣接する他の円盤要素の表側となる場合には、その連続体粒子には反発力を加えないことで、本来の固定境界の内側(円盤要素の表面側)にある連続体粒子には、円盤要素からの反発力が働かなくなる。その結果、交差する円盤要素における交差位置よりも先の部分においても、流体または弾性体の運動を正しく解析できる。
2つの円盤要素36,37の交わる角度の凹凸の判定は、2つの円盤要素36,37間の相対位置ベクトルrj1j2と、法線ベクトルnj1,nj2それぞれとの内積の符号を用いて判断できる。
例えば反発力計算部140は、円盤要素36,37それぞれの円盤要素データから、法線ベクトルnj1,nj2を示す法線ベクトルデータを取得する。また反発力計算部140は、円盤要素36,37それぞれの円盤要素データから面積データを取得し、その面積データから円盤要素36,37の半径Rj1,Rj2を求める。さらに反発力計算部140は、円盤要素36から円盤要素37それぞれの中心座標データの各座標成分の値の差を取って、相対位置ベクトルrj1j2とする。
ここで、次の条件の両方を満たすとき、円盤要素36と円盤要素37とは、凸なる角度を持っていると判断できる。
条件1:rj1j2・nj1<0
条件2:−rj1j2・nj2<0
また、いずれの条件も満たさないとき、円盤要素36と円盤要素37とは凹なる角度を持っていると判断できる。交差する2円盤要素が条件の片方のみを満たし、もう片方を満たさないとき、これらの2要素によって境界面の表裏を整合的に表現することはできないので、そのような場合は、処理を止めるか、凹凸いずれかの場合に準じた処理を行う。
図9は、凹に交差する円盤要素の例を示す図である。図9の例では、円盤要素36と円盤要素37とが凹に交差している。この状況において、各円盤要素36,37それぞれ裏側に入り込んだ連続体粒子ri3は、鉛直距離の遠い方から反発力を受けることとする。例えば連続体粒子ri3から円盤要素36への鉛直距離がrn1であり、連続体粒子ri3から円盤要素37への鉛直距離がrn2であるとする。図9の例では、rn1<rn2である。そのため、連続体粒子ri3は、円盤要素37から、円盤要素37の法線ベクトルnj2の正の方向への反発力を受ける。
このように、連続体粒子が複数の円盤要素の裏側にある場合、鉛直距離が遠い方の円盤要素から反発力を働かせることで、連続体粒子が固定境界を超えて入り込む深さを、迅速に減少させることができる。
次に、シミュレーションの手順について詳細に説明する。
図10は、シミュレーション手順の一例を示す第1のフローチャートである。
[ステップS101]シミュレーション制御部120は、入力データを取得する。入力データには、数値計算を行う直接の対象である連続体粒子データや、連続体粒子の運動の境界条件を設定する円盤要素データが含まれる。入力データは、例えば、ユーザ操作によってコンピュータ100に入力される。シミュレーション制御部120は、入力データを、記憶部110に格納する(図4、図5参照)。
シミュレーション制御部120は、入力データの取得後、シミュレーションの時間ステップごとに、以下の処理を実行する。
[ステップS102]運動計算部130は、連続体粒子に設定された物理モデルに従って、連続体粒子の運動を解く。例えば、運動計算部130は、流体をモデル化した連続体粒子に対しては、ナヴィエ・ストークス方程式や連続方程式を解いて、加速度や密度の時間微分を求める。
[ステップS103]反発力計算部140は、反発力を計算していない連続体粒子の中から、反発力の計算対象とする連続体粒子を1つ選択する。以下、選択した連続体粒子を、注目連続体粒子と呼ぶ。
[ステップS104]反発力計算部140は、注目連続体粒子に対して、以下の条件を満たした円盤要素を同定し、最近接円盤とする。
条件1:円盤要素から見て、注目連続体粒子の位置が法線の方向(表側)の逆側(裏側)に存在する。
条件2:円盤要素と法線方向の作る円筒の内部に存在する。
条件3:上記2つの条件を共に満たす円盤要素のなかで、注目連続体粒子との鉛直距離が最も小さい。
注目連続体粒子と円盤要素が上記条件を満たしているかどうかの判断は、次の通り行う。
図11は、連続体粒子と円盤要素との位置関係の判断例を示す図である。ここで、注目連続体粒子61の番号をi(iは1以上の整数),円盤要素62の番号をj(jは1以上の整数)とする。反発力計算部140は、注目連続体粒子61の位置から、円盤要素62の中心への相対位置ベクトルを求める。相対位置ベクトルは、注目連続体粒子61の中心座標データの各座標成分と円盤要素62の座標データの各座標成分との差を取ることで求めることができる。反発力計算部140は、求められた相対位置ベクトルを、rijとする。
次にj番の円盤要素62の法線ベクトルデータの値をnj, j番の円盤要素62の面積データの値をAjとする。反発力計算部140は、rijのnj方向成分rnijとrijのnjに垂直な成分rtijとを次の式から求める。
nij=(rij・nj)nj
tij=rij−rnij
反発力計算部140は、円盤要素62の半径RjをRj=(Aj/π)1/2として求める(πは円周率)。ここで、「条件1」が満たされているかどうかを、rij・nj<0であるかどうかによって判断することができる。すなわち、rij・nj<0であれば、注目連続体粒子61は円盤要素62の表側にあり、「条件1」は満たされない。rij・nj<0でなければ、注目連続体粒子61は円盤要素62の裏側にあり、「条件1」は満たされる。なお、この例では、rij・nj=0の場合も、注目連続体粒子61が円盤要素62の裏側にあるとみなしている。
「条件2」が満たされているかどうかは、Rj>|rtij|という条件式が満たされているかどうかで判断できる。すなわち、Rj>|rtij|が満たされれば、「条件2」が満たされる。この例では、Rj=|rtij|の場合には、「条件2」が満たされないこととなるが、Rj=|rtij|の場合、「条件2」が満たされるものとしてもよい。
i番目の注目連続体粒子61に対して、「条件1」と「条件2」との2つの条件を共に満たす円盤要素のなかで、|rnij|が最も小さい円盤要素が、「条件3」を満たす最近接円盤である。
このような最近接円盤の判断が、すべての連続体粒子に対して行われる。なお、すべての円盤要素の表側にある連続体粒子に対しては、最近接円盤は存在しない。少なくとも1つの円盤要素の裏側に存在する連続体粒子に対しては、最近接円盤が求められる。
以下、図10の説明に戻る。
[ステップS105]反発力計算部140は、注目連続体粒子に対する最近接円盤が存在するか否かを判断する。最近接円盤が存在しない場合、反発力計算部140は、注目連続体粒子がいずれの円盤要素からも反発力を受けないと判断し、処理をステップS121(図15参照)に進める。最近接円盤が存在すれば、処理がステップS106に進められる。
[ステップS106]反発力計算部140は、最近接円盤に交差する円盤要素のリストである交差円盤リスト113(図6参照)を作成する。交差円盤リスト作成処理の詳細は後述する(図12参照)。その後、処理がステップS111(図14参照)に進められる。
次に、交差円盤リスト113作成処理について詳細に説明する。
図12は、交差円盤リスト作成処理の手順の一例を示すフローチャートである。
[ステップS201]反発力計算部140は、最近接円盤を円盤要素j1とする。
[ステップS202]反発力計算部140は、円盤要素データ群112に含まれる円盤要素データに示される円盤要素を1つ選択する。
[ステップS203]反発力計算部140は、選択した円盤要素を、円盤要素j2とする。
[ステップS204]反発力計算部140は、円盤要素j1を含む平面P1と円盤要素j2とが共通部分を持つかどうかを判断する。
図13は、2つの円盤要素が共通部分を持つかどうかの判定例を示す図である。これは|rj1j2・nj1|<R12sinθ12であれば、円盤要素j1を含む平面P1と円盤要素j2とが共通部分を持つと判断できる。ここでθ12は2つの円盤要素それぞれの法線ベクトルnj1,nj2がなす角であり、θ12=arccosnj1・nj2として計算できる。|rj1j2・nj1|は、円盤要素j2の中心から平面P1までの鉛直距離を示している。R12sinθ12は、円盤要素j2の外縁が、円盤要素j1の法線方向に、円盤要素j2の中心からどの程度の距離まで届くかを示している。
以下、図12の説明に戻る。
円盤要素j1を含む平面P1と円盤要素j2とが共通部分を持つ場合、処理がステップS205に進められる。また、共通部分を持たない場合、円盤要素は互いに交わらないと判断され、選択した円盤要素を交差円盤リスト113に加えずに、処理がステップS211に進められる。
[ステップS205]反発力計算部140は、円盤要素j2を含む平面P2と円盤要素j1とが共通部分を持つかどうかを判断する。共通部分を持つ場合、処理がステップS206に進められる。また、共通部分を持たない場合、円盤要素は互いに交わらないと判断され、選択した円盤要素を交差円盤リスト113に加えずに、処理がステップS211に進められる。
[ステップS206]反発力計算部140は、ステップS204,S205のいずれの場合においても共通部分を持つなら、円盤要素j2の外縁と平面P1との交点(図13参照)を求める。
これは未知ベクトルrに関する連立方程式を解くことで求めることができる。ここで、円盤要素の中心座標データからrj1,rj2、法線ベクトルデータからnj1,nj2、面積データからRj2が求まり、未知数としてrを含む、以下の方程式をたてることができる。
(r−rj1)・nj1=0
(r−rj2)・nj2=0
(r−rj22=Rj2 2
これを解くと多くとも2つの交点座標が求まる。
[ステップS207]反発力計算部140は、求められた交点のうちの少なくとも1つが円盤要素j1に含まれるかどうかを判断する。例えば、円盤要素j1の中心から交点までの距離が、円盤要素j1の半径以下であれば、その交点は円盤要素j1に含まれる。少なくとも1つの交点が円盤要素j1に含まれる場合、円盤要素j1と円盤要素j2とは交わるものと判断され、処理がステップS210に進められる。いずれの交点も円盤要素j1に含まれない場合、処理がステップS208に進められる。
[ステップS208]反発力計算部140は、円盤要素j の外縁と平面Pとの交点を求める。
[ステップS209]反発力計算部140は、求められた交点のうちの少なくとも1つが円盤要素j2に含まれるかどうかを判断する。少なくとも1つの交点が円盤要素j2に含まれる場合、円盤要素j1と円盤要素j2とは交わるものと判断され、処理がステップS210に進められる。いずれの交点も円盤要素j2に含まれない場合、円盤要素j1と円盤要素j2とは交わらないと判断され、処理がステップS211に進められる。
[ステップS210]反発力計算部140は、交差すると判定されたときの円盤要素j2を、交差円盤リスト113に登録する。例えば反発力計算部140は、円盤要素j2の円盤要素番号と、円盤要素j1と円盤要素j2とが凸に交わるのか凹に交わるのかを示す角度フラグデータとの組を、交差円盤リスト113に登録する。なお、2つの円盤要素j1,j2の交わる角度の凹凸の判定は、2つの円盤要素j1,j2間の相対位置ベクトルrj1j2と、法線ベクトルnj1,nj2それぞれとの内積の符号を用いて判断できる。
[ステップS211]反発力計算部140は、円盤要素データ群112内に、未選択の円盤要素があるか否かを判断する。未選択の円盤要素があれば、処理がステップS202に進められる。未選択の円盤要素がなければ、交差円盤リスト作成処理が終了する。
このようにして、最近接円盤と交差している円盤要素の番号と、その円盤要素と最近接円盤との交わる角を示すフラグ変数が登録された交差円盤リスト113が作成される。作成された交差円盤リスト113を用いて、注目連続体要素に対する反発力が計算される。
図14は、シミュレーション手順の一例を示す第2のフローチャートである。図14に示す処理では、注目連続体粒子に対して反発力を与える円盤要素(反発力対象要素)が決定される。
[ステップS111]反発力計算部140は、注目連続体粒子に対する最近接円盤を、反発力仮対象要素とする。以下の説明では、i番目の連続体粒子が注目連続体粒子であるものとし、注目連続体粒子iと表す。
例えば、i番目の連続体粒子の最近接円盤を、番号j0で表し、この最近接円盤j0に対して作成した交差円盤リストに属する円盤要素をj1〜jnとする。反発力計算部140は、まず、i番目の連続体粒子の最近接円盤j0を反発力仮対象要素とし、その番号j0と連続体粒子との鉛直距離を、メモリに記憶する。
[ステップS112]反発力計算部140は、最近接円盤j0に交差する未選択の円盤要素j1〜jnを、交差円盤リスト113から1つ選択する。以下、選択した円盤要素を、注目円盤要素jkとする。
[ステップS113]反発力計算部140は、注目円盤要素jkが、最近接円盤j0と凸に交わり、かつ、注目連続体粒子iが注目円盤要素jkの表側に存在するという条件が満たされるかどうかを調べる。注目円盤要素jkが最近接円盤j0と凸に交わるかどうかは、交差円盤リスト113の角度フラグデータを用いて判断できる。また注目連続体粒子iが注目円盤要素jkの表側に存在するかどうかは、注目連続体粒子iから注目円盤要素jkへの相対位置ベクトルrijkと注目円盤要素jkの法線ベクトルnjkの内積の符号に基づいて判断できる。内積の符号が負であれば、注目連続体粒子iが注目円盤要素jkの表側にある。条件が満たされた場合、注目連続体粒子iは注目円盤要素 k から反発力を受けないと判断され、処理がステップS121(図15参照)に進められる。条件が満たされない場合、処理がステップS114に進められる。
[ステップS114]反発力計算部140は、注目円盤要素jkが最近接円盤j0と凹に交わり、かつ注目連続体粒子iが注目円盤要素jkの法線の裏側に存在するという条件が満たされるかどうかを調べる。注目円盤要素jkが最近接円盤j0と凹に交わるかどうかは、交差円盤リスト113の角度フラグデータを用いて判断できる。注目連続体粒子iが注目円盤要素jkの法線の裏側に存在するかどうかは、注目連続体粒子iから注目円盤要素jkへの相対位置ベクトルrijkと円盤要素jkの法線ベクトルnjkの内積の符号に基づいて判断できる。内積の符号が正であれば、注目連続体粒子iが注目円盤要素jkの裏側にある。条件が満たされた場合、処理がステップS115に進められる。条件が満たされない場合、処理がステップS117に進められる。
[ステップS115]反発力計算部140は、注目連続体粒子iと注目円盤要素jkとの鉛直距離が、反発力仮対象要素と注目連続体粒子iとの鉛直距離よりも大きいかどうかを調べる。注目連続体粒子iと注目円盤要素jkと鉛直距離は、注目連続体粒子iから注目円盤要素jkへの相対位置ベクトルrijkと、注目円盤要素jkの法線ベクトルnjkとの内積の絶対値|rijk・njk|である。内積の絶対値と反発力仮対象要素との鉛直距離を比較することで、どちらの鉛直距離が大きいのかを判断できる。注目連続体粒子iとの鉛直距離が、注目円盤要素jkの方が大きければ、処理がステップS116に進められる。そうでなければ、処理がステップS117に進められる。
[ステップS116]反発力計算部140は、現在の注目円盤要素jkを、反発力仮対象要素とする。そして反発力計算部140は、注目円盤要素jkと注目連続体粒子iとの鉛直距離を、メモリに記憶しておく。
[ステップS117]反発力計算部140は、交差円盤リスト113内に、未選択の円盤要素があるか否かを判断する。未選択の円盤要素があれば、処理がステップS112に進められる。すべての円盤要素が選択済みであれば、処理がステップS118に進められる。
[ステップS118]反発力計算部140は、交差円盤リスト113内の全円盤要素に対してS113〜S116の処理を適用し終えた時点で反発力仮対象要素となっている円盤要素を、反発力対象要素とする。そして反発力計算部140は、反発力対象要素である円盤要素からの反発力を算出する。
i番目の連続体粒子とj番目の円盤要素の間に働く力は、円盤要素の法線に沿って測った鉛直距離|rnij|に基づいて算出される。反発力の働く方向は、円盤要素の法線方向である。例えば、反発力fijは、以下の式で表される。
ij=nj0,i{q/(1−q)}
ここで、q=|rnij|/rcutoffである。rcutoffは円盤表面からその距離以上は裏側に入り込んでいかないという距離スケールを表す長さであり、予め設定される定数である。rcutoffとしては、例えば連続体粒子の持つ空間解像度程度の値が用いられる。空間解像度は、流体または弾性体の運動を、空間的にどの程度細かく表せるかを示す値である。空間解像度は、例えば流体または弾性体を構成する連続体粒子間の平均距離である。
0,iは、基準となる反発力の大きさであり、予め設定される定数である。f0,iとしては、例えばmis,i 2/rcutoffとすればよい。ただし、miは連続体粒子iの質量であり、cs,iは連続体粒子iの音速である。こうすることで、極めて大きな運動エネルギーを持った連続体粒子であっても、固定境界の裏側の反発力作用範囲をつきぬけるという事態が起こらないようにできる。
[ステップS119]反発力計算部140は、求めた反発力fijから定まる加速度を、ステップS102において既に求めてあった注目連続体粒子の加速度に足し合わせる。その後、処理がステップS121(図15参照)に進められる。
図15は、シミュレーション手順の一例を示す第3のフローチャートである。
[ステップS121]反発力計算部140は、未選択の連続体粒子があるか否かを判断する。未選択の連続体粒子があれば、処理がステップS103(図10参照)に進められる。すべての連続体粒子が選択され、反発力の計算が完了していれば、処理がステップS122に進められる。
[ステップS122]運動計算部130は、反発力に基づいて求められた加速度を含む時間微分項を用いて、すべての連続体粒子の物理量(速度、加速度など)を時間積分し、1タイムステップ分の時間進行後の連続体粒子の位置や物理量を算出する。その後、シミュレーション制御部120が、シミュレーション上の時刻を時間刻みの分だけ進める。これにより、1タイムステップ分の計算が終了する。
[ステップS123]シミュレーション制御部120は、1タイムステップ分の計算結果データを外部ファイルとして出力する。出力されたファイルは、例えばHDD103に格納される。該出力ファイルは、別に用意されたプログラムで必要な数値や図を画面に表示したり、紙に印刷したりするときに利用される。
[ステップS124]シミュレーション制御部120は、シミュレーション期間内の全タイムステップ分の計算が完了したか否かを判断する。未計算のタイムステップがあれば、処理がステップS102に進められる。
このようにして、シミュレーション期間内のタイムステップごとの各連続体粒子の位置や物理量が算出される。その結果、解析対象である流体や弾性体の動きが、シミュレートされる。
以上説明したように、第2の実施の形態によれば、連続体粒子が円盤要素の裏側に回り込んだ時に反発力を与えることで、円盤要素の形作る境界形状に細い隙間があっても、連続体粒子の流れ込みを扱うことが可能となる。
また、円盤要素を用いて固定境界の形状を表現しているため、要素間の接続情報を取り扱わずにすむ。これにより、形状を生成するときに煩雑な処理が削減され、表面を隙間なく覆う固定境界の設定が容易となる。
なお円盤要素を用いて一般の形状を扱うと、円盤の端が表現したい形状からはみ出ることがあり得るが、円盤要素同士の角度を用いて、反発力の与え方に修正を施すことで、円盤要素の端において、不自然な反発力が発生することが抑止されている。
第2の実施の形態に示した粒子法を用いたシミュレーションは、広い分野で利用可能である。例えば、河川や海の水の流体解析に対して行うことで防災の計画立案に役立てたり、鋳造過程を解析したりすることで製品設計に用いることができる。弾性体に対して適用することで、製品設計の際に封止ゲルの形状などを適切に決定することができる。特に、非常に狭い隙間に入り込む流体や弾性体の運動を解析するのに、第2の実施の形態に係るシステムは有用である。例えば、弾性体を押しつぶすような動きをする機械により押しつぶされる弾性体の運動を解析する場合、押しつぶされるときの狭い隙間における弾性体の動きを正確に解析することが重要となる。押しつぶす動作により生じる狭い空間に連続体粒子が入り込めないのでは、正確な解析結果は望めないが、第2の実施の形態では狭い隙間に連続体粒子が入り込めるため、正確な解析が可能である。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 第1の領域
2 第2の領域
3 境界
3a〜3e 境界要素
4〜7 粒子
4a,7a 力
10 シミュレーション装置
11 記憶部
11a 粒子データ
11b 境界要素データ
12 演算部

Claims (5)

  1. コンピュータに、
    連続体を表す複数の粒子の位置と、第1の領域と第2の領域との境界を表し、前記第1の領域を向く第1面と前記第2の領域を向く第2面とを有する複数の要素の位置とに基づいて、前記複数の粒子それぞれを注目粒子としたとき、第2面側に前記注目粒子がある要素が少なくとも1つ存在し、かつ、前記注目粒子の位置が、該要素のうちの前記注目粒子に最も近い最近接要素に対して前記第1の領域側に凸となるように交差する交差要素の第1面側ではない場合、前記注目粒子が前記第2の領域内にあると判断し、第2面側に前記注目粒子がある要素が存在しないか、該要素が存在しても、前記注目粒子の位置が前記交差要素の第1面側にある場合、前記注目粒子は前記第1の領域内にあると判断し
    前記第2の領域内にある第2粒子に関して、前記複数の要素で表される前記境界と前記第2粒子との距離に基づいて、前記第1の領域側に向かう反発力を算出し、
    前記第1の領域内にある第1粒子には、前記境界と前記第1粒子との距離に基づく、前記境界から離れる方向への力を作用させず、前記第2の領域内にある前記第2粒子に前記反発力を作用させて、前記複数の粒子の運動を解析する、
    処理を実行させるシミュレーションプログラム。
  2. 記算出では、前記第2粒子が第2面側にある要素のうちの、前記第2粒子に最も近い要素の第1面側の法線方向の前記反発力を算出することを特徴とする請求項1記載のシミュレーションプログラム。
  3. コンピュータに、
    連続体を表す複数の粒子の位置と、第1の領域と第2の領域との境界を表し、前記第1の領域を向く第1面と前記第2の領域を向く第2面とを有する複数の要素の位置とに基づいて、前記複数の粒子それぞれが前記第1の領域内にあるのか前記第2の領域内にあるのかを判断し、
    前記第2の領域内にある第2粒子に関して、前記第2粒子が、前記第1の領域側に凹となるように交差する第1および第2の要素それぞれの第2面側にある特定第2粒子に該当する場合、前記第1および第2の要素のうち、前記第2粒子との距離が長い方の要素における前記第2粒子との距離に基づいて、該要素の第1面側の法線方向の反発力を計算し、前記第2粒子が前記特定第2粒子に該当しない場合、前記複数の要素で表される前記境界と前記第2粒子との距離に基づいて、前記第1の領域側に向かう反発力を算出し、
    前記第1の領域内にある第1粒子には、前記境界と前記第1粒子との距離に基づく、前記境界から離れる方向への力を作用させず、前記第2の領域内にある前記第2粒子に前記反発力を作用させて、前記複数の粒子の運動を解析する、
    処理を実行させるシミュレーションプログラム。
  4. コンピュータが、
    連続体を表す複数の粒子の位置と、第1の領域と第2の領域との境界を表し、前記第1の領域を向く第1面と前記第2の領域を向く第2面とを有する複数の要素の位置とに基づいて、前記複数の粒子それぞれを注目粒子としたとき、第2面側に前記注目粒子がある要素が少なくとも1つ存在し、かつ、前記注目粒子の位置が、該要素のうちの前記注目粒子に最も近い最近接要素に対して前記第1の領域側に凸となるように交差する交差要素の第1面側ではない場合、前記注目粒子が前記第2の領域内にあると判断し、第2面側に前記注目粒子がある要素が存在しないか、該要素が存在しても、前記注目粒子の位置が前記交差要素の第1面側にある場合、前記注目粒子は前記第1の領域内にあると判断し
    前記第2の領域内にある第2粒子に関して、前記複数の要素で表される前記境界と前記第2粒子との距離に基づいて、前記第1の領域側に向かう反発力を算出し、
    前記第1の領域内にある第1粒子には、前記境界と前記第1粒子との距離に基づく、前記境界から離れる方向への力を作用させず、前記第2の領域内にある前記第2粒子に前記反発力を作用させて、前記複数の粒子の運動を解析する、
    シミュレーション方法。
  5. 連続体を表す複数の粒子の位置と、第1の領域と第2の領域との境界を表し、前記第1の領域を向く第1面と前記第2の領域を向く第2面とを有する複数の要素の位置とを記憶する記憶部と、
    前記複数の粒子の位置と前記複数の要素の位置とに基づいて、前記複数の粒子それぞれを注目粒子としたとき、第2面側に前記注目粒子がある要素が少なくとも1つ存在し、かつ、前記注目粒子の位置が、該要素のうちの前記注目粒子に最も近い最近接要素に対して前記第1の領域側に凸となるように交差する交差要素の第1面側ではない場合、前記注目粒子が前記第2の領域内にあると判断し、第2面側に前記注目粒子がある要素が存在しないか、該要素が存在しても、前記注目粒子の位置が前記交差要素の第1面側にある場合、前記注目粒子は前記第1の領域内にあると判断し、前記第2の領域内にある第2粒子に関して、前記複数の要素で表される前記境界と前記第2粒子との距離に基づいて、前記第1の領域側に向かう反発力を算出し、前記第1の領域内にある第1粒子には、前記境界と前記第1粒子との距離に基づく、前記境界から離れる方向への力を作用させず、前記第2の領域内にある前記第2粒子に前記反発力を作用させて、前記複数の粒子の運動を解析する演算部と、
    を有するシミュレーション装置。
JP2015000797A 2015-01-06 2015-01-06 シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置 Active JP6458501B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015000797A JP6458501B2 (ja) 2015-01-06 2015-01-06 シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置
US14/950,373 US10068037B2 (en) 2015-01-06 2015-11-24 Simulation method and simulation apparatus for continuum motion analysis using a particle method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015000797A JP6458501B2 (ja) 2015-01-06 2015-01-06 シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置

Publications (2)

Publication Number Publication Date
JP2016125934A JP2016125934A (ja) 2016-07-11
JP6458501B2 true JP6458501B2 (ja) 2019-01-30

Family

ID=56286668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015000797A Active JP6458501B2 (ja) 2015-01-06 2015-01-06 シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置

Country Status (2)

Country Link
US (1) US10068037B2 (ja)
JP (1) JP6458501B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6547547B2 (ja) * 2015-09-25 2019-07-24 富士通株式会社 粒子シミュレーションプログラム、計算機資源配分方法、および粒子シミュレーション装置
JP6458776B2 (ja) 2016-06-24 2019-01-30 株式会社デンソー 車両用表示装置
JP6697407B2 (ja) * 2017-03-07 2020-05-20 公益財団法人鉄道総合技術研究所 流体シミュレーション方法及び流体シミュレーションのプログラム
JP6897477B2 (ja) * 2017-10-10 2021-06-30 富士通株式会社 流体シミュレーションプログラム、流体シミュレーション方法および流体シミュレーション装置
CN111104728B (zh) * 2019-10-15 2023-04-25 江汉大学 结构表面磨损的仿真预测方法和装置
JP7285223B2 (ja) * 2020-01-21 2023-06-01 住友重機械工業株式会社 シミュレーション装置、シミュレーション方法、及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140226158A1 (en) * 2004-03-06 2014-08-14 Michael Trainer Methods and apparatus for determining particle characteristics
JP4798661B2 (ja) 2006-10-27 2011-10-19 みずほ情報総研株式会社 流体解析装置、流体解析方法及び流体解析プログラム
KR100984048B1 (ko) * 2008-10-14 2010-09-30 한국전자통신연구원 파티클 유체 시뮬레이션에서의 강성체 상호작용 처리 방법
KR101159163B1 (ko) * 2008-12-10 2012-06-22 한국전자통신연구원 비압축 상태의 유체 시뮬레이션 방법, 기록매체, 장치
JP2010243293A (ja) * 2009-04-03 2010-10-28 Toshiba Corp 流動解析方法、流動解析装置、及び流動解析プログラム
US8762117B2 (en) * 2009-06-03 2014-06-24 Algoryx Simulation Ab Method, an apparatus and computer program product for simulating dynamic fluids
WO2012025995A1 (ja) * 2010-08-24 2012-03-01 富士通株式会社 連続体運動解析プログラム、連続体運動解析方法及び連続体運動解析装置
JP5670832B2 (ja) * 2011-05-24 2015-02-18 富士通株式会社 シミュレーション方法、シミュレーション装置及びシミュレーションプログラム
US8903693B2 (en) * 2011-06-24 2014-12-02 Siemens Aktiengesellschaft Boundary handling for particle-based simulation
JP5844165B2 (ja) * 2012-01-26 2016-01-13 住友重機械工業株式会社 解析装置
JP6048062B2 (ja) * 2012-10-18 2016-12-21 富士通株式会社 シミュレーションプログラム、シミュレーション方法及びシミュレーション装置
JP2014104696A (ja) * 2012-11-29 2014-06-09 Japan Steel Works Ltd:The 演算プログラム及び演算方法
US20150161810A1 (en) * 2013-12-10 2015-06-11 Nvidia Corporation Position based fluid dynamics simulation

Also Published As

Publication number Publication date
JP2016125934A (ja) 2016-07-11
US20160196373A1 (en) 2016-07-07
US10068037B2 (en) 2018-09-04

Similar Documents

Publication Publication Date Title
JP6458501B2 (ja) シミュレーションプログラム、シミュレーション方法、およびシミュレーション装置
Shojaei et al. An adaptive multi-grid peridynamic method for dynamic fracture analysis
Idelsohn et al. A Lagrangian meshless finite element method applied to fluid–structure interaction problems
Ingram et al. Developments in Cartesian cut cell methods
Ferrari et al. A new 3D parallel SPH scheme for free surface flows
Janßen et al. On enhanced non-linear free surface flow simulations with a hybrid LBM–VOF model
Edwards et al. Detailed water with coarse grids: Combining surface meshes and adaptive discontinuous galerkin
JP2009069930A (ja) 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法
US8040347B2 (en) Method for constructing surface of fluid-body simulation based on particle method, program for the same, and storage medium for storing program
US10503561B2 (en) Particle simulation apparatus and computer resource allocating method
Samulyak et al. Lagrangian particle method for compressible fluid dynamics
JP5704246B2 (ja) 物体運動解析装置、物体運動解析方法、及び物体運動解析プログラム
US20200110911A1 (en) Particle simulation device, particle simulation method, and particle simulation program
Quan et al. Meshing molecular surfaces based on analytical implicit representation
Samuel A deformable particle-in-cell method for advective transport in geodynamic modelling
Bähr et al. Stable honeycomb structures and temperature based trajectory optimization for wire-arc additive manufacturing
KR100588000B1 (ko) 유체 애니메이션에서의 자유경계 추적 장치 및 그 방법
Reuther et al. A comparison of methods for the calculation of interface curvature in two-dimensional cellular automata solidification models
Staroszczyk Simulation of solitary wave mechanics by a corrected smoothed particle hydrodymamics method
JP5454693B2 (ja) 連続体運動解析プログラム、連続体運動解析方法及び連続体運動解析装置
KR102520732B1 (ko) 유동해석 데이터 처리장치 및 그 장치에서 각 기능을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램
Sandim et al. Boundary particle resampling for surface reconstruction in liquid animation
JP2022041425A (ja) シミュレーションプログラム、シミュレーション方法およびシミュレーションシステム
Lu et al. Parallel contact-aware simulations of deformable particles in 3D Stokes flow
US11835054B2 (en) Method for automatic detection of axial cooling fan rotation direction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181210

R150 Certificate of patent or registration of utility model

Ref document number: 6458501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150