IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧 ▶ 学校法人大同学園の特許一覧

特許7246636情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法
<>
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図1
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図2
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図3
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図4
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図5
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図6
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図7
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図8
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図9
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図10
  • 特許-情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-17
(45)【発行日】2023-03-28
(54)【発明の名称】情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法
(51)【国際特許分類】
   G06F 30/20 20200101AFI20230320BHJP
   G16Z 99/00 20190101ALI20230320BHJP
【FI】
G06F30/20
G16Z99/00
【請求項の数】 5
(21)【出願番号】P 2019098751
(22)【出願日】2019-05-27
(65)【公開番号】P2020194285
(43)【公開日】2020-12-03
【審査請求日】2022-01-31
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(73)【特許権者】
【識別番号】391002487
【氏名又は名称】学校法人大同学園
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】諏訪 多聞
(72)【発明者】
【氏名】風間 正喜
(72)【発明者】
【氏名】畠中 耕平
(72)【発明者】
【氏名】前田 安郭
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2008-171145(JP,A)
【文献】国際公開第2004/088563(WO,A1)
【文献】特開2014-013424(JP,A)
【文献】特開2013-045423(JP,A)
【文献】特開2006-085603(JP,A)
【文献】欧州特許出願公開第03179390(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/20
G16Z 99/00
(57)【特許請求の範囲】
【請求項1】
計算空間に配置した複数の格子点のそれぞれを中心として定めた空間から、流体の挙動を示す液体粒子データに取り込まれた空間を検出する検出部と、
前記取り込まれた空間内の液体粒子の粒度を算出する算出部と、
算出された前記粒度が一定値以下である場合に、前記取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する情報処理装置。
【請求項2】
前記空間は、液体粒子間の相互作用の範囲である
ことを特徴とする請求項記載の情報処理装置。
【請求項3】
前記検出部は、
前記空間を、空間軸のそれぞれに対応させて分割し、分割した各領域に対応付けられた前記液体粒子データが記憶部に存在するか否かを判定することで、前記取り込まれた空間を検出する
ことを特徴とする請求項記載の情報処理装置。
【請求項4】
計算空間に配置した複数の格子点のそれぞれを中心として定めた空間から、流体の挙動を示す液体粒子データに取り込まれた空間を検出する検出部と、
前記取り込まれた空間内の液体粒子の粒度を算出する算出部と、
算出された前記粒度が一定値以下である場合に、前記取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する粒子シミュレータシステム。
【請求項5】
計算空間に配置した複数の格子点のそれぞれを中心として定めた空間から、流体の挙動を示す液体粒子データに取り込まれた空間を検出し、
前記取り込まれた空間内の液体粒子の粒度を算出し、
算出された前記粒度が一定値以下である場合に、前記取り込まれた空間に気泡粒子データを生成し、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う
処理をコンピュータが行う粒子シミュレータ方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、粒子シミュレータシステム、及び粒子シミュレータ方法に関する。
【背景技術】
【0002】
近年、粒子法シミュレーションを用いて、溶融材料の型への充填中に気泡が溶融材料中に巻き込まれる挙動を検証することが行われている。
【0003】
オペレータが選択した気泡の巻き込みが生じそうな微小空間にトレース粒子を仮想的に発生させて、トレース粒子が充填材料と同一速度で流動すると仮定することで、トレース粒子の挙動を解析する技術等が知られている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平5-337999号公報
【文献】特開2014-146096号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記技術では、気泡の巻き込みが生じそうな微小空間の選択は、オペレータの経験と知識に依存する。また、気泡が巻き込まれていく状態までをシミュレーションすることができない。一方、鋳造の粒子法において、溶融金属と気泡の挙動をシミュレートしようとすると、解析空間全体に空気の粒子を配置して計算を行うため処理負荷が大きい。
【0006】
したがって、1つの側面では、空気粒子に掛かる演算処理を削減することを目的とする。
【課題を解決するための手段】
【0007】
一態様によれば、計算空間に配置した複数の格子点のそれぞれを中心として定めた空間から、流体の挙動を示す液体粒子データに取り込まれた空間を検出する検出部と、前記取り込まれた空間内の液体粒子の粒度を算出する算出部と、算出された前記粒度が一定値以下である場合に、前記取り込まれた空間に気泡粒子データを生成する生成部と、前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部とを有する情報処理装置が提供される。
【発明の効果】
【0008】
空気粒子に掛かる演算処理を削減することができる。
【図面の簡単な説明】
【0009】
図1】情報処理装置のハードウェア構成例を示す図である。
図2】情報処理装置の機能構成例を示す図である。
図3】本実施例における粒子シミュレーション処理を説明するためのフローチャート図である。
図4】格子データのデータ構成例を示す図である。
図5】流体粒子データのデータ構造例を示す図である。
図6】気泡粒子データのデータ構成例及びデータ遷移例を示す図である。
図7図3のステップS130における気泡粒子の生成処理を説明するための図である。
図8】気泡粒子の生成例を説明するための図である。
図9】影響範囲の例を示す図である。
図10】内部判定例を説明するための図である。
図11】格子点が内部となる状態例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態を図面に基づいて説明する。溶融材料の型への充填中に気泡が溶融材料中に巻き込まれる挙動を検証する粒子法シミュレーションは、図1に示すような情報処理装置によって行われる。
【0011】
図1は、情報処理装置のハードウェア構成例を示す図である。図1において、情報処理装置100は、コンピュータであって、CPU11と、主記憶装置12と、補助記憶装置13と、入力装置14と、表示装置15と、通信I/F17と、ドライブ装置18とを有し、バスBに接続される。主記憶装置12と、補助記憶装置13、及び情報処理装置100がアクセス可能な外部記憶装置を含めて記憶部130という。
【0012】
CPU11は、情報処理装置100を制御するプロセッサに相当し、記憶部130に格納されたプログラムを実行することで、以下に説明する本実施例に係る様々な処理を実現する。入力装置14は、ユーザによって操作され、操作に応じてデータを入力し、表示装置15は、ユーザーインタフェースとして様々な画面を表示する。通信I/F17は、外部装置との通信を制御する。
【0013】
記憶媒体19(例えば、CD-ROM(Compact Disc Read-Only Memory)等)に記憶された本実施例に係る粒子シミュレータプログラムは、ドライブ装置18を介して記憶部130にインストールされ、CPU11によって実行可能となる。その観点において、情報処理装置100は、粒子シミュレータとして動作する。
【0014】
尚、本実施例に係るプログラムを格納する記憶媒体19はCD-ROMに限定されず、コンピュータが読み取り可能な、構造(structure)を有する1つ以上の非一時的(non-transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD-ROMの他に、DVD(Digital Versatile Disk)ディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【0015】
本実施例では、鋳造の粒子法シミュレーションにおいて、空気巻き込みによって発生する欠陥を再現するために、溶融金属と気泡の挙動をシミュレートする際に、空気巻き込みが発生する箇所に粒子を生成することで、注目する箇所のみで気泡に関する計算を行う。本実施例における情報処理装置100は、以下のような機能構成を有する。
【0016】
図2は、情報処理装置の機能構成例を示す図である。図2において、情報処理装置100は、主に、データ取得部41と、流体計算部42とを有する。データ取得部41と、流体計算部42とは、情報処理装置100にインストールされたプログラムが、情報処理装置100のCPU11に実行させる処理により実現される。記憶部130には、入力データ51、格子データ52、流体粒子データ53、気泡粒子データ54等が記憶される。
【0017】
データ取得部41は、ユーザから入力データ51を記憶部130に記憶する。入力データ51には、計算空間の指定、鋳型を表す鋳型モデル、格子情報等のデータを含む。格子情報には、格子間隔、格子原点座標、格子点個数等の設定が示される。溶融金属の1粒子の密度、質量等の設定値が入力データ51に含まれていてもよい。
【0018】
流体計算部42は、溶融金属を表す流体粒子の挙動、及び、空気巻き込みによって発生する気泡粒子の挙動をシミュレートする処理部である。流体計算部42は、入力データ51を参照し、計算空間に鋳型モデルを配置し、計算空間に格子情報に基づいて格子を作成する。格子データ52が記憶部130に作成される。流体計算部42は、鋳型モデルの流入口に流体粒子を生成して初期状態を設定し、粒子シミュレーションを実行する。
【0019】
流体計算部42は、更に、加速度算出部43と、気泡粒子生成部44と、速度算出部45と、時間積分部46と、表示制御部47とを有する。
【0020】
加速度算出部43は、各流体粒子の加速度を計算する処理部である。気泡粒子生成部44は、気泡の発生有無を判定し、気泡が発生したと判定した場合には、該当格子点に気泡粒子を生成する。速度算出部45は、気泡粒子生成部44によって気泡粒子が生成されると、気泡粒子ごとに速度を算出する。
【0021】
時間積分部46は、時間積分を行い、計算を1ステップ進める。流体粒子データ53及び気泡粒子データ54の各粒子データに対して、位置座標と速度とが更新される。表示制御部47は、鋳型モデルを表示装置14に表示し、更新ごとに流体粒子データ53と気泡粒子データ54とに基づいて流体(例えば、溶融金属)及び気泡粒子の挙動を表示装置14に表示する。
【0022】
図3は、本実施例における粒子シミュレーション処理を説明するためのフローチャート図である。図3において、先ず、データ取得部41は、入力データ51をユーザから取得すると、記憶部130に格納する(ステップS110)。
【0023】
次に、流体計算部42は、入力データ51に基づいて、計算空間に対して初期設定を行うと、ステップS120~S170を行う。粒子シミュレーションが開始される。
【0024】
流体計算部42において、加速度算出部43は、各流体粒子の加速度を計算する(ステップS120)。加速度の計算は、Smoothed Particle Hydrodynamics(SPH)法によるナビエ・ストークス方程式を用いればよい。
【0025】
そして、気泡粒子生成部44は、気泡粒子の生成処理を行う(ステップS130)。気泡粒子の生成処理は後述される。気泡粒子が生成されるごとに、新たなデータが気泡粒子データ54に追加される。気泡粒子生成部44は、気泡粒子が消滅した場合には、気泡粒子データ54から該当データを削除する。
【0026】
気泡粒子が存在するか否かを判断する(ステップS140)。気泡粒子が存在しなかった場合(ステップS140のNO)、流体計算部42は、ステップS160へと進む。
【0027】
一方、気泡粒子が存在する場合(ステップS140のYES)、速度算出部45は、気泡粒子データ54で管理される気泡粒子ごとに速度を算出する(ステップS150)。速度を算出するためには、例えば離散要素法と流体解析の連成により速度を得る。
【0028】
その後、時間積分部46は、流体粒子データ53及び気泡粒子データ54を参照して粒子の速度に対して時間積分を行い、位置座標を更新した後、計算を1ステップ進める(ステップS160)。
【0029】
流体計算部42は、所定ステップ数に到達したか否かを判断する(ステップS170)。所定ステップ数に到達していない場合、流体計算部42は、ステップS120へと戻り、同様の処理を繰り返す。一方、所定ステップ数に到達している場合、流体計算部42は、この粒子シミュレーション処理を終了する。
【0030】
上述した粒子シミュレーション処理において、ステップS160の処理が実行されるごとに、表示制御部47が、表示した鋳型モデルに対して、流体粒子データ53と気泡粒子データ54とを参照して、粒子の挙動を表示装置15に表示してもよい。或いは、粒子シミュレーション処理の終了後に、ユーザの操作に応じて、シミュレーション時間ごとに粒子の挙動を表示してもよい。この場合には、計算の1ステップごとの流体粒子データ53と気泡粒子データ54とが記憶部130に記憶される。
【0031】
次に、図4図5、及び図6でデータ構造について説明する。図4は、格子データのデータ構成例を示す図である。図4に示す格子データ52は、ヘッダ部52aと、格子情報部52bとを有する。
【0032】
ヘッダ部52aは、計算空間に格子を定義するための基本情報を示し、格子間隔、格子原点座標、格子点個数等を示す領域である。格子間隔は、流体粒子間の相互作用の範囲で定められることが好ましく、一例として、影響半径hで定義される。相互作用とはシミュレーションにおける相互作用である。
【0033】
格子原点座標は、計算空間において、基準となる格子座標である。格子原点座標は、2次元又は3次元の座標で示される。この例では、3次元の(x0, y0, z0)で示す。格子点個数は、計算空間のx軸、y軸、及びz軸それぞれの方向における格子の最大個数を指定し、(nx, ny, nz)で示す。
【0034】
格子情報部52bは、格子ごとに格子座標を示す格子情報52cを記憶する領域である。各格子情報52cは、格子を特定する格子IDと、格子座標とを示す。格子IDは、格子原点座標から各軸方向における格子番号(i, j, k)で示される。
【0035】
格子原点座標からx軸方向に1番目の格子をi1で示し、y軸方向に1番目の格子をj1で示し、z軸方向に1番目の格子をk1で示す。最初の格子は、格子ID(i1, j1, k1)で特定される。x軸方向で2番目、y軸方向で3番目、及びz軸方向で4番目の格子は、格子ID(i2, j3, k4)で特定される。
【0036】
格子座標は、計算空間における格子の座標を示す。一例として、影響半径hを用いて格子の中心座標を格子座標とすれば良いが、この例に限定されない。
【0037】
【数1】
格子座標を一般化した場合、
上述した数1のように示される。格子情報部52bに、格子点個数の格子情報52cが記憶される。以下の説明において、格子座標(例えば、格子の中心座標)の点を「格子点」という。
【0038】
図5は、流体粒子データのデータ構造例を示す図である。図5に示す流体粒子データ53は、流体粒子リスト53aと流体粒子情報53bとを有する。流体粒子リスト53aは、計算対象となる全ての流体粒子を特定可能に一覧にしたテーブルに相当する。流体粒子ごとに一意に特定可能なIDであっても良いし、流体粒子情報53bが格納された領域へのポインタであってもよい。
【0039】
流体粒子情報53bは、各流体粒子iの位置座標、速度、密度、及び質量等の固有の情報を示す。位置座標は計算空間内での座標を示し、速度は加速度算出部43と時間積分部46とにより得られた値を示す。位置座標及び速度は、粒子シミュレーションのステップごとに更新され得る値である。密度及び質量は入力データ51から得られる設定値であればよい。
【0040】
図6は、気泡粒子データのデータ構成例及びデータ遷移例を示す図である。図6において、図6(A)から図6(F)は時系列のデータ遷移例を示している。図6(A)に示す気泡粒子データ54は、時刻Ta時の初期状態を示している。気泡粒子データ54は、空である。
【0041】
図6(B)示す気泡粒子データ54は、時刻Ta後の時刻Tbで、気泡粒子生成部44により、最初の気泡粒子が生成された状態を示している。気泡粒子リスト54aと気泡粒子情報54bとが生成される。図6(B)では、気泡粒子リスト54aに、気泡粒子のみが作成されている。同時刻に2以上の気泡粒子が追加されてもよい。
【0042】
気泡粒子リスト54aには、計算対象となる気泡粒子を一意に特定する識別情報が追加される。追加された識別情報に関連付けて気泡粒子情報54bが作成される。気泡粒子の識別情報は、気泡粒子情報54bが格納された領域へのポインタであってもよい。気泡粒子情報54bは、各気泡粒子の位置座標、速度等の固有の情報を示す。位置座標及び速度は、粒子シミュレーションのステップごとに更新され得る値である。
【0043】
図6(C)では、時刻Tb後の時刻Tcの気泡粒子データ54の状態を示している。時刻Tcまでには、気泡粒子リスト54aに、気泡粒子から気泡粒子まで追加されている。また、気泡粒子から気泡粒子のそれぞれの気泡粒子情報54bが生成されている。
【0044】
図6(D)では、時刻Tc後の時刻Tdの気泡粒子データ54の状態を示している。気泡粒子リスト54aに、更に気泡粒子10までが追加され、気泡粒子情報54bも生成されている。
【0045】
図6(A)の初期状態から図6(D)までで、気泡粒子が増えていく状態例が表されている。図6(E)及び図6(F)では、気泡粒子が減少していく状態例を表す。
【0046】
図6(E)では、時刻Td後の時刻Teの気泡粒子データ54の状態を示している。気泡粒子リスト54aには、気泡粒子、気泡粒子14、及び気泡粒子31の3つの粒子のみが残っている。この時点で溶融材料中(流体)に巻き込まれて残っている粒子は3つあり、それぞれの位置は、3つの気泡粒子情報54bに示される位置座標で特定可能である。
【0047】
時刻Te後の時刻Tfで粒子シミュレーションが終了すると、図6(F)に示すような気泡粒子データ54が記憶部130に記憶されていた場合、粒子シミュレーションの終了時には、気泡粒子リスト54aには、1つの気泡粒子14が残されている。この残された気泡粒子14は製品の欠陥となり得る。
【0048】
本実施例では、上述したように、巻き込まれた気泡粒子のみを計算対象として管理し、消失した気泡粒子は計算の対象外となり、気泡粒子データ54から削除される。この制御により、計算処理の負担を削減できる。
【0049】
また、粒子シミュレーションの終了時において、気泡粒子データ54内の気泡粒子リスト54aに存在している気泡粒子の各レコードから気泡粒子情報54bを特定して位置座標を取得することで、製品に含まれる欠陥の位置を概ね特定してもよい。このような機能は、表示制御部47が備えることが好ましい。
【0050】
表示制御部47は、鋳型モデルを用いた粒子シミュレーションで得られた製品形状を3次元で表示装置15に表示して、欠陥位置を視認可能に表示してもよい。又は、気泡粒子データ54に基づき、欠陥情報の一覧を表示装置15に表示してもよい。
【0051】
図7は、図3のステップS130における気泡粒子の生成処理を説明するための図である。図7より、気泡粒子生成部44は、格子データ52を参照して、格子情報を1つ選択し、選択した格子情報の格子座標の位置で内部判定を行う(ステップS131)。
【0052】
気泡粒子生成部44は、格子座標の位置(格子点)からの流体の粒度を算出する(ステップS132)。気泡粒子生成部44は、流体粒子データ53の各流体粒子の位置座標を参照して、格子座標(即ち、格子点)から影響範囲内に含まれる流体粒子の、位置座標、密度、質量等を用いて、格子点における粒度を算出する。粒度の算出については後述される。
【0053】
気泡粒子生成部44は、ステップS131の内部判定の結果と、ステップS132で得られた粒度とから、内部かつ粒度が一定値以下を満たすか否かを判定する(ステップS133)。「内部かつ粒度が一定値以下」は、「気泡生成条件」である。気泡生成条件における一定値とは、一例として、後述する数2において0.8以上の値を設定することが好ましく、0.85を一定値とすることがより好ましい。
【0054】
この気泡生成条件を満たす場合(ステップS133のYES)、気泡粒子生成部44は、気泡粒子があるか否かを判断する(ステップS134)。気泡粒子生成部44は、気泡粒子データ54に影響範囲内の位置座標を示す気泡粒子情報54bがあるか否かを判断する。気泡粒子情報54bがない場合、即ち、影響範囲内に気泡粒子がない場合(ステップS134のNO)、気泡粒子生成部44は、格子内部に気泡粒子を生成する(ステップS135)。具体的には、気泡粒子生成部44は、気泡粒子データ54において、気泡粒子リスト54aに新たな気泡粒子の識別情報を追加し、識別情報に関連付けて気泡粒子情報54bを作成する。一方、気泡粒子情報54bがある場合、即ち、影響範囲内に気泡粒子がある場合(ステップS134のYES)、気泡粒子生成部44は、ステップS136へと進む。これにより、一度気泡を発生した箇所において連続して気泡を発生し続けることを避けることができる。
【0055】
気泡粒子を生成後、気泡粒子生成部44は、全ての格子情報を選択したか否かを判断する(ステップS136)。未選択の格子情報が存在する場合(ステップS136のNO)、気泡粒子生成部44は、ステップS131へと戻り、上述同様の処理を繰り返し行う。一方、全ての格子情報を選択した場合(ステップS136のYES)、気泡粒子生成部44は、この気泡粒子の生成処理を終了する。
【0056】
一方、気泡生成条件を満たさない場合(ステップS133のNO)、気泡粒子生成部44は、全ての格子情報を選択したか否かを判断する(ステップS136)。未選択の格子情報が存在する場合(ステップS136のNO)、気泡粒子生成部44は、ステップS131へと戻り、上述同様の処理を繰り返し行う。一方、全ての格子情報を選択した場合(ステップS136のYES)、気泡粒子生成部44は、この気泡粒子の生成処理を終了する。
【0057】
上述した気泡粒子の生成処理には、一例として、生成した気泡粒子を削除する削除処理としてステップS135及びS136を含むが、このような処理内容に限定されない。生成した気泡粒子が流体の表面(図10(A))に到達したと判断したときに削除処理を行うようにしてもよい。次に、気泡粒子の生成例について図8で説明する。
【0058】
図8は、気泡粒子の生成例を説明するための図である。図8中では、複数の格子1aが設定された計算空間1内に流体粒子2の分布9を示している。分布9を例として、気泡粒子3の生成について説明する。流体粒子2の直径をdxで表す。格子1a、影響範囲3等のサイズは一例であり、図8に示されるサイズに限定されない。
【0059】
図8(A)では、内部であると判定された格子点6の例を示している。気泡粒子生成部44は、格子点6を中心とし直径dxの範囲に流体粒子2が存在しない場合に、内部判定を行う。格子点6の位置に流体粒子2が存在せず、かつ、計算空間1の複数の格子1aのうち、格子点6(格子座標)から影響範囲3の四方に流体粒子2が存在する格子1aが検出されると、内部であると判定される。
【0060】
図8(B)より、内部であると判定された格子1aにおいて、気泡粒子生成部44は、流体の粒度が一定値以下の場合に、格子点6の位置に気泡粒子7を生成する。
【0061】
更に、図7のステップS131で行われる内部判定について詳しく説明する。図9は、影響範囲の例を示す図である。図9より、影響範囲3は、格子点6が位置する格子座標xijkを中心として影響半径hの円内として定義される。影響半径hは、一例として、流体粒子2の直径dxの2~3倍程度に設定されるのが望ましい。以下、2次元の場合で説明するが、3次元であっても同様である。
【0062】
格子点6を中心として影響半径h内の影響範囲3をx、x、y、及びyの4領域に分割する。流体粒子2を含む影響範囲3において、4領域の少なくとも1領域で流体粒子2が存在しない場合を表面であると判断する。一方、全ての領域に近傍粒子が存在する場合を内部と判断する。
【0063】
図10は、内部判定例を説明するための図である。内部判定では、格子座標xijkの格子点6が表面であるのか、内部であるのかが判定される。図10において、複数の流体粒子2のうち、影響範囲3内に存在する流体粒子2を格子点6の近傍粒子という。流体粒子2が分布する格子を対象とする。内部判定では、影響範囲3内の流体粒子2の位置座標を用いて、4領域のいずれに属するかを判断する。
【0064】
図10(A)は、格子点6が表面であると判定される例を示している。図10(A)では、影響範囲3内に5つの流体粒子2が存在し、これらは格子点6の近傍粒子である。近傍粒子は、影響範囲3のx領域、x領域、及びy領域には存在するが、y領域には1つも存在しない。このように、格子点6の影響範囲3に近傍粒子が存在するものの、1以上の領域で近傍粒子が存在しない場合、格子点6は、流体粒子2の表面に位置すると判定する。言い換えると、図10(A)の場合、格子点6の位置は、流体粒子2に囲まれた内部ではないと判定される。
【0065】
図10(B)は、格子点6が内部であると判定される例を示している。図10(B)では、影響範囲3内に8つの流体粒子2が存在し、これらは格子点6の近傍粒子である。近傍粒子は、影響範囲3のx領域、x領域、y領域、及びy領域の全ての領域に存在する。このように、格子点6の影響範囲3の全ての領域に近傍粒子が存在する場合、格子点6は、流体粒子2の内部に位置すると判定する。言い換えると、図10(B)の場合、格子点6は、流体粒子2に囲まれた内部であると判定される。
【0066】
次に、図7のステップS132における粒度の算出方法について説明する。図11は、格子点が内部となる状態例を示している。図11より、格子点6が内部であると判定された場合の複数の流体粒子2を含む影響範囲3内の状態例が示されている。
【0067】
内部であると判定された格子点6に対して、粒度が求められる。粒度の定義式は、
【0068】
【数2】
で表される。ここで、カーネル関数Wは、
【0069】
【数3】
で表される。
【0070】
上述したように、本実施例では、空気粒子を空間全体に配置させることがないため、計算処理を削減することができる。内部判定と流体の粒度計算とにより、空気の巻き込みが発生する箇所を特定し、特定した位置に気泡粒子7を生成することができる。従って、気泡粒子7の生成にユーザの経験や知識を必要とせず、粒子シミュレーションを行うことができる。
【0071】
このように、本実施例によれば、巻き込みのない空気粒子の計算時間を削減し、効率的な粒子シミュレーションを実現する。また、ユーザによる操作は入力データ51の設定のみであるため、容易に粒子シミュレーションによる精度良い結果を得ることができる。
【0072】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【0073】
上述した実施例における、流体粒子データ53は液体粒子データの一例であり、時間積分部46は実行部の一例である。図7のS131は検出部の一例であり、図7のS132は算出部の一例である。
【0074】
上述した本実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する情報処理装置。
(付記2)
前記生成部は、
計算空間に配置した複数の格子点のそれぞれを中心として定めた空間から、前記液体粒子データに取り込まれた空間を検出する検出部と、
前記取り込まれた空間内の液体粒子の粒度を算出する算出部と、を更に有し、
算出された前記粒度が一定値以下である場合に、前記取り込まれた空間に前記気泡粒子データを生成する
ことを特徴とする付記1記載の情報処理装置。
(付記3)
前記空間は、液体粒子間の相互作用の範囲である
ことを特徴とする付記1又は2記載の情報処理装置。
(付記4)
前記検出部は、
前記空間を、空間軸のそれぞれに対応させて分割し、分割した各領域に対応付けられた前記液体粒子データが記憶部に存在するか否かを判定することで、前記取り込まれた空間を検出する
ことを特徴とする付記2記載の情報処理装置。
(付記5)
前記一定値は、0.8以上であることを特徴とする付記2記載の情報処理装置。
(付記6)
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成する生成部と、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う実行部と
を有する粒子シミュレータシステム。
(付記7)
流体の挙動を示す液体粒子データに取り込まれた空間に気泡粒子データを生成し、
前記液体粒子データと前記気泡粒子データとでシミュレーションを行う
処理をコンピュータが行う粒子シミュレータ方法。
【符号の説明】
【0075】
1 計算空間
2 流体粒子
3 影響範囲
6 格子点
7 気泡粒子
41 流体計算部
42 データ取得部
43 流体計算部
44 気泡粒子生成部
45 速度算出部
46 時間積分部
47 表示制御部
51 入力データ
52 格子データ
53 流体粒子データ
53a 流体粒子リスト
53b 流体粒子情報
54 気泡粒子データ
54a 気泡粒子リスト
54b 気泡粒子情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11