(57)【要約】【課題】シミュレーションを高速化できるシミュレーション装置、シミュレーション方法およびシミュレーションプログラムを提供する。【解決手段】シミュレーション装置は、時間変化算出部と、反発力算出部と、位置算出部と、粒子生成削除部とを有する。時間変化算出部は、粒子法により流体の粒子の時間変化を算出する。反発力算出部は、解析対象である金型の流入口に設けた、該流入口の圧力変化を表す境界粒子の壁面ポテンシャルによって粒子に働く反発力を算出する。位置算出部は、算出された反発力の反作用である金型の内圧を算出し、算出された内圧と、金型に粒子が射出される圧力である外圧とに基づいて、境界粒子の位置を算出する。粒子生成削除部は、境界粒子の位置に応じて、粒子を生成または削除する。【選択図】図１
2015170327.tif 000002
【特許請求の範囲】
【請求項１】
粒子法により流体の粒子の時間変化を算出する時間変化算出部と、
解析対象である金型の流入口に設けた、該流入口の圧力変化を表す境界粒子の壁面ポテンシャルによって前記粒子に働く反発力を算出する反発力算出部と、
算出された前記反発力の反作用である前記金型の内圧を算出し、算出された前記内圧と、前記金型に前記粒子が射出される圧力である外圧とに基づいて、前記境界粒子の位置を算出する位置算出部と、
前記境界粒子の位置に応じて、前記粒子を生成または削除する粒子生成削除部と
を有することを特徴とするシミュレーション装置。
【請求項２】
前記時間変化算出部は、前記粒子生成削除部によって生成または削除された前記粒子に基づいて、前記粒子の時間変化を算出することを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記粒子生成削除部は、前記境界粒子が初期位置から前記金型の内側に前記壁面ポテンシャルの有効範囲分移動した場合には、前記境界粒子を前記初期位置に戻すとともに、前記境界粒子が押し出した流体の体積に相当する前記粒子を生成し、前記境界粒子が前記初期位置から前記金型の外側に前記壁面ポテンシャルの有効範囲分移動した場合には、前記境界粒子を前記初期位置に戻すとともに、前記金型の内側および外側の前記壁面ポテンシャルの有効範囲内の前記粒子を削除することを特徴とする請求項１または２に記載のシミュレーション装置。
【請求項４】
前記粒子生成削除部は、前記境界粒子の大きさ分、前記初期位置から前記金型の内側および外側に移動した距離の範囲を、前記壁面ポテンシャルの有効範囲とすることを特徴とする請求項３に記載のシミュレーション装置。
【請求項５】
前記位置算出部は、前記内圧と前記外圧とに基づいて、前記境界粒子の移動速度を前記粒子の流入速度の最大値を超えないように算出し、算出された前記移動速度に基づいて、前記境界粒子の位置を算出することを特徴とする請求項１〜４のいずれか１項に記載のシミュレーション装置。
【請求項６】
コンピュータが、
粒子法により流体の粒子の時間変化を算出し、
解析対象である金型の流入口に設けた、該流入口の圧力変化を表す境界粒子の壁面ポテンシャルによって前記粒子に働く反発力を算出し、
算出された前記反発力の反作用である前記金型の内圧を算出し、算出された前記内圧と、前記金型に前記粒子が射出される圧力である外圧とに基づいて、前記境界粒子の位置を算出し、
前記境界粒子の位置に応じて、前記粒子を生成または削除する
処理を実行することを特徴とするシミュレーション方法。
【請求項７】
コンピュータに、
粒子法により流体の粒子の時間変化を算出し、
解析対象である金型の流入口に設けた、該流入口の圧力変化を表す境界粒子の壁面ポテンシャルによって前記粒子に働く反発力を算出し、
算出された前記反発力の反作用である前記金型の内圧を算出し、算出された前記内圧と、前記金型に前記粒子が射出される圧力である外圧とに基づいて、前記境界粒子の位置を算出し、
前記境界粒子の位置に応じて、前記粒子を生成または削除する
処理を実行させることを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムに関する。
【背景技術】
【０００２】
流体や弾性体等の連続体を解く数値計算手法として、格子を用いて微分方程式の近似解を求める有限差分法、有限要素法、有限体積法等が知られている。近年では、これらの数値計算は、ＣＡＥ（Computer  Aided  Engineering）等の応用分野に適用され、流体と構造物とが相互作用する問題を解析するために用いられている。格子を用いる上記の手法では、自由表面等の界面が存在する問題や、流体−構造連成問題等の移動境界が発生する場合には、取り扱いが複雑となる。また、格子を用いる上記の手法では、これらの場合について、プログラムの作成が困難となる場合がある。
【０００３】
これに対して、粒子法は、移動境界の取り扱いに特別な処置を必要としないため、近年では広く用いられている。粒子法で移動境界等の境界条件を扱う場合には、壁面であれば固定した粒子を置いて通過できない壁を表現し、流体が自由に流出できる境界では、境界を超える粒子を消すことで表現する。また、粒子法は、一定速度で流体を流入させる場合には、境界から一定時間ごとに粒子を生成して流入させる境界条件を導入できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１１１６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の境界条件では、境界の外側から内側に境界を通して外圧がかかる場合のように、圧力の設定が必要な圧力境界条件を表現することはできない。このため、圧力境界条件を実現するためには、境界の外側に境界の内側の領域よりも大きな領域を設けて、境界の外側の領域についても数値計算を行い、境界の外側から内側への流入量を算出することが必要となり、計算時間が増加する。
【０００６】
一つの側面では、本発明は、シミュレーションを高速化できるシミュレーション装置、シミュレーション方法およびシミュレーションプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
一つの態様では、シミュレーション装置は、時間変化算出部と、反発力算出部と、位置算出部と、粒子生成削除部とを有する。シミュレーション装置の時間変化算出部は、粒子法により流体の粒子の時間変化を算出する。シミュレーション装置の反発力算出部は、解析対象である金型の流入口に設けた、該流入口の圧力変化を表す境界粒子の壁面ポテンシャルによって前記粒子に働く反発力を算出する。シミュレーション装置の位置算出部は、算出された前記反発力の反作用である前記金型の内圧を算出し、算出された前記内圧と、前記金型に前記粒子が射出される圧力である外圧とに基づいて、前記境界粒子の位置を算出する。シミュレーション装置の粒子生成削除部は、前記境界粒子の位置に応じて、前記粒子を生成または削除する。
【発明の効果】
【０００８】
シミュレーションを高速化できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例のシミュレーション装置の構成の一例を示すブロック図である。
【図２】図２は、圧力による流体の射出の一例を示す説明図である。
【図３】図３は、境界面の圧力の一例を示す説明図である。
【図４】図４は、外圧が内圧に打ち勝つ場合の一例を示す説明図である。
【図５】図５は、内圧が外圧に打ち勝つ場合の一例を示す説明図である。
【図６】図６は、境界粒子と外圧との関係の一例を示す説明図である。
【図７】図７は、境界粒子に働く力の一例を示す説明図である。
【図８】図８は、境界粒子に働く力の計算条件の一例を示す説明図である。
【図９】図９は、境界粒子の壁面ポテンシャルによって粒子に働く反発力の一例を示す説明図である。
【図１０】図１０は、境界面における粒子の生成の一例を示す説明図である。
【図１１】図１１は、境界面における粒子の削除の一例を示す説明図である。
【図１２】図１２は、実施例のシミュレーション装置の処理の一例を示すフローチャートである。
【図１３】図１３は、シミュレーションプログラムを実行するコンピュータの一例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本願の開示するシミュレーション装置、シミュレーション方法およびシミュレーションプログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例】
【００１１】
図１は、実施例のシミュレーション装置の構成の一例を示すブロック図である。図１に示すシミュレーション装置１０は、入力部１１と、表示部１２と、記憶部１３と、制御部１４とを有する。なお、シミュレーション装置１０は、図１に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００１２】
入力部１１は、粒子法による流体のシミュレーションに用いる各種の入力データが入力される。入力部１１には、入力データとして、例えば、シミュレーションの計算領域の形状データ、流体のデータ、シミュレーションの計算領域に対する粒子の最大流入速度ｖｍａｘ、流体を計算領域内に流入させるための外圧Ｐｅ、流入口の面積Ｓ等が入力される。これら入力データは、シミュレーション装置１０のユーザによって入力されてもよいし、外部記憶媒体や通信回線を介して入力されてもよい。入力部１１は、外部から入力されて取得した入力データとして、形状データと、流体のデータと、最大流入速度ｖｍａｘと、外圧Ｐｅと、流入口の面積Ｓとを制御部１４に出力する。
【００１３】
表示部１２は、シミュレーション結果を表示する。表示部１２は、制御部１４の後述する時間変化算出部１５で算出されたシミュレーション結果が入力されて、例えば、シミュレーション画像等として表示する。
【００１４】
記憶部１３は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１３は、シミュレーション結果、および、制御部１４での処理に用いる情報を記憶する。
【００１５】
制御部１４は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１４は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしてもよい。制御部１４は、時間変化算出部１５と、反発力算出部１６と、位置算出部１７と、粒子生成削除部１８とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１４の内部構成は、図１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００１６】
時間変化算出部１５は、入力部１１から入力された形状データ、流体のデータ等を用いて、粒子法のアルゴリズムに基づいて、流体のシミュレーション計算を行う。時間変化算出部１５は、形状データに基づいて、シミュレーションの計算領域を決定する。また、時間変化算出部１５は、粒子生成削除部１８から入力された粒子データを反映させて、流体のシミュレーション計算を行う。時間変化算出部１５は、粒子法のアルゴリズムとして、例えば、ＳＰＨ（Smoothed  Particle  Hydrodynamics）法に基づいて、流体のシミュレーション計算を行う。ＳＰＨ法では、わずかに圧縮する流体の方程式を、下記の式（１）〜式（３）のように離散化する。なお、式（１）〜式（３）の右辺は、時間変化項である。
【００１７】
【数１】
2015170327.tif 000003
【００１８】
【数２】
2015170327.tif 000004
【００１９】
【数３】
2015170327.tif 000005
【００２０】
上記の式（１）は質量保存則を表し、式（２）は運動量保存則（運動方程式）を表し、式（３）は状態方程式を表す。ここで、ｘｉは粒子ｉの位置ベクトル、ｖｉは粒子ｉの速度ベクトル、ρｉは粒子ｉの密度、ｍｉは粒子ｉの質量、ｐｉは粒子ｉの圧力を、それぞれ示す。ｘｉｊは、粒子ｉと粒子ｊとの相対位置ベクトルであり、ｘｉｊ＝ｘｉ−ｘｊである。ｖｉｊは、粒子ｉと粒子ｊとの相対速度ベクトルであり、ｖｉｊ＝ｖｉ−ｖｊである。μｉは粒子ｉの粘性係数を示し、Ｐ０は、Ｐ０＝ρ０ｃ２を示す。なお、ｃは音速を示し、ρ０は粒子ｉの基準密度であり、ρｉ＝ρ０のとき圧力が０となる値である。Ｗは、カーネル関数または重み関数であり、例えば、下記の式（４）に示すスプライン関数を用いることができる。
【００２１】
【数４】
2015170327.tif 000006
【００２２】
ここで、ｈは、粒子間の影響半径を示し、例えば、初期状態の平均粒子間隔の２倍から３倍程度とすることができる。また、βは、カーネル関数の全空間積分量が１になるように調整された値であり、例えば、２次元の場合には０．７πｈ２、３次元の場合にはπｈ３とすることができる。
【００２３】
上記の式（１）の質量保存則は、各粒子が近づいた場合には密度が増加し、各粒子が遠ざかった場合には密度が低下するように時間発展する方程式である。また、式（２）の運動方程式と式（３）の状態方程式とは、密度が増加した場合には圧力が上昇することで、粒子同士が反発する力を受けるようになることを表す。
【００２４】
時間変化算出部１５は、上記の式（１）〜式（３）を微小時間（ｄｔ）ごとに算出し、シミュレーション結果として記憶部１３に記憶する。すなわち、時間変化算出部１５は、シミュレーション結果として、所定のシミュレーション時間について、計算領域における微小時間ごとの粒子の状態を記憶部１３に蓄積して記憶する。
【００２５】
ここで、圧力がかかる流体のシミュレーション計算として、樹脂の射出成形を一例として説明する。図２は、圧力による流体の射出の一例を示す説明図である。図２の例では、流体のシミュレーション計算を行う計算領域、つまり、解析したい領域として、例えば、模式的に表した金型２１を用いる。金型２１には、流体である樹脂２２の流入口が設けられる。また、図２の例では、金型２１に樹脂２２を射出する射出成形機の圧力を圧力２３として模式的に表す。金型２１の流入口と射出成形機のノズルとの境界面は、計算領域の内外を区別する境界面２４として規定する。
【００２６】
なお、圧力がかかる流体のシミュレーション計算は、例えば、樹脂の射出成形では、シミュレーション結果として、金型２１への樹脂２２の充填率を算出する。樹脂の射出成形の場合には、ある程度樹脂を射出すると、さらに圧力、つまり外圧をかけて樹脂を充填する。このとき、金型２１の流入口では、金型２１内の樹脂から圧力、つまり内圧を受ける。また、樹脂の射出成形の例では、シミュレーション結果として、例えば、金型２１の円環状のキャビティ内で樹脂２２が両側から充填されて合わさる面を求める。この面は、いわゆるウエルドラインと呼ばれる成形不良の原因となるので、発生を防止するためにシミュレーションを行うことが有用である。
【００２７】
図２の例では、金型２１に対して、射出成形機から圧力２３によって樹脂２２が射出される。樹脂２２は、境界面２４を通じて金型２１内のスプル、ランナー、ゲートを通り、成形品が成形される空間であるキャビティ内に射出されて充填される。このとき、時間変化算出部１５は、微小時間ごとに境界面２４を通じて流入する粒子を反映させて、計算領域である金型２１内の状態をシミュレーションし、シミュレーション結果を記憶部１３に記憶する。
【００２８】
ここで、図３、図４および図５を用いて境界面２４の圧力について説明する。図３は、境界面の圧力の一例を示す説明図である。図３に示すように、境界面２４は、外圧Ｐｅと、金型２１内の内圧Ｐとの境界面である。図４は、外圧が内圧に打ち勝つ場合の一例を示す説明図である。図４の例では、図３の状態から、例えば、外圧Ｐｅが増加して外圧Ｐｅが内圧Ｐに打ち勝ち、つまり、Ｐｅ＞Ｐとなった場合であり、境界面２４を跨いで外部の流体２７が金型２１内に流入する場合を示す。図５は、内圧が外圧に打ち勝つ場合の一例を示す説明図である。図５の例では、図３の状態から、例えば、内圧Ｐが増加して内圧Ｐが外圧Ｐｅに打ち勝ち、つまり、Ｐｅ＜Ｐとなった場合であり、境界面２４を跨いで内部の流体２８が金型２１外に流出する場合を示す。
【００２９】
次に、図６および図７を用いて、境界面２４について圧力を考慮した場合について説明する。図６は、境界粒子と外圧との関係の一例を示す説明図である。図６に示すように、例えば、金型２１の流入口が円形であるとして、境界面２４に円盤状の境界粒子２９を設ける。境界粒子２９は、外圧Ｐｅを受けると金型２１内に移動する。境界粒子２９は、境界面２４、すなわち壁面として振る舞って壁面ポテンシャルを有し、壁面ポテンシャルの有効範囲をｄｐとする。言い換えると、境界面２４に設けた境界粒子２９は、ポテンシャルの壁であるといえる。図７は、境界粒子に働く力の一例を示す説明図である。図７に示すように、例えば、境界粒子２９の壁面ポテンシャルの有効範囲ｄｐ内に流体の粒子３０が存在すると、各粒子３０には境界粒子２９の壁面ポテンシャルによってそれぞれ反発力３１が働く。このとき、境界粒子２９には、外圧Ｐｅと、反発力３１の総和の反作用である内圧Ｐが働く。従って、境界粒子２９は、内圧Ｐと外圧Ｐｅとに基づいて移動する。すなわち、境界粒子２９は、ピストン形粒子生成子といえる。
【００３０】
図１の説明に戻って、反発力算出部１６は、境界粒子の壁面ポテンシャルによって、粒子に働く反発力を算出する。すなわち、反発力算出部１６は、入力部１１から外圧Ｐｅが入力されると、境界粒子２９の壁面ポテンシャルの有効範囲内にある流体の各粒子３０に働く反発力３１を算出する。
【００３１】
ここで、境界粒子２９に働く力について説明する。図８は、境界粒子に働く力の計算条件の一例を示す説明図である。図８は、簡単のために、ｘ∈（０，１），ｙ∈（０，１），ｚ∈（０，１）の正方形の計算領域として、境界粒子２９に働く力を説明する。まず、境界条件として、ｚ＝１の面、つまり境界面２４に、外圧Ｐｅがかかるとする。また、他の境界では、周期境界条件が課されているものとする。このとき、粒子ｉに対する境界面２４の壁面ポテンシャルからの力ＦＺ（ｘｉ）、つまり粒子ｉに働く反発力３１は、下記の式（５）で与えられる。
【００３２】
【数５】
2015170327.tif 000007
【００３３】
ここで、ｈｓは壁面ポテンシャルの有効範囲、つまり、図７のｄｐを示す。ｚｉは粒子ｉの位置ベクトルのｚ成分を示し、ｍｉは粒子ｉの質量を示し、ｃは音速を示す。また、Ｚは壁面の位置を示し、初期値は１とする。
【００３４】
粒子ｉに働く反発力３１について図９を用いて説明する。図９は、境界粒子の壁面ポテンシャルによって粒子に働く反発力の一例を示す説明図である。図９に示すように、反発力３１は、粒子ｉ（図９中の一例としては粒子３０）がｚ＝１の面、つまり境界面２４に近づくと、面から遠ざかる方向に力を与えることで、粒子ｉが壁面である境界面２４を透過できないようにする効果がある。すなわち、反発力３１は、壁面ポテンシャルの有効範囲ｈｓ内の粒子ｉに対して、面から遠ざかる方向に力を与える。言い換えると、境界面２４は、流体粒子が近づくと壁面ポテンシャルによる反発力を発生させ、流体粒子が境界外に流出するのを防ぐ効果を有する。
【００３５】
反発力算出部１６は、記憶部１３からシミュレーション結果を読み出す。反発力算出部１６は、読み出したシミュレーション結果と、算出した反発力３１とに基づいて、記憶部１３に記憶されたシミュレーション結果である、計算領域内の流体の粒子の速度、密度および位置を更新する。反発力算出部１６は、計算領域内の流体の粒子の速度、密度および位置の更新として、上記の式（２）に上記の式（５）を加えた上で、上記の式（１）〜式（３）を算出して更新する。また、反発力算出部１６は、全粒子の反発力３１の総和を算出して、位置算出部１７に出力する。なお、全粒子の反発力３１の総和は、後述する式（６）の右辺の第２項であるΣＦＺ（ｘｉ）を算出することで求められる。
【００３６】
図１の説明に戻って、位置算出部１７は、反発力算出部１６から入力された全粒子の反発力３１に基づいて、反発力３１の反作用である内圧Ｐを算出する。また、位置算出部１７は、入力部１１から入力された粒子の最大流入速度ｖｍａｘと、外圧Ｐｅと、流入口の面積Ｓと、算出した内圧Ｐとに基づいて、境界粒子２９の位置および速度を算出する。位置算出部１７は、境界粒子２９の運動を下記の式（６）により算出する。
【００３７】
境界粒子２９の運動は、図８の例で説明すると、まず、初期条件として、流入面である境界面２４における粒子の最大流入速度をｖｍａｘとし、流体の粒子の直径を０．１とする。また、初期条件として、壁面ポテンシャルの有効範囲は、ｈｓ＝０．１、つまり粒子の直径（粒径）と同じとし、直径０．１の粒子を境界面２４から壁面ポテンシャルの有効範囲だけ離れた位置に格子状に速度ｖｍａｘで配置した状態とする。
【００３８】
【数６】
2015170327.tif 000008
【００３９】
ここで、Ｚは境界面２４のｚ座標の位置を示し、Ｍは壁面ポテンシャルの有効範囲にある流体の質量を示し、Ｍ＝ρ０Ｓｈｓである。上記の式（６）の右辺第１項は、外圧Ｐｅによる影響を示す。Ｓは境界面２４の面積を示し、図８の例では１である。上記の式（６）の右辺第２項は、流体の粒子に与えた反発力の反作用であり、内部の流体の内圧を示す。
【００４０】
上記の式（６）において、壁面である境界面２４の移動速度Ｖは、Ｖ＝ｄＺ／ｄｔで表され、流入する流体の速度を示す。移動速度Ｖは、式（６）を時間刻みｄｔとして、例えば、下記の式（７）〜式（９）に示すように離散化することで、流入速度（図８中、ｚ軸マイナス方向の速度）が最大値である最大流入速度ｖｍａｘを超えないようにする。
【００４１】
【数７】
2015170327.tif 000009
【００４２】
【数８】
2015170327.tif 000010
【００４３】
【数９】
2015170327.tif 000011
【００４４】
上記の式（７）〜式（９）の上付き添字は、時間ステップの数を示す。ここで、式（７）〜式（９）は、時刻ｎの値が与えられているものとして、時刻ｎ＋１の値を計算する式である。位置算出部１７は、算出した境界粒子２９の位置および移動速度Ｖを粒子生成削除部１８に出力する。
【００４５】
図１の説明に戻って、粒子生成削除部１８は、位置算出部１７から入力された境界粒子２９の位置に応じて、流体の粒子を生成または削除する。図１０は、境界面における粒子の生成の一例を示す説明図である。図１０は、境界面における流体の粒子の生成の一例を示すもので、外圧Ｐｅと内圧Ｐとが釣り合っている場合には、境界面２４に対応する壁面３２は、初期位置であるｚ軸の１の位置にある。また、図１０では、境界粒子２９の壁面ポテンシャルの有効範囲３３は、ｚ軸の０．９〜１．１の間とする。
【００４６】
ここで、例えば、外圧Ｐｅが大きくなった場合には、図１０の左図のように、壁面３２は外圧Ｐｅにより押されて、初期位置ｚ＝１からｚ軸マイナス方向に移動し、つまり外部の流体が計算領域内に流入する。粒子生成削除部１８は、壁面３２が壁面ポテンシャルの有効範囲３３を超えて、つまり壁面３２が流体の粒子の直径０．１以上計算領域内方向に移動すると、図１０の右図のように、壁面３２を初期位置（ｚ＝１）に戻す。さらに、粒子生成削除部１８は、ｚ＝０．９の面、すなわち初期位置から０．１の格子位置に、直径０．１、ｚ成分の流速を壁面３２の移動速度Ｖとした粒子３０ａを生成する。つまり、粒子生成削除部１８は、粒子３０ａとして、壁面ポテンシャルが効かない壁面が押し出した流体の体積に相当する粒子３０ａを生成する。生成された粒子３０ａは、外部の流体が計算領域内に流入することを表す。なお、移動速度Ｖは、位置算出部１７から入力される。
【００４７】
図１１は、境界面における粒子の削除の一例を示す説明図である。図１１は、境界面における流体の粒子の削除の一例を示すもので、図１０と同様に、外圧Ｐｅと内圧Ｐとが釣り合っている場合には、境界面２４に対応する壁面３２は、初期位置であるｚ軸の１の位置にある。また、図１１では、図１０と同様に、境界粒子２９の壁面ポテンシャルの有効範囲３３は、ｚ軸の０．９〜１．１の間とする。
【００４８】
ここで、例えば、内圧Ｐが大きくなった場合には、図１１の左図のように、壁面３２は内圧Ｐにより押されて、初期位置ｚ＝１からｚ軸プラス方向に移動し、つまり内部の流体が計算領域外に流出する。粒子生成削除部１８は、壁面３２が壁面ポテンシャルの有効範囲３３を超えて、つまり壁面３２が流体の粒子の直径０．１以上計算領域外方向に移動すると、図１１の右図のように、壁面３２を初期位置（ｚ＝１）に戻す。さらに、粒子生成削除部１８は、壁面ポテンシャルの有効範囲３３内、すなわち、ｚ軸の０．９〜１．１の間の位置にある粒子３０ｂを、計算領域外に流出したものとみなして削除する。粒子生成削除部１８は、上記に示す生成または削除された流体の粒子について、粒子データとして、時間変化算出部１５に出力する。
【００４９】
ここで、上述の境界面における粒子の生成または削除について、粒子生成削除部１８の処理として説明する。粒子生成削除部１８は、壁面３２、すなわち、境界粒子２９の移動量が流体の粒子の粒径未満か否かを判定する。粒子生成削除部１８は、境界粒子２９の移動量が流体の粒子の粒径未満でない場合には、境界粒子２９が計算領域内の方向に移動したか否かを判定する。
【００５０】
粒子生成削除部１８は、境界粒子２９が計算領域内の方向に移動した場合には、例えば、図１０に示すように、流体の粒子を生成し、生成された流体の粒子について、粒子データとして時間変化算出部１５に出力する。粒子生成削除部１８は、境界粒子２９が計算領域外の方向に移動した場合には、例えば、図１１に示すように、流体の粒子を削除し、削除された流体の粒子について、粒子データとして時間変化算出部１５に出力する。
【００５１】
粒子生成削除部１８は、解析時間である微小時間（ｄｔ）について、所定時間まで到達したか否か、つまり、シミュレーションについて、予め設定された所定時間分の計算を完了したか否かを判定する。粒子生成削除部１８は、所定時間分の計算を完了した場合には、シミュレーション結果の算出が完了したとして、シミュレーション装置１０の処理を終了する。なお、シミュレーション結果は、表示部１２に表示できる。
【００５２】
粒子生成削除部１８は、所定時間分の計算を完了していない場合には、解析時間である微小時間（ｄｔ）を進めて、時間変化算出部１５に次の時間ステップについての流体のシミュレーション計算を指示する。ここで、シミュレーションを行う所定時間は、例えば、１秒〜５秒程度、つまり数秒間が想定される。
【００５３】
また、粒子生成削除部１８は、境界粒子２９の移動量が流体の粒子の粒径未満である場合には、粒子の生成または削除を行わずに、所定時間分の計算を完了したか否かを判定する。粒子生成削除部１８は、所定時間分の計算を完了した場合には、シミュレーション結果の算出が完了したとして、シミュレーション装置１０の処理を終了する。粒子生成削除部１８は、所定時間分の計算を完了していない場合には、解析時間である微小時間（ｄｔ）を進めて、時間変化算出部１５に次の時間ステップについての流体のシミュレーション計算を指示する。
【００５４】
次に、実施例のシミュレーション装置１０の動作について説明する。
【００５５】
図１２は、実施例のシミュレーション装置の処理の一例を示すフローチャートである。入力部１１は、例えば、シミュレーション装置１０のユーザによって、シミュレーションに用いる流体の粒子の入力データが入力され、当該粒子の入力データを取得する（ステップＳ１）。入力データとしては、例えば、シミュレーションの計算領域の形状データ、流体のデータ、シミュレーションの計算領域に対する粒子の最大流入速度ｖｍａｘ、流体を計算領域内に流入させるための外圧Ｐｅ、流入口の面積Ｓ等が入力される。入力部１１は、外部から入力されて取得した入力データとして、形状データと、流体のデータと、最大流入速度ｖｍａｘと、外圧Ｐｅと、流入口の面積Ｓとを制御部１４に出力する。
【００５６】
制御部１４の時間変化算出部１５は、入力部１１から入力された形状データ、流体のデータ等を用いて、ある微小時間について、上記の式（１）〜式（３）を算出し、シミュレーション結果として記憶部１３に記憶する。すなわち、時間変化算出部１５は、粒子の加速度および密度の時間変化項を算出する（ステップＳ２）。
【００５７】
反発力算出部１６は、入力部１１から外圧Ｐｅが入力されると、境界粒子２９の壁面ポテンシャルの有効範囲３３内にある流体の各粒子３０に働く反発力３１を算出する（ステップＳ３）。続いて、反発力算出部１６は、記憶部１３からシミュレーション結果を読み出す。反発力算出部１６は、読み出したシミュレーション結果と、算出した反発力３１とに基づいて、記憶部１３に記憶されたシミュレーション結果である、計算領域内の流体の粒子３０の速度、密度および位置を更新する（ステップＳ４）。すなわち、反発力算出部１６は、計算領域内の流体の粒子３０の速度、密度および位置の更新として、上記の式（２）に上記の式（５）を加えた上で、上記の式（１）〜式（３）を算出して更新する。また、反発力算出部１６は、全粒子の反発力３１の総和を算出して、位置算出部１７に出力する。
【００５８】
位置算出部１７は、反発力算出部１６から入力された全粒子の反発力３１に基づいて、反発力３１の反作用である内圧Ｐを算出する（ステップＳ５）。また、位置算出部１７は、入力部１１から入力された粒子の最大流入速度ｖｍａｘと、外圧Ｐｅと、流入口の面積Ｓと、算出した内圧Ｐとに基づいて、上記の式（７）〜式（９）により境界粒子２９の位置および速度を算出する（ステップＳ６）。位置算出部１７は、算出した境界粒子２９の位置および移動速度Ｖを粒子生成削除部１８に出力する。
【００５９】
粒子生成削除部１８は、境界粒子２９の移動量が流体の粒子の粒径未満か否かを判定する（ステップＳ７）。粒子生成削除部１８は、境界粒子２９の移動量が流体の粒子の粒径未満でない場合には（ステップＳ７：否定）、境界粒子２９が計算領域内の方向に移動したか否かを判定する（ステップＳ８）。粒子生成削除部１８は、境界粒子２９の移動量が流体の粒子の粒径未満である場合には（ステップＳ７：肯定）、粒子の生成または削除を行わずに、後述するステップＳ１１に進む。
【００６０】
粒子生成削除部１８は、境界粒子２９が計算領域内の方向に移動した場合には（ステップＳ８：肯定）、流体の粒子を生成し、生成された流体の粒子について、粒子データとして時間変化算出部１５に出力する（ステップＳ９）。粒子生成削除部１８は、境界粒子２９が計算領域外の方向に移動した場合には（ステップＳ８：否定）、例えば、図１１に示すように、流体の粒子を削除し、削除された流体の粒子について、粒子データとして時間変化算出部１５に出力する（ステップＳ１０）。
【００６１】
粒子生成削除部１８は、シミュレーションについて、予め設定された所定時間分の計算を完了したか否かを判定する（ステップＳ１１）。粒子生成削除部１８は、所定時間分の計算を完了した場合には（ステップＳ１１：肯定）、シミュレーション結果の算出が完了したとして、シミュレーション装置１０の処理を終了する。粒子生成削除部１８は、所定時間分の計算を完了していない場合には（ステップＳ１１：否定）、解析時間である微小時間（ｄｔ）を進めてステップＳ２に戻り、時間変化算出部１５に次の時間ステップについての流体のシミュレーション計算を指示する。すなわち、制御部１４は、ユーザから初期条件が与えられると、ステップＳ２〜Ｓ１１の処理を、シミュレーションを行う所定時間分だけ繰返して、シミュレーション結果を記憶部１３に記憶する。ここで、シミュレーションの繰返し回数、つまりループ回数は、例えば、１万回から１００万回程度とできる。これにより、シミュレーション装置１０は、圧力を考慮した流体の流入量が容易に設定でき、シミュレーションの計算量を削減することができる。なお、シミュレーションの所定時間、ループ回数は、例えば、金型２１のモデルの大きさ等により適宜変化する。
【００６２】
このように、シミュレーション装置１０は、粒子法により流体の粒子の時間変化を算出し、解析対象である金型の流入口に設けた、該流入口の圧力変化を表す境界粒子の壁面ポテンシャルによって粒子に働く反発力を算出する。また、シミュレーション装置１０は、算出された反発力の反作用である金型の内圧を算出し、算出された内圧と、金型に粒子が射出される圧力である外圧とに基づいて、境界粒子の位置を算出する。また、シミュレーション装置１０は、境界粒子の位置に応じて、粒子を生成または削除する。その結果、シミュレーションを高速化できる。すなわち、シミュレーション装置１０は、計算精度を変えずに計算量を削減することができる。
【００６３】
また、シミュレーション装置１０は、粒子生成削除部１８によって生成または削除された粒子に基づいて、粒子の時間変化を算出する。その結果、圧力を考慮した流体の流入量が容易に設定でき、シミュレーションの計算量を削減することができる。
【００６４】
また、シミュレーション装置１０は、境界粒子が初期位置から金型の内側に壁面ポテンシャルの有効範囲分移動した場合には、境界粒子を初期位置に戻すとともに、境界粒子が押し出した流体の体積に相当する粒子を生成する。また、シミュレーション装置１０は、境界粒子が初期位置から金型の外側に壁面ポテンシャルの有効範囲分移動した場合には、境界粒子を初期位置に戻すとともに、金型の内側および外側の壁面ポテンシャルの有効範囲内の粒子を削除する。その結果、外圧と内圧に応じた境界粒子の動きに基づいて、流体の粒子を生成または削除できる。
【００６５】
また、シミュレーション装置１０は、境界粒子の大きさ分、初期位置から金型の内側および外側に移動した距離の範囲を、壁面ポテンシャルの有効範囲とする。その結果、流体の各粒子間において、互いに力の影響を及ぼす範囲を隣接する粒子に限定でき、計算量が削減できる。
【００６６】
また、シミュレーション装置１０は、内圧と外圧とに基づいて、境界粒子の移動速度を粒子の流入速度の最大値を超えないように算出し、算出された移動速度に基づいて、境界粒子の位置を算出する。その結果、現実的でない流体の流入速度とならず、より現実に近いシミュレーション結果を得ることができる。
【００６７】
なお、上記実施例では、粒子法としてＳＰＨ法を用いて説明したが、これに限定されない。例えば、他の粒子法に対しても適用でき、例えば、ＭＰＳ（Moving  Particle  Semi-implicit）法を用いたシミュレーションに対しても同様に適用できる。これにより、各種の粒子法のシミュレーションにおいても、シミュレーションを高速化できる。
【００６８】
また、上記実施例では、樹脂の射出成形を一例として説明したが、これに限定されない。例えば、金属やセラミックの射出成形の一例である金属粉末射出成形法やセラミックス粉末射出成形法のシミュレーションにも適用できる。
【００６９】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、時間変化算出部１５と反発力算出部１６とを統合して、１つの算出部とすることで、計算領域内の流体の粒子の速度、密度および位置を更新するようにしてもよい。
【００７０】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のプロセッサ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のプロセッサ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
【００７１】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図１３は、シミュレーションプログラムを実行するコンピュータの一例を示す説明図である。
【００７２】
図１３が示すように、コンピュータ１００は、各種演算処理を実行するＣＰＵ１０１と、データ入力を受け付ける入力装置１０２と、モニタ１０３とを有する。また、コンピュータ１００は、記憶媒体からプログラム等を読み取る媒体読取装置１０４と、各種装置と接続するためのインタフェース装置１０５と、他の情報処理装置等と有線または無線により接続するための通信装置１０６とを有する。また、コンピュータ１００は、各種情報を一時記憶するＲＡＭ１０７と、ハードディスク装置１０８とを有する。また、各装置１０１〜１０８は、バス１０９に接続される。
【００７３】
ハードディスク装置１０８には、図１に示した時間変化算出部１５、反発力算出部１６、位置算出部１７および粒子生成削除部１８の各処理部と同様の機能を有するシミュレーションプログラムが記憶される。また、ハードディスク装置１０８には、シミュレーションプログラムを実現するための各種データが記憶される。入力装置１０２は、図１に示した入力部１１と同様の機能を有し、シミュレーションの各種入力データの入力を受け付ける。モニタ１０３は、図１に示した表示部１２と同様の機能を有し、例えばシミュレーションの操作画面、結果画面等の各種画面を表示する。インタフェース装置１０５は、例えば印刷装置等が接続される。通信装置１０６は、例えば、他の情報処理装置と接続され、ユーザが遠隔地からリモート接続でコンピュータ１００を操作する情報等の各種情報をやりとりする。
【００７４】
ＣＰＵ１０１は、ハードディスク装置１０８に記憶された各プログラムを読み出して、ＲＡＭ１０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ１００を図１に示した時間変化算出部１５、反発力算出部１６、位置算出部１７および粒子生成削除部１８として機能させることができる。
【００７５】
なお、上記のシミュレーションプログラムは、必ずしもハードディスク装置１０８に記憶されている必要はない。例えば、コンピュータ１００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ１００が読み出して実行するようにしてもよい。コンピュータ１００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）等に接続された装置にこのシミュレーションプログラムを記憶させておき、コンピュータ１００がこれらからシミュレーションプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７６】
１０  シミュレーション装置
１１  入力部
１２  表示部
１３  記憶部
１４  制御部
１５  時間変化算出部
１６  反発力算出部
１７  位置算出部
１８  粒子生成削除部
【図１】
2015170327.tif 000012
【図２】
2015170327.tif 000013
【図３】
2015170327.tif 000014
【図４】
2015170327.tif 000015
【図５】
2015170327.tif 000016
【図６】
2015170327.tif 000017
【図７】
2015170327.tif 000018
【図８】
2015170327.tif 000019
【図９】
2015170327.tif 000020
【図１０】
2015170327.tif 000021
【図１１】
2015170327.tif 000022
【図１２】
2015170327.tif 000023
【図１３】
2015170327.tif 000024