(57)【要約】      （修正有）【課題】流体の挙動を示す液体粒子データに取り込まれた空間に空気粒子が生成された空間における空気粒子に掛かるシミュレーション演算処理を削減する。【解決手段】流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部とを有し、液体粒子に巻き込まれた気泡粒子のみを計算対象として管理し、消失した気泡粒子を計算対象外とする。【選択図】なし【特許請求の範囲】
【請求項１】
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する情報処理装置。
【請求項２】
前記生成部は、
計算空間に配置した複数の格子点のそれぞれを中心として定めた空間から、前記液体粒子データに取り込まれた空間を検出する検出部と、
前記取り込まれた空間内の液体粒子の粒度を算出する算出部と、を更に有し、
算出された前記粒度が一定値以下である場合に、前記取り込まれた空間に前記気泡粒子データを生成する
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記空間は、液体粒子間の相互作用の範囲である
ことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記検出部は、
前記空間を、空間軸のそれぞれに対応させて分割し、分割した各領域に対応付けられた前記液体粒子データが記憶部に存在するか否かを判定することで、前記取り込まれた空間を検出する
ことを特徴とする請求項２記載の情報処理装置。
【請求項５】
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する粒子シミュレータシステム。
【請求項６】
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成し、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う
処理をコンピュータが行う粒子シミュレータ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法に関する。
【背景技術】
【０００２】
近年、粒子法シミュレーションを用いて、溶融材料の型への充填中に気泡が溶融材料中に巻き込まれる挙動を検証することが行われている。
【０００３】
オペレータが選択した気泡の巻き込みが生じそうな微小空間にトレース粒子を仮想的に発生させて、トレース粒子が充填材料と同一速度で流動すると仮定することで、トレース粒子の挙動を解析する技術等が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−３３７９９９号公報
【特許文献２】特開２０１４−１４６０９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記技術では、気泡の巻き込みが生じそうな微小空間の選択は、オペレータの経験と知識に依存する。また、気泡が巻き込まれていく状態までをシミュレーションすることができない。一方、鋳造の粒子法において、溶融金属と気泡の挙動をシミュレートしようとすると、解析空間全体に空気の粒子を配置して計算を行うため処理負荷が大きい。
【０００６】
したがって、１つの側面では、空気粒子に掛かる演算処理を削減することを目的とする。
【課題を解決するための手段】
【０００７】
一態様によれば、流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部とを有する情報処理装置が提供される。
【発明の効果】
【０００８】
空気粒子に掛かる演算処理を削減することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置のハードウェア構成例を示す図である。
【図２】情報処理装置の機能構成例を示す図である。
【図３】本実施例における粒子シミュレーション処理を説明するためのフローチャート図である。
【図４】格子データのデータ構成例を示す図である。
【図５】流体粒子データのデータ構造例を示す図である。
【図６】気泡粒子データのデータ構成例及びデータ遷移例を示す図である。
【図７】図３のステップＳ１３０における気泡粒子の生成処理を説明するための図である。
【図８】気泡粒子の生成例を説明するための図である。
【図９】影響範囲の例を示す図である。
【図１０】内部判定例を説明するための図である。
【図１１】格子点が内部となる状態例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて説明する。溶融材料の型への充填中に気泡が溶融材料中に巻き込まれる挙動を検証する粒子法シミュレーションは、図１に示すような情報処理装置によって行われる。
【００１１】
図１は、情報処理装置のハードウェア構成例を示す図である。図１において、情報処理装置１００は、コンピュータであって、ＣＰＵ１１と、主記憶装置１２と、補助記憶装置１３と、入力装置１４と、表示装置１５と、通信Ｉ／Ｆ１７と、ドライブ装置１８とを有し、バスＢに接続される。主記憶装置１２と、補助記憶装置１３、及び情報処理装置１００がアクセス可能な外部記憶装置を含めて記憶部１３０という。
【００１２】
ＣＰＵ１１は、情報処理装置１００を制御するプロセッサに相当し、記憶部１３０に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置１４は、ユーザによって操作され、操作に応じてデータを入力し、表示装置１５は、ユーザーインタフェースとして様々な画面を表示する。通信Ｉ／Ｆ１７は、外部装置との通信を制御する。
【００１３】
記憶媒体１９（例えば、ＣＤ−ＲＯＭ（Compact  Disc  Read-Only  Memory）等）に記憶された本実施例に係る粒子シミュレータプログラムは、ドライブ装置１８を介して記憶部１３０にインストールされ、ＣＰＵ１１によって実行可能となる。その観点において、情報処理装置１００は、粒子シミュレータとして動作する。
【００１４】
尚、本実施例に係るプログラムを格納する記憶媒体１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤ（Digital  Versatile  Disk）ディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００１５】
本実施例では、鋳造の粒子法シミュレーションにおいて、空気巻き込みによって発生する欠陥を再現するために、溶融金属と気泡の挙動をシミュレートする際に、空気巻き込みが発生する箇所に粒子を生成することで、注目する箇所のみで気泡に関する計算を行う。本実施例における情報処理装置１００は、以下のような機能構成を有する。
【００１６】
図２は、情報処理装置の機能構成例を示す図である。図２において、情報処理装置１００は、主に、データ取得部４１と、流体計算部４２とを有する。データ取得部４１と、流体計算部４２とは、情報処理装置１００にインストールされたプログラムが、情報処理装置１００のＣＰＵ１１に実行させる処理により実現される。記憶部１３０には、入力データ５１、格子データ５２、流体粒子データ５３、気泡粒子データ５４等が記憶される。
【００１７】
データ取得部４１は、ユーザから入力データ５１を記憶部１３０に記憶する。入力データ５１には、計算空間の指定、鋳型を表す鋳型モデル、格子情報等のデータを含む。格子情報には、格子間隔、格子原点座標、格子点個数等の設定が示される。溶融金属の１粒子の密度、質量等の設定値が入力データ５１に含まれていてもよい。
【００１８】
流体計算部４２は、溶融金属を表す流体粒子の挙動、及び、空気巻き込みによって発生する気泡粒子の挙動をシミュレートする処理部である。流体計算部４２は、入力データ５１を参照し、計算空間に鋳型モデルを配置し、計算空間に格子情報に基づいて格子を作成する。格子データ５２が記憶部１３０に作成される。流体計算部４２は、鋳型モデルの流入口に流体粒子を生成して初期状態を設定し、粒子シミュレーションを実行する。
【００１９】
流体計算部４２は、更に、加速度算出部４３と、気泡粒子生成部４４と、速度算出部４５と、時間積分部４６と、表示制御部４７とを有する。
【００２０】
加速度算出部４３は、各流体粒子の加速度を計算する処理部である。気泡粒子生成部４４は、気泡の発生有無を判定し、気泡が発生したと判定した場合には、該当格子点に気泡粒子を生成する。速度算出部４５は、気泡粒子生成部４４によって気泡粒子が生成されると、気泡粒子ごとに速度を算出する。
【００２１】
時間積分部４６は、時間積分を行い、計算を１ステップ進める。流体粒子データ５３及び気泡粒子データ５４の各粒子データに対して、位置座標と速度とが更新される。表示制御部４７は、鋳型モデルを表示装置１４に表示し、更新ごとに流体粒子データ５３と気泡粒子データ５４とに基づいて流体（例えば、溶融金属）及び気泡粒子の挙動を表示装置１４に表示する。
【００２２】
図３は、本実施例における粒子シミュレーション処理を説明するためのフローチャート図である。図３において、先ず、データ取得部４１は、入力データ５１をユーザから取得すると、記憶部１３０に格納する（ステップＳ１１０）。
【００２３】
次に、流体計算部４２は、入力データ５１に基づいて、計算空間に対して初期設定を行うと、ステップＳ１２０〜Ｓ１７０を行う。粒子シミュレーションが開始される。
【００２４】
流体計算部４２において、加速度算出部４３は、各流体粒子の加速度を計算する（ステップＳ１２０）。加速度の計算は、Smoothed  Particle  Hydrodynamics（ＳＰＨ）法によるナビエ・ストークス方程式を用いればよい。
【００２５】
そして、気泡粒子生成部４４は、気泡粒子の生成処理を行う（ステップＳ１３０）。気泡粒子の生成処理は後述される。気泡粒子が生成されるごとに、新たなデータが気泡粒子データ５４に追加される。気泡粒子生成部４４は、気泡粒子が消滅した場合には、気泡粒子データ５４から該当データを削除する。
【００２６】
気泡粒子が存在するか否かを判断する（ステップＳ１４０）。気泡粒子が存在しなかった場合（ステップＳ１４０のＮＯ）、流体計算部４２は、ステップＳ１６０へと進む。
【００２７】
一方、気泡粒子が存在する場合（ステップＳ１４０のＹＥＳ）、速度算出部４５は、気泡粒子データ５４で管理される気泡粒子ごとに速度を算出する（ステップＳ１５０）。速度を算出するためには、例えば離散要素法と流体解析の連成により速度を得る。
【００２８】
その後、時間積分部４６は、流体粒子データ５３及び気泡粒子データ５４を参照して粒子の速度に対して時間積分を行い、位置座標を更新した後、計算を１ステップ進める（ステップＳ１６０）。
【００２９】
流体計算部４２は、所定ステップ数に到達したか否かを判断する（ステップＳ１７０）。所定ステップ数に到達していない場合、流体計算部４２は、ステップＳ１２０へと戻り、同様の処理を繰り返す。一方、所定ステップ数に到達している場合、流体計算部４２は、この粒子シミュレーション処理を終了する。
【００３０】
上述した粒子シミュレーション処理において、ステップＳ１６０の処理が実行されるごとに、表示制御部４７が、表示した鋳型モデルに対して、流体粒子データ５３と気泡粒子データ５４とを参照して、粒子の挙動を表示装置１５に表示してもよい。或いは、粒子シミュレーション処理の終了後に、ユーザの操作に応じて、シミュレーション時間ごとに粒子の挙動を表示してもよい。この場合には、計算の１ステップごとの流体粒子データ５３と気泡粒子データ５４とが記憶部１３０に記憶される。
【００３１】
次に、図４、図５、及び図６でデータ構造について説明する。図４は、格子データのデータ構成例を示す図である。図４に示す格子データ５２は、ヘッダ部５２ａと、格子情報部５２ｂとを有する。
【００３２】
ヘッダ部５２ａは、計算空間に格子を定義するための基本情報を示し、格子間隔、格子原点座標、格子点個数等を示す領域である。格子間隔は、流体粒子間の相互作用の範囲で定められることが好ましく、一例として、影響半径ｈで定義される。相互作用とはシミュレーションにおける相互作用である。
【００３３】
格子原点座標は、計算空間において、基準となる格子座標である。格子原点座標は、２次元又は３次元の座標で示される。この例では、３次元の(x0,  y0,  z0)で示す。格子点個数は、計算空間のｘ軸、ｙ軸、及びｚ軸それぞれの方向における格子の最大個数を指定し、(nx,  ny,  nz)で示す。
【００３４】
格子情報部５２ｂは、格子ごとに格子座標を示す格子情報５２ｃを記憶する領域である。各格子情報５２ｃは、格子を特定する格子ＩＤと、格子座標とを示す。格子ＩＤは、格子原点座標から各軸方向における格子番号(i,  j,  k)で示される。
【００３５】
格子原点座標からｘ軸方向に１番目の格子をi1で示し、ｙ軸方向に１番目の格子をj1で示し、ｚ軸方向に１番目の格子をk1で示す。最初の格子は、格子ＩＤ(i1,  j1,  k1)で特定される。ｘ軸方向で２番目、ｙ軸方向で３番目、及びｚ軸方向で４番目の格子は、格子ＩＤ(i2,  j3,  k4)で特定される。
【００３６】
格子座標は、計算空間における格子の座標を示す。一例として、影響半径ｈを用いて格子の中心座標を格子座標とすれば良いが、この例に限定されない。
【００３７】
【数１】
2020194285.tif 000002
格子座標を一般化した場合、
上述した数１のように示される。格子情報部５２ｂに、格子点個数の格子情報５２ｃが記憶される。以下の説明において、格子座標（例えば、格子の中心座標）の点を「格子点」という。
【００３８】
図５は、流体粒子データのデータ構造例を示す図である。図５に示す流体粒子データ５３は、流体粒子リスト５３ａと流体粒子情報５３ｂとを有する。流体粒子リスト５３ａは、計算対象となる全ての流体粒子を特定可能に一覧にしたテーブルに相当する。流体粒子ごとに一意に特定可能なＩＤであっても良いし、流体粒子情報５３ｂが格納された領域へのポインタであってもよい。
【００３９】
流体粒子情報５３ｂは、各流体粒子ｉの位置座標、速度、密度、及び質量等の固有の情報を示す。位置座標は計算空間内での座標を示し、速度は加速度算出部４３と時間積分部４６とにより得られた値を示す。位置座標及び速度は、粒子シミュレーションのステップごとに更新され得る値である。密度及び質量は入力データ５１から得られる設定値であればよい。
【００４０】
図６は、気泡粒子データのデータ構成例及びデータ遷移例を示す図である。図６において、図６（Ａ）から図６（Ｆ）は時系列のデータ遷移例を示している。図６（Ａ）に示す気泡粒子データ５４は、時刻Ｔａ時の初期状態を示している。気泡粒子データ５４は、空である。
【００４１】
図６（Ｂ）示す気泡粒子データ５４は、時刻Ｔａ後の時刻Ｔｂで、気泡粒子生成部４４により、最初の気泡粒子１が生成された状態を示している。気泡粒子リスト５４ａと気泡粒子情報５４ｂとが生成される。図６（Ｂ）では、気泡粒子リスト５４ａに、気泡粒子１のみが作成されている。同時刻に２以上の気泡粒子が追加されてもよい。
【００４２】
気泡粒子リスト５４ａには、計算対象となる気泡粒子を一意に特定する識別情報が追加される。追加された識別情報に関連付けて気泡粒子情報５４ｂが作成される。気泡粒子の識別情報は、気泡粒子情報５４ｂが格納された領域へのポインタであってもよい。気泡粒子情報５４ｂは、各気泡粒子の位置座標、速度等の固有の情報を示す。位置座標及び速度は、粒子シミュレーションのステップごとに更新され得る値である。
【００４３】
図６（Ｃ）では、時刻Ｔｂ後の時刻Ｔｃの気泡粒子データ５４の状態を示している。時刻Ｔｃまでには、気泡粒子リスト５４ａに、気泡粒子２から気泡粒子７まで追加されている。また、気泡粒子２から気泡粒子７のそれぞれの気泡粒子情報５４ｂが生成されている。
【００４４】
図６（Ｄ）では、時刻Ｔｃ後の時刻Ｔｄの気泡粒子データ５４の状態を示している。気泡粒子リスト５４ａに、更に気泡粒子１０までが追加され、気泡粒子情報５４ｂも生成されている。
【００４５】
図６（Ａ）の初期状態から図６（Ｄ）までで、気泡粒子が増えていく状態例が表されている。図６（Ｅ）及び図６（Ｆ）では、気泡粒子が減少していく状態例を表す。
【００４６】
図６（Ｅ）では、時刻Ｔｄ後の時刻Ｔｅの気泡粒子データ５４の状態を示している。気泡粒子リスト５４ａには、気泡粒子３、気泡粒子１４、及び気泡粒子３１の３つの粒子のみが残っている。この時点で溶融材料中（流体）に巻き込まれて残っている粒子は３つあり、それぞれの位置は、３つの気泡粒子情報５４ｂに示される位置座標で特定可能である。
【００４７】
時刻Ｔｅ後の時刻Ｔｆで粒子シミュレーションが終了すると、図６（Ｆ）に示すような気泡粒子データ５４が記憶部１３０に記憶されていた場合、粒子シミュレーションの終了時には、気泡粒子リスト５４ａには、１つの気泡粒子１４が残されている。この残された気泡粒子１４は製品の欠陥となり得る。
【００４８】
本実施例では、上述したように、巻き込まれた気泡粒子のみを計算対象として管理し、消失した気泡粒子は計算の対象外となり、気泡粒子データ５４から削除される。この制御により、計算処理の負担を削減できる。
【００４９】
また、粒子シミュレーションの終了時において、気泡粒子データ５４内の気泡粒子リスト５４ａに存在している気泡粒子の各レコードから気泡粒子情報５４ｂを特定して位置座標を取得することで、製品に含まれる欠陥の位置を概ね特定してもよい。このような機能は、表示制御部４７が備えることが好ましい。
【００５０】
表示制御部４７は、鋳型モデルを用いた粒子シミュレーションで得られた製品形状を３次元で表示装置１５に表示して、欠陥位置を視認可能に表示してもよい。又は、気泡粒子データ５４に基づき、欠陥情報の一覧を表示装置１５に表示してもよい。
【００５１】
図７は、図３のステップＳ１３０における気泡粒子の生成処理を説明するための図である。図７より、気泡粒子生成部４４は、格子データ５２を参照して、格子情報を１つ選択し、選択した格子情報の格子座標の位置で内部判定を行う（ステップＳ１３１）。
【００５２】
気泡粒子生成部４４は、格子座標の位置（格子点）からの流体の粒度を算出する（ステップＳ１３２）。気泡粒子生成部４４は、流体粒子データ５３の各流体粒子の位置座標を参照して、格子座標（即ち、格子点）から影響範囲内に含まれる流体粒子の、位置座標、密度、質量等を用いて、格子点における粒度を算出する。粒度の算出については後述される。
【００５３】
気泡粒子生成部４４は、ステップＳ１３１の内部判定の結果と、ステップＳ１３２で得られた粒度とから、内部かつ粒度が一定値以下を満たすか否かを判定する（ステップＳ１３３）。「内部かつ粒度が一定値以下」は、「気泡生成条件」である。気泡生成条件における一定値とは、一例として、後述する数２において０．８以上の値を設定することが好ましく、０．８５を一定値とすることがより好ましい。
【００５４】
この気泡生成条件を満たす場合（ステップＳ１３３のＹＥＳ）、気泡粒子生成部４４は、気泡粒子があるか否かを判断する（ステップＳ１３４）。気泡粒子生成部４４は、気泡粒子データ５４に影響範囲内の位置座標を示す気泡粒子情報５４ｂがあるか否かを判断する。気泡粒子情報５４ｂがない場合、即ち、影響範囲内に気泡粒子がない場合（ステップＳ１３４のＮＯ）、気泡粒子生成部４４は、格子内部に気泡粒子を生成する（ステップＳ１３５）。具体的には、気泡粒子生成部４４は、気泡粒子データ５４において、気泡粒子リスト５４ａに新たな気泡粒子の識別情報を追加し、識別情報に関連付けて気泡粒子情報５４ｂを作成する。一方、気泡粒子情報５４ｂがある場合、即ち、影響範囲内に気泡粒子がある場合（ステップＳ１３４のＹＥＳ）、気泡粒子生成部４４は、ステップＳ１３６へと進む。これにより、一度気泡を発生した箇所において連続して気泡を発生し続けることを避けることができる。
【００５５】
気泡粒子を生成後、気泡粒子生成部４４は、全ての格子情報を選択したか否かを判断する（ステップＳ１３６）。未選択の格子情報が存在する場合（ステップＳ１３６のＮＯ）、気泡粒子生成部４４は、ステップＳ１３１へと戻り、上述同様の処理を繰り返し行う。一方、全ての格子情報を選択した場合（ステップＳ１３６のＹＥＳ）、気泡粒子生成部４４は、この気泡粒子の生成処理を終了する。
【００５６】
一方、気泡生成条件を満たさない場合（ステップＳ１３３のＮＯ）、気泡粒子生成部４４は、全ての格子情報を選択したか否かを判断する（ステップＳ１３６）。未選択の格子情報が存在する場合（ステップＳ１３６のＮＯ）、気泡粒子生成部４４は、ステップＳ１３１へと戻り、上述同様の処理を繰り返し行う。一方、全ての格子情報を選択した場合（ステップＳ１３６のＹＥＳ）、気泡粒子生成部４４は、この気泡粒子の生成処理を終了する。
【００５７】
上述した気泡粒子の生成処理には、一例として、生成した気泡粒子を削除する削除処理としてステップＳ１３５及びＳ１３６を含むが、このような処理内容に限定されない。生成した気泡粒子が流体の表面（図１０（Ａ））に到達したと判断したときに削除処理を行うようにしてもよい。次に、気泡粒子の生成例について図８で説明する。
【００５８】
図８は、気泡粒子の生成例を説明するための図である。図８中では、複数の格子１ａが設定された計算空間１内に流体粒子２の分布９を示している。分布９を例として、気泡粒子３の生成について説明する。流体粒子２の直径をｄｘで表す。格子１ａ、影響範囲３等のサイズは一例であり、図８に示されるサイズに限定されない。
【００５９】
図８（Ａ）では、内部であると判定された格子点６の例を示している。気泡粒子生成部４４は、格子点６を中心とし直径ｄｘの範囲に流体粒子２が存在しない場合に、内部判定を行う。格子点６の位置に流体粒子２が存在せず、かつ、計算空間１の複数の格子１ａのうち、格子点６（格子座標）から影響範囲３の四方に流体粒子２が存在する格子１ａが検出されると、内部であると判定される。
【００６０】
図８（Ｂ）より、内部であると判定された格子１ａにおいて、気泡粒子生成部４４は、流体の粒度が一定値以下の場合に、格子点６の位置に気泡粒子７を生成する。
【００６１】
更に、図７のステップＳ１３１で行われる内部判定について詳しく説明する。図９は、影響範囲の例を示す図である。図９より、影響範囲３は、格子点６が位置する格子座標xijkを中心として影響半径ｈの円内として定義される。影響半径ｈは、一例として、流体粒子２の直径ｄｘの２〜３倍程度に設定されるのが望ましい。以下、２次元の場合で説明するが、３次元であっても同様である。
【００６２】
格子点６を中心として影響半径ｈ内の影響範囲３をｘ＋、ｘ−、ｙ＋、及びｙ−の４領域に分割する。流体粒子２を含む影響範囲３において、４領域の少なくとも１領域で流体粒子２が存在しない場合を表面であると判断する。一方、全ての領域に近傍粒子が存在する場合を内部と判断する。
【００６３】
図１０は、内部判定例を説明するための図である。内部判定では、格子座標xijkの格子点６が表面であるのか、内部であるのかが判定される。図１０において、複数の流体粒子２のうち、影響範囲３内に存在する流体粒子２を格子点６の近傍粒子という。流体粒子２が分布する格子を対象とする。内部判定では、影響範囲３内の流体粒子２の位置座標を用いて、４領域のいずれに属するかを判断する。
【００６４】
図１０（Ａ）は、格子点６が表面であると判定される例を示している。図１０（Ａ）では、影響範囲３内に５つの流体粒子２が存在し、これらは格子点６の近傍粒子である。近傍粒子は、影響範囲３のｘ＋領域、ｘ−領域、及びｙ−領域には存在するが、ｙ＋領域には１つも存在しない。このように、格子点６の影響範囲３に近傍粒子が存在するものの、１以上の領域で近傍粒子が存在しない場合、格子点６は、流体粒子２の表面に位置すると判定する。言い換えると、図１０（Ａ）の場合、格子点６の位置は、流体粒子２に囲まれた内部ではないと判定される。
【００６５】
図１０（Ｂ）は、格子点６が内部であると判定される例を示している。図１０（Ｂ）では、影響範囲３内に８つの流体粒子２が存在し、これらは格子点６の近傍粒子である。近傍粒子は、影響範囲３のｘ＋領域、ｘ−領域、ｙ＋領域、及びｙ−領域の全ての領域に存在する。このように、格子点６の影響範囲３の全ての領域に近傍粒子が存在する場合、格子点６は、流体粒子２の内部に位置すると判定する。言い換えると、図１０（Ｂ）の場合、格子点６は、流体粒子２に囲まれた内部であると判定される。
【００６６】
次に、図７のステップＳ１３２における粒度の算出方法について説明する。図１１は、格子点が内部となる状態例を示している。図１１より、格子点６が内部であると判定された場合の複数の流体粒子２を含む影響範囲３内の状態例が示されている。
【００６７】
内部であると判定された格子点６に対して、粒度が求められる。粒度の定義式は、
【００６８】
【数２】
2020194285.tif 000003
で表される。ここで、カーネル関数Ｗは、
【００６９】
【数３】
2020194285.tif 000004
で表される。
【００７０】
上述したように、本実施例では、空気粒子を空間全体に配置させることがないため、計算処理を削減することができる。内部判定と流体の粒度計算とにより、空気の巻き込みが発生する箇所を特定し、特定した位置に気泡粒子７を生成することができる。従って、気泡粒子７の生成にユーザの経験や知識を必要とせず、粒子シミュレーションを行うことができる。
【００７１】
このように、本実施例によれば、巻き込みのない空気粒子の計算時間を削減し、効率的な粒子シミュレーションを実現する。また、ユーザによる操作は入力データ５１の設定のみであるため、容易に粒子シミュレーションによる精度良い結果を得ることができる。
【００７２】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【００７３】
上述した実施例における、流体粒子データ５３は液体粒子データの一例であり、時間積分部４６は実行部の一例である。図７のＳ１３１は検出部の一例であり、図７のＳ１３２は算出部の一例である。
【００７４】
上述した本実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する情報処理装置。
（付記２）
前記生成部は、
計算空間に配置した複数の格子点のそれぞれを中心として定めた空間から、前記液体粒子データに取り込まれた空間を検出する検出部と、
前記取り込まれた空間内の液体粒子の粒度を算出する算出部と、を更に有し、
算出された前記粒度が一定値以下である場合に、前記取り込まれた空間に前記気泡粒子データを生成する
ことを特徴とする付記１記載の情報処理装置。
（付記３）
前記空間は、液体粒子間の相互作用の範囲である
ことを特徴とする付記１又は２記載の情報処理装置。
（付記４）
前記検出部は、
前記空間を、空間軸のそれぞれに対応させて分割し、分割した各領域に対応付けられた前記液体粒子データが記憶部に存在するか否かを判定することで、前記取り込まれた空間を検出する
ことを特徴とする付記２記載の情報処理装置。
（付記５）
前記一定値は、０．８以上であることを特徴とする付記２記載の情報処理装置。
（付記６）
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する粒子シミュレータシステム。
（付記７）
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成し、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う
処理をコンピュータが行う粒子シミュレータ方法。
【符号の説明】
【００７５】
１        計算空間
２        流体粒子
３        影響範囲
６        格子点
７        気泡粒子
４１      流体計算部
４２      データ取得部
４３      流体計算部
４４      気泡粒子生成部
４５      速度算出部
４６      時間積分部
４７      表示制御部
５１      入力データ
５２      格子データ
５３      流体粒子データ
５３ａ    流体粒子リスト
５３ｂ    流体粒子情報
５４      気泡粒子データ
５４ａ    気泡粒子リスト
５４ｂ    気泡粒子情報
【図１】
2020194285.tif 000005
【図２】
2020194285.tif 000006
【図３】
2020194285.tif 000007
【図４】
2020194285.tif 000008
【図５】
2020194285.tif 000009
【図６】
2020194285.tif 000010
【図７】
2020194285.tif 000011
【図８】
2020194285.tif 000012
【図９】
2020194285.tif 000013
【図１０】
2020194285.tif 000014
【図１１】
2020194285.tif 000015