JP2003331208A - 流体シミュレーション装置、流体シミュレーション方法、プログラム - Google Patents

流体シミュレーション装置、流体シミュレーション方法、プログラム

Info

Publication number
JP2003331208A
JP2003331208A JP2002133485A JP2002133485A JP2003331208A JP 2003331208 A JP2003331208 A JP 2003331208A JP 2002133485 A JP2002133485 A JP 2002133485A JP 2002133485 A JP2002133485 A JP 2002133485A JP 2003331208 A JP2003331208 A JP 2003331208A
Authority
JP
Japan
Prior art keywords
fluid
particle
attribute
particles
calculation
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.)
Pending
Application number
JP2002133485A
Other languages
English (en)
Inventor
Hiroko Hayama
寛子 羽山
Atsushi Kunimatsu
敦 国松
Kazuhiro Hida
和浩 檜田
Takahiro Saito
敬弘 齋藤
Ken Tanaka
憲 田中
Ritsushi Takahashi
律視 高橋
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002133485A priority Critical patent/JP2003331208A/ja
Publication of JP2003331208A publication Critical patent/JP2003331208A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【課題】 流体の運動に伴って発生する飛沫や泡の振る
舞いをリアルに計算可能な流体シミュレーション装置を
提供する。 【解決手段】 流体計算部102で流体を計算し、その
結果を利用して粒子計算部103で粒子を発生させてそ
の運動を計算する。粒子には飛沫や泡といった属性と生
存期限をパラメータとして持たせ、粒子計算部103で
は属性に応じた運動の計算を行い、流体中に移動した飛
沫は泡に変化させ、泡に対しては常に流体表面に存在す
るように位置補正を行う。また、生存期限が切れた飛沫
や泡は消滅させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、流体の運動をシミ
ュレートするシミュレータに関する。
【0002】
【従来の技術】流体の運動を調べるために、流体の運動
方程式を用いて数値計算によるシミュレーションを行う
ことが多々ある。
【0003】流体が運動すると、流体の形状が変化する
とともに飛沫や泡が発生する。数値計算による流体の運
動のシミュレーションでもこれら飛沫や泡の発生を考慮
すれば、よりリアリティのあるシミュレーションを行う
ことができる。
【0004】従来、例えば”FOSTER,N.,AN
D FEDKIW,R 2001.Practical
Animation of Liquids.In
Proceedings of ACM SIGGRA
PH 2001,ACM Press/ACM SIG
GRAPH,E.Fiume,Ed.,Compute
r Graphics Proceedings,An
nual Conference Series,AC
M,23−30.”では、流体全体の運動方程式を用い
て計算を行い、一定の条件で流体の表面から飛沫を発生
させている。
【0005】しかし、この手法では流体の運動に伴って
発生する泡を考慮していないという問題がある。
【0006】泡を考慮した手法には、例えば”FOUR
NIER,A.,AND REEVES,W.T.19
86.A Simple Method of Oce
anWaves.In Computer Graph
ics(Proceedings of ACM SI
GGRAPH 86),20(4),ACM,75−8
4.”がある。この手法では、流体表面の運動方程式を
用いて計算を行い、一定の条件で流体の表面から飛沫や
泡を発生させている。
【0007】しかし、この手法では流体の表面の運動方
程式を利用しているため、流体全体の運動方程式を用い
るのに比べると精度が劣る。また、現実の流体の運動で
は、泡は、例えば水しぶきが水中に飛び込む時に泡が発
生するように、飛沫が流体に到達して発生することが多
いが、この手法では飛沫を介在させずに流体から直接発
生する泡だけしか考慮していないという問題がある。
【0008】
【発明が解決しようとする課題】従来の手法では飛沫は
流体に到達すると消滅もしくは流体に吸収されるように
扱っている。そのため、飛沫が流体に到達して発生する
泡を考慮しておらず、泡の発生が十分にシミュレートで
きていなかった。
【0009】そこで、本発明では流体の運動に伴う飛沫
及び泡の発生そして運動を考慮した流体シミュレーショ
ン方法、装置を提供することを目的とする。
【0010】
【課題を解決するための手段】上記課題を解決するため
本発明の流体シミュレーション装置は、外部から境界条
件、初期条件を含む諸条件の入力を受ける入力部と、前
記入力部が受けた諸条件をもとに流体の運動を計算する
流体計算部と、前記流体計算部の計算結果に基づいて、
前記流体から放出される前記流体の断片である粒子を発
生させるとともに、既に発生した粒子の運動を計算する
粒子計算部と、前記流体計算部と前記粒子計算部の計算
結果に基づいて流体及び粒子を描画した画像を生成する
可視化部とを備え、前記粒子計算部は、新たに発生させ
る粒子に属性を持たせ、粒子の運動は属性に応じた計算
を行って求め、粒子の運動の計算結果に応じて粒子の属
性を変化させることを特徴とする。
【0011】また、本発明の流体シミュレーション装置
は、前記粒子計算部は、新たに発生させる粒子に飛沫属
性あるいは泡属性を持たせ、粒子の現在の属性に応じた
運動方程式を用いて運動を計算し、運動の計算結果が所
定の条件を満たした飛沫属性の粒子を、泡属性に変更す
ることを特徴としても良い。
【0012】また、本発明の流体シミュレーション装置
は、前記粒子計算部は、飛沫属性でかつ流体内部に存在
する粒子の属性を、泡属性に変更することを特徴として
も良い。
【0013】また、本発明の流体シミュレーション装置
は、前記粒子計算部は、泡属性の粒子については、運動
の計算後に、流体表面に位置するように補正を行うこと
を特徴としても良い。
【0014】また、本発明の流体シミュレーション装置
は、前記粒子計算部は、泡属性の粒子が存在する位置に
おける流体量の傾きを利用して流体表面の方向を特定
し、当該泡属性の粒子が流体表面に存在するように位置
の補正を行うことを特徴としても良い。
【0015】また、本発明の流体シミュレーション装置
は、前記可視化部は、粒子発生後からの経過時間に応じ
て粒子の画像を変化させることを特徴としても良い。
【0016】また、本発明の流体シミュレーション装置
は、前記可視化部は、粒子の属性に応じて粒子の画像を
変化させることを特徴としても良い。
【0017】本発明の流体シミュレーション方法は、外
部から境界条件や初期条件を含む諸条件の入力を受ける
入力ステップと、前記諸条件をもとに流体の運動を計算
する流体計算ステップと、前記流体計算ステップの計算
結果に基づいて新たに流体の断片たる粒子を発生させ、
既に存在する粒子の運動を計算する粒子計算ステップ
と、前記流体計算ステップと前記粒子計算ステップの計
算結果に基づいて流体及び粒子を描画した画像を生成す
る可視化ステップとを備え、前記粒子計算ステップで
は、粒子の属性に応じた計算を行い、計算結果に応じて
粒子の属性を変化させることを特徴とする。
【0018】また、本発明の流体シミュレーション方法
は、前記粒子計算ステップでは、新たに発生させる粒子
に飛沫属性あるいは泡属性を持たせ、前記属性に応じた
運動方程式を用いて粒子の運動を計算し、運動の計算結
果が所定の条件を満たした飛沫属性の粒子を泡属性に変
更することを特徴としても良い。
【0019】また、本発明の流体シミュレーション方法
は、前記粒子計算ステップは、飛沫属性でかつ流体内部
に存在する粒子の属性を、泡属性に変更することを特徴
としても良い。
【0020】また、本発明の流体シミュレーション方法
は、前記粒子計算ステップでは、泡粒子の運動を計算し
た後に、泡属性の粒子が流体表面に位置するように補正
を行うことを特徴としても良い。
【0021】また、本発明の流体シミュレーション方法
は、前記粒子計算ステップでは、泡属性の粒子が存在す
る位置における流体量の傾きを利用して流体表面の方向
を特定し、当該泡属性の粒子が流体表面に存在するよう
に位置の補正を行うことを特徴としても良い。
【0022】また、本発明の流体シミュレーション方法
は、前記可視化ステップでは、粒子の属性に応じて粒子
の画像を変化させることを特徴としても良い。
【0023】本発明のプログラムは、コンピュータに、
外部から初期条件や境界条件を含む諸条件の入力を受け
る入力ステップと、前記諸条件をもとに流体の運動を計
算する流体計算ステップと、既に流体から放出された流
体の断片である粒子の運動を計算し、所定の条件を満た
した粒子の属性を変更するとともに粒子の属性に応じた
位置補正処理を行う粒子位置計算ステップと、前記流体
計算ステップの計算結果に基づいて新たに粒子を発生さ
せる粒子発生ステップと、粒子の属性と粒子の位置が所
定の条件を満たした粒子を消滅させる粒子消滅ステップ
と、流体及び粒子を描画した画像を生成する可視化ステ
ップと、画像を表示する表示ステップとを実行させる。
【0024】また、本発明のプログラムは、前記粒子発
生ステップでは、飛沫属性若しくは泡属性の粒子を発生
させることを特徴としても良い。
【0025】また、本発明のプログラムは、前記粒子位
置計算ステップでは、流体内部に存在する飛沫属性の粒
子を泡属性に変更することを特徴としても良い。
【0026】また、本発明のプログラムは、前記可視化
ステップでは、粒子の属性に応じて粒子の画像を変化さ
せることを特徴としても良い。
【0027】
【発明の実施の形態】 以下、図面を参照して本発明の
一実施形態について説明する。
【0028】(全体の構成)図1は本発明の一実施形態
の流体シミュレーションシステムのプログラムの構成を
説明する図である。本実施形態の流体シミュレーション
システムのプログラムは図11に示すような、中央演算
装置1101、磁気ディスク1102や光ディスク11
03などの記憶装置、入力装置1107及びこれの入力
を受ける入力受付部1104、メモリ1105、LCD
やCRT等の表示装置1108及びこれに画像を出力す
る画像出力部1106を備えたコンピュータで実行され
る。
【0029】本実施形態の流体シミュレーションシステ
ムは、例えば海のように波やうねりによって水からしぶ
きが発生する状態をシミュレートして画像を得るのに適
している。また、前述の水の波やうねりに加えて、木が
水に浮かんでいる状態や岩等の物体が水の流れを妨げる
障害物として存在するような状態を、木や岩を固定され
た或いは移動可能な剛体として扱ったシミュレーション
により画像を得るのにも適している。
【0030】以下、流体は水等の液体で、流体外部は空
気等の気体で満たされているという想定で説明を行う。
【0031】本実施形態の流体シミュレーションシステ
ムは、ユーザからシミュレーションを行うのに必要なデ
ータの入力を受ける入力部101と、入力されたデータ
に基づいて流体の運動を順次計算する流体計算部102
とを有する。
【0032】さらに本実施形態の流体シミュレーション
システムは、流体計算部102の計算結果に基づいて、
飛沫や泡(これらをまとめて粒子と呼ぶ)を発生させ、
発生した粒子の運動を表す数値データを順次計算する粒
子計算部103と、流体計算部102及び粒子計算部1
03の計算結果から画像データを生成する可視化部10
4と、画像をCRTやLCD等に表示する表示部107
とを有する。
【0033】可視化部104はさらに、流体の形状を表
す画像を生成する流体可視化部105と、粒子の分布を
表す画像を生成する粒子可視化部106とを有する。
【0034】(扱うデータ)ここでは本実施形態のシミ
ュレーションシステムのプログラム各部が扱い、メモリ
に記憶させるデータ(以下、共有データ)を説明する。
共有データはプログラム各部が自由に参照できる。
【0035】共有データには、ユーザからの入力データ
と、入力データを参照して流体の運動を計算した結果
と、計算結果から検出した流体表面の位置を含む。
【0036】また、共有データには、流体の運動の計算
結果及び流体表面の位置を参照して発生させた各粒子の
状態を表す情報と、粒子及び流体を描画した画像データ
を含む。
【0037】以下、本実施形態の共有データに含まれる
各データについて説明する。
【0038】入力データには、ユーザからシミュレーシ
ョンを行うのに必要な、流体の性質、初期条件、境界条
件、計算条件等が含まれる。ここで、流体の性質とは、
例えば流体の粘性や流体の密度等の情報であり、初期条
件とは流体の初期速度や初期の分布、シミュレーション
対象空間の範囲(例えば、水槽の中の流体の運動ならば
水槽の壁の位置や、前述のように剛体が存在する場合は
剛体の位置及び大きさ)等の情報である。
【0039】また、境界条件とは、流体の圧力及び流速
や、空気の流速(風速)や圧力などの条件である。そし
て、計算条件とは、空気抵抗の大きさや許容誤差やシミ
ュレーションの対象空間をどれくらいの大きさ格子で区
切って計算するかという情報である。
【0040】流体の運動の計算は、入力データを参照し
てシミュレーションの対象空間を格子で区切った1区画
であるセル毎に行う。計算結果はセル単位で生成され、
セル内部における位置、速度(流速)、流体量、剛体量
などの情報が含まれる。
【0041】ここで流体量は、セル内部に占める流体の
割合を表す量であるVOF(Volume Of Fl
uid)で表現する。VOF=1のセルはセル内部が流
体で満たされた状態を表し、VOF=0のセルはセル内
部に流体が全く存在しない(空気で満たされている)状
態を表す。VOFが0と1の間の中間値を取るセルは、
セル内部に当該中間値に対応する量の流体が存在してい
る(例えば、水と空気が混ざっている)状態を表す。
【0042】また剛体量は、セル内部に占める剛体の割
合を表す量であるVOS(Volume Of Sol
id)で表現する。VOS=1のセルはセル内部が剛体
で満たされた状態を表し、VOS=0のセルはセル内部
に剛体が全く存在しない状態を表す。VOSが0と1の
間の中間値を取るセルは、セル内部に当該中間値に対応
する量の剛体が存在していることを表す。
【0043】流体表面はVOFの値を用いて検出する。
VOFが後述する条件を満たした流体中の点を流体表面
と見做し、これらの点の位置をデータとする。
【0044】粒子の状態を表すデータは、粒子の座標、
粒子の速度、粒子の属性、生存期限、質量等を含む。
【0045】粒子の属性には、粒子発生直後に与えられ
るORIGIN属性、粒子が飛沫であることを表すSP
LASH属性、粒子が泡であることを表すFOAM属
性、粒子が消滅対象であることを表すVANISH属性
の4つを用いる。
【0046】本実施形態では、ORIGIN属性の粒子
はSPLASH属性の粒子と同じで飛沫であるものとす
るが、シミュレーションの性質に応じていきなり泡を発
生させたり、あるいはORIGIN属性をORIGIN
−SPLASH属性、ORIGIN−FOAM属性の2
つに分けて飛沫と泡の両方を発生させても構わない。飛
沫と泡の両方を発生させる場合は、ORIGIN属性を
属性データとしてでなく別のデータ(例えばORIGI
Nフラグ等)として扱っても良い。あるいは、ORIG
IN属性の粒子を流体中に発生させ、FOAM属性の粒
子と同じ運動方程式を適用して移動させて(ただし、後
述する補正は行わない)、流体外部に移動したもののみ
をSPLASH属性に変更させるようにしても構わな
い。
【0047】また、粒子には生存期限が与えられてお
り、生存期限が0になった粒子は消滅対象となる。
【0048】画像データには、流体と泡属性の粒子を描
画したデータと、飛沫属性の粒子を描画したデータと、
これらを合成したデータがある。
【0049】(流体計算部)流体計算部102では、初
期条件及び各セルのデータを参照して、セル毎にNav
ier−Stokes方程式に基づいて流体量や流速な
どの計算を行い、シミュレーション対象空間内の全ての
セルについて1ステップの計算を終えたら、流体表面を
検出し、セルのデータと流体表面に関するデータをメモ
リに記憶させる。
【0050】本実施形態では、VOF=0.5となる点
を検出してこれらを結んだ曲線(3次元シミュレーショ
ンならば曲面)を、流体表面として検出する。具体的な
検出方法の一例を挙げると、各セルのVOFをそのセル
の中心点における値と見做し、VOFの傾きから流体各
点のVOFを補間する方法が考えられる。尚、以後の処
理ではVOFが0.5より大きい場合は流体内部、小さ
い場合は流体外部(以後、気相と呼ぶ)と呼ぶ。
【0051】(粒子計算部)粒子計算部103は、流体
の運動に伴って既に発生した飛沫や泡などの粒子の運動
を入力データを参照して計算するとともに、流体計算部
102の計算結果を参照して新たに粒子を発生させる。
そして、既存の粒子については計算結果に基づいてメモ
リ上のデータを更新し、新規の粒子については粒子の情
報をメモリに記憶させる。
【0052】図2は本実施形態における粒子計算部10
3の構成を説明する図である。
【0053】粒子計算部103は粒子の運動方程式に基
づいて粒子の運動を計算する粒子位置計算部200と、
流体から新たな粒子を発生させる粒子生成部204と、
所定の消滅条件を満たした粒子を消滅させる粒子消滅部
205とを有する。
【0054】さらに粒子位置計算部200は、粒子の運
動方程式に基づいて各粒子の位置を計算して粒子の位置
データを更新する粒子位置更新部201と、更新後の粒
子の位置から粒子の属性を更新する粒子属性更新部20
2と、粒子位置補正部203とを有する。
【0055】(粒子位置計算部の処理)図3は粒子位置
計算部200における処理を説明するフローチャートで
ある。
【0056】粒子位置計算部200では、入力データを
参照して既に発生した粒子の運動を計算を行い、各粒子
のメモリ上のデータを更新する。
【0057】まず、まだ位置が計算されていない粒子が
存在するかをチェックする(ステップ301)。全ての
粒子について位置の計算が完了している場合は、粒子位
置計算部200における処理を終了する(ステップ30
2)。
【0058】位置の計算が済んでいない粒子が存在する
場合は、まず、粒子の位置を計算して位置や速度のパラ
メータを更新し(ステップ303)、粒子の生存期限を
1減らすとともに、位置、生存期限、属性に基づいて後
述するように属性の更新を行う(ステップ304)。更
新後の粒子の位置が剛体の内部である場合は、後述する
ようにして粒子の位置の補正を行う(ステップ30
5)。
【0059】さらに、粒子の属性を調べて(ステップ3
06)、属性がSPLASH若しくはVANISHの場
合には当該粒子については処理を終了し、ステップ30
1で他に計算すべき粒子が存在するかをチェックする。
属性が”FOAM”である場合には、当該粒子が流体表
面に存在するように位置の補正を行ってから(ステップ
307)、ステップ301を実行する。
【0060】尚、ステップ304とステップ305はど
ちらを先に実行しても良い。ステップ305を先に実行
する場合は、粒子位置計算部200の構成を次のように
変更する。
【0061】粒子位置更新部201の後段に粒子位置補
正部203を接続し、粒子属性更新部202は粒子位置
補正部203の後段かつ前段になるように接続する。そ
して、粒子位置更新部201による粒子の移動、粒子位
置補正部203による粒子の位置補正、粒子属性更新部
202による粒子の属性更新、粒子位置補正部203に
よる泡の位置補正の順に処理が行われるようにする。
【0062】(粒子の位置更新処理)各粒子は属性に応
じた運動方程式を適用して移動先の位置を計算する。
【0063】SPLASH属性及びORIGIN属性の
粒子、すなわち飛沫は発生地点における気相の速度を初
期速度として与えられ、その後の位置はこれらの式を用
いて算出する。
【0064】
【数1】
【0065】FOAM属性の粒子、すなわち泡に対する
重力の影響は無視できるほど微小であるので、これらの
式を用いて位置を算出する。
【0066】
【数2】
【0067】(粒子の属性更新処理)図4は前述のステ
ップ304の粒子の属性更新処理による属性変化を説明
する図である。この処理は粒子属性更新部202におい
て実行される。粒子属性更新部202は入力データ及び
メモリ上の各粒子の情報を参照して属性情報の変更の必
要性を判定し、変更が生じる粒子についてはメモリ上の
属性情報を更新する。
【0068】前述の通り、各粒子に付与される属性は4
つある。各粒子はこのうちの一つの属性が与えられ、こ
の属性は粒子の運動やステップ304の属性更新処理に
よって変化していく。
【0069】ORIGIN属性の粒子は、位置更新後に
流体中に存在する場合若しくはシミュレーション範囲外
に存在する場合にはVANISH属性になり、気相に存
在する場合はSPLASH属性になる。
【0070】SPLASH属性の粒子は、位置更新後に
流体中に存在する場合はFOAM属性になり、流体外に
存在する場合はSPLASH属性のままである。ただ
し、生存期限を1減らした際に0になった場合若しくは
位置更新後にシミュレーション範囲外に存在する場合に
はVANISH属性になる。
【0071】SPLASH属性からFOAM属性に変化
する際には、生存期限が新たに与えられる。この時、生
存期限を乱数値を利用して適宜分散させると、同時に発
生した泡が一斉に消滅しにくくなり、よりリアルなシミ
ュレーションが可能となる。
【0072】FOAM属性の粒子は、生存期限を1減ら
した際に0より大きい場合はFOAM属性のままであ
り、0になった場合若しくは位置更新後にシミュレーシ
ョン範囲外に存在する場合にはVANISH属性にな
る。
【0073】(粒子の位置補正処理)位置更新後に剛体
内に移動した粒子を剛体外に移動させるのが位置補正処
理を施す目的である。図5はステップ305の粒子の位
置補正処理の概要を説明する図である。位置補正処理は
粒子位置補正部203で実行される処理で、粒子位置補
正部203は粒子の位置を参照して、粒子の位置の補正
の必要性を判断し、必要な場合は位置の補正を行う。
【0074】剛体501は固定された或いは移動可能な
剛体である。そして、粒子502は位置更新前の粒子
で、粒子503は位置更新後の粒子502である。
【0075】粒子502が位置更新処理により粒子50
3の位置に移動する。粒子503の位置は剛体501内
部であるので、なるべく剛体外部に近い方向へ少し移動
させる。一回の移動で剛体外部に出ない場合は移動を繰
り返し、所定回数繰り返しても剛体外部へ出ない場合は
補正不能としてVANISH属性を付与する。
【0076】本実施形態では、VOS=0.5となる点
を検出してこれらを結んだ曲線(3次元シミュレーショ
ンならば曲面)を、剛体表面として検出する。具体的な
検出方法の一例を挙げると、各セルのVOSをそのセル
の中心点における値と見做し、VOSの傾きからシミュ
レーションの対象空間各点のVOSを補間する方法が考
えられる。尚、以後の処理ではVOSが0.5より大き
い場合は剛体内部、小さい場合は剛体外部と呼ぶ。
【0077】そして、VOSが0.5より大きいセルを
剛体内部と判定し、▽VOSの逆方向を「剛体外部に近
い方向」とする。さらに、一回の移動ではセル0.1個
分移動し、20回繰り返しても剛体外部へ出ない場合は
補正不能とする。ただし、剛体内外の判定基準となるV
OSの閾値、一回の移動距離、最大補正回数の値は適宜
変更して構わない。
【0078】尚、▽VOSはVOSの勾配で、2次元の
場合はこのように定義される。
【0079】
【数3】
【0080】図6は粒子の位置補正処理を説明するフロ
ーチャートである。
【0081】まず、粒子が剛体外部に存在するか、すな
わち粒子が存在する位置のVOSが0.5以下であるか
を調べる(ステップ601)。この条件を満たす場合は
補正不要であるから、処理を終了する(ステップ60
2)。
【0082】剛体内部に存在する場合は補正が必要であ
るから、補正回数を数えるカウンタを初期化して0をセ
ットするとともに、▽VOSを計算して補正時の移動方
向である補正方向を求める(ステップ603)。
【0083】そして、補正方向に所定距離としてセル
0.1個分だけ移動し(ステップ604)、剛体外部に
出たかを調べる(ステップ605)。
【0084】剛体外部に出た場合は補正成功であるので
処理を終了する(ステップ602)。
【0085】一方、補正後も剛体内部に存在する場合
は、補正回数カウンタの値が20未満であるかを調べて
(ステップ606)、20未満の場合再度補正を試みる
(ステップ604)。20以上の場合は補正失敗として
当該粒子にVANISH属性を付与し(ステップ60
7)、処理を終了する(ステップ602)。
【0086】(泡の位置補正処理)前述の通り、SPL
ASH属性の粒子である飛沫は流体中に移動するとFO
AM属性の粒子である泡になる。ここでいう泡は、流体
中の気泡の類ではなく流体表面に存在するものである。
流体中若しくは流体表面より上に存在するFOAM属性
の粒子を流体表面まで移動させるのがこの処理の目的で
ある。
【0087】図7はステップ307の泡の位置補正処理
の概要を説明する図である。
【0088】泡の位置補正処理も粒子位置補正部203
において行われる。粒子位置補正部203は前述の粒子
位置補正処理終了後、泡についてのみ、この泡の位置補
正処理を行う。粒子位置補正部203は粒子の情報と流
体の情報を参照し、泡について補正の必要性を判定し
て、補正が必要な泡についてのみ位置補正を行う。
【0089】流体700内にある粒子702、703は
いずれもFOAM属性の粒子で、位置更新後に流体中に
移動したものである。位置補正の対象となる泡は、各粒
子の存在地点から、その地点における▽VOFの逆方向
に存在する流体表面までの距離が上限以下の粒子であ
る。▽VOFはVOFの勾配であり、数3と同様に定義
される。
【0090】粒子702は水面までの距離が上限を超え
ているので補正不能としてVANISH属性が付与され
る。一方、粒子703は水面までの距離が上限以下なの
で、その粒子の存在地点における▽VOFの逆方向にあ
る水面に移動して補正する。
【0091】図8は泡の位置補正処理を説明するフロー
チャートである。
【0092】まず、補正しようとする粒子について、▽
VOFを計算して水面の方向を決定し、水面までの距離
を求める(ステップ801)。そして、求めた水面まで
の距離が上限を超えているかを調べる(ステップ80
2)。
【0093】水面までの距離が上限を超えた場合は補正
不能であるから、VANISH属性を付与し(ステップ
803)、処理を終了する(ステップ804)。
【0094】一方、水面までの距離が上限以下の場合
は、水面までの距離が所定の閾値より小さいか、すなわ
ち、水面までの距離が十分に近くて粒子が水面上に存在
するとみなせるかを調べる(ステップ805)。
【0095】所定の閾値以上の場合は補正が必要なの
で、粒子を水面まで移動させて(ステップ806)、処
理を終了する(ステップ804)。
【0096】所定の閾値より小さい場合は補正は不要な
ので(ステップ807)、そのまま処理を終了する(ス
テップ804)。
【0097】尚、本実施形態では▽VOFの逆方向を用
いて水面の方向を決めたが、これに限らず重力の逆方向
や、シミュレーションの対象空間のZ軸方向で水面の方
向を決定しても良い。
【0098】また、泡の補正を前述の粒子の位置補正と
同様に一回につき所定距離ずつ移動し、移動し過ぎた場
合は逆方向に所定距離の半分だけ戻すという補正を水面
との距離が所定の閾値以下あるいはVOFが所定の範囲
になるまで行っても良い。この場合、補正回数が所定回
数を超えた場合は補正不能とする。
【0099】(粒子発生部の処理)粒子発生部204で
は、流体計算部102で計算された流体表面のデータを
解析して、飛沫を発生させる。
【0100】本実施形態では、流体表面のデータから流
体表面の曲率κを次式を用いて計算し、計算した曲率κ
が所定の閾値を超えた場合に、曲率に応じた数の粒子を
発生させる。
【0101】
【数4】
【0102】粒子の発生当初の分布は、曲率が閾値を超
えた地点を中心とするガウス分布に従うようにする。ま
た、発生させた粒子に与える生存期限の値は、乱数を利
用してある程度分散させておき、粒子の生存期限が一斉
に切れるのを防ぐ。
【0103】尚、粒子の分布はガウス分布に限らず一様
分布など他の確率分布に従っても良いし、あるいは一定
のパターンに従って発生させても良い。
【0104】また、本実施形態では流体表面の曲率が所
定の閾値を超えた場合に粒子を発生させていたが、流体
の流速に応じて発生させる方法も考えられる。
【0105】尚、本実施形態では飛沫のみを発生させて
いるが、泡を発生させても構わない。
【0106】(粒子消滅部の処理)粒子消滅部205で
は、粒子計算部200でVANISH属性を付与された
粒子及び粒子発生部204で新たに発生した粒子のうち
所定の条件を満たした粒子を消滅させる。
【0107】図9は粒子消滅部205の処理を説明する
フローチャートである。
【0108】まず、粒子がVANISH属性かを調べ
(ステップ901)、VANISH属性ならばその粒子
を消滅させる(ステップ902)。
【0109】粒子がVANISH属性でなければ、粒子
の存在する位置がシミュレーションの対象空間内に存在
するかを調べ(ステップ903)、シミュレーションの
対象空間外に位置するならばその粒子を消滅させる(ス
テップ904)。
【0110】粒子がシミュレーションの対象空間内に存
在するならば、粒子がORIGIN属性かを調べ(ステ
ップ905)、ORIGIN属性でなければその粒子を
生存させる(ステップ906)。
【0111】粒子がORIGIN属性ならば、粒子の位
置が流体中かを調べ(ステップ907)、流体中に位置
するならばその粒子を消滅させる(ステップ902)。
【0112】粒子が流体中に存在しなければ、その粒子
を生存させる(ステップ906)。
【0113】粒子が生存する条件をまとめると、(1)
SPLASH属性若しくはFOAM属性の粒子について
は、シミュレーションの対象空間内に存在することが生
存条件であり、(2)ORIGIN属性の粒子について
は、シミュレーションの対象空間内に存在し、かつ、流
体外部に存在することが生存条件となる。
【0114】(可視化部・表示部)可視化部104は流
体及び粒子の運動の1ステップ毎の計算結果を表す画像
を順次生成して表示部107へ出力する。可視化部10
4は図1に示すように流体可視化部105と粒子可視化
部106とを有する。
【0115】可視化部104では図10に示すように、
流体1004を描画した画像1001と、飛沫1008
を描画した画像1002を生成して表示部107へ出力
する。
【0116】流体可視化部105は、流体計算部102
の計算結果に基づいて流体1002を画像1001に描
画してメモリに記憶させる。
【0117】粒子可視化部106は、粒子計算部103
の計算結果に基づいて飛沫1008と泡1006を描画
してメモリに記憶させる。
【0118】飛沫1008は流体1002外部を動くた
め、画像1001に描画すると処理速度が遅くなる。そ
こで、画像1002に描画して画像1001と合成す
る。飛沫1008で実際に描画するのは飛沫画像100
7の部分になるが、飛沫1008の大きさは質量に応じ
て変えるので、それに伴って飛沫画像1007も伸縮す
る。また、飛沫画像1007は飛沫の速度に応じて色や
形状を変えるようにする。
【0119】泡1006は流体1002の表面にしか存
在せず、一般に飛沫1008に比べるとゆっくりと動く
ので、画像1001に直接描画する。泡1006で実際
に描画するのは泡画像1005の部分になるが、泡10
06の大きさは生存期限の残りに応じて変えるので、そ
れに伴って泡画像1005も伸縮させる。また、周囲の
泡を数えて泡の密度を求めておき、泡画像1005は泡
の密度に比例させて色のRGB値を変化させる。これに
よりリアルな泡消失効果を表現できる。
【0120】粒子可視化部106はこのようにして得ら
れる2枚の画像1001と画像1002を表示部107
に出力する。
【0121】表示部107では、画像1002の背景色
を透明にして画像1001に重ね合わせて画像1003
を生成して、画像1003を前述の通りLCDやCRT
等に表示する。
【0122】
【発明の効果】以上本発明によれば、流体の運動とそれ
伴って発生する飛沫や泡等の粒子の運動のみならず、粒
子の属性変化もシミュレートすることができるので、リ
アルなシミュレーションを実行することができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係るシミュレーション
システムの構成を説明する図。
【図2】 図1の粒子計算部103の構成を説明する
図。
【図3】 図2の粒子位置計算部200における処理を
説明するフローチャート。
【図4】 図3の粒子の属性更新304を説明する図。
【図5】 図3の粒子の位置補正305の概要を説明す
る図。
【図6】 図3の粒子の位置補正305の処理を説明す
るフローチャート。
【図7】 図3の泡の位置補正306の概要を説明する
図。
【図8】 図3の泡の位置補正306の処理を説明する
フローチャート。
【図9】 図2の粒子消滅部205の処理を説明するフ
ローチャート。
【図10】 図1の可視化部104と表示部107で扱
う画像について説明する図。
【図11】 本発明の一実施形態に係るシミュレーショ
ンシステムのプログラムを動作させるためのコンピュー
タの構成を説明する図。
【符号の説明】
101 入力部 102 流体計算部 103 粒子計算部 104 可視化部 105 流体可視化部 106 粒子可視化部 107 表示部 200 粒子位置計算部 201 粒子位置更新部 202 粒子属性更新部 203 粒子位置補正部 204 粒子発生部 205 粒子消滅部 501 剛体 502、503 粒子 700 流体 701 流体表面 702、703 泡 1001、1002、1003 画像 1004 流体 1005 泡画像 1006 泡 1007 飛沫画像 1008 飛沫
───────────────────────────────────────────────────── フロントページの続き (72)発明者 檜田 和浩 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 齋藤 敬弘 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 田中 憲 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝マイクロエレクトロニクスセン ター内 (72)発明者 高橋 律視 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5B050 AA06 BA08 BA09 EA24 EA28 FA02 FA05

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】外部から境界条件、初期条件を含む諸条件
    の入力を受ける入力部と、前記入力部が受けた諸条件を
    もとに流体の運動を計算する流体計算部と、前記流体計
    算部の計算結果に基づいて、前記流体から放出される前
    記流体の断片である粒子を発生させるとともに、既に発
    生した粒子の運動を計算する粒子計算部と、前記流体計
    算部と前記粒子計算部の計算結果に基づいて流体及び粒
    子を描画した画像を生成する可視化部とを備え、前記粒
    子計算部は、新たに発生させる粒子に属性を持たせ、粒
    子の運動は属性に応じた計算を行って求め、粒子の運動
    の計算結果に応じて粒子の属性を変化させることを特徴
    とする流体シミュレーション装置。
  2. 【請求項2】前記粒子計算部は、新たに発生させる粒子
    に飛沫属性あるいは泡属性を持たせ、粒子の現在の属性
    に応じた運動方程式を用いて運動を計算し、運動の計算
    結果が所定の条件を満たした飛沫属性の粒子を、泡属性
    に変更することを特徴とする請求項1記載の流体シミュ
    レーション装置。
  3. 【請求項3】前記粒子計算部は、飛沫属性でかつ流体内
    部に存在する粒子の属性を、泡属性に変更することを特
    徴とする請求項2記載の流体シミュレーション装置。
  4. 【請求項4】前記粒子計算部は、泡属性の粒子について
    は、運動の計算後に、流体表面に位置するように補正を
    行うことを特徴とする請求項2乃至請求項3記載の流体
    シミュレーション装置。
  5. 【請求項5】前記粒子計算部は、泡属性の粒子が存在す
    る位置における流体量の傾きを利用して流体表面の方向
    を特定し、当該泡属性の粒子が流体表面に存在するよう
    に位置の補正を行うことを特徴とする請求項4記載の流
    体シミュレーション装置。
  6. 【請求項6】前記可視化部は、粒子発生後からの経過時
    間に応じて粒子の画像を変化させることを特徴とする請
    求項1乃至請求項5記載の流体シミュレーション装置。
  7. 【請求項7】前記可視化部は、粒子の属性に応じて粒子
    の画像を変化させることを特徴とする請求項1乃至請求
    項6記載の流体シミュレーション装置。
  8. 【請求項8】外部から境界条件や初期条件を含む諸条件
    の入力を受ける入力ステップと、前記諸条件をもとに流
    体の運動を計算する流体計算ステップと、前記流体計算
    ステップの計算結果に基づいて新たに流体の断片たる粒
    子を発生させ、既に存在する粒子の運動を計算する粒子
    計算ステップと、前記流体計算ステップと前記粒子計算
    ステップの計算結果に基づいて流体及び粒子を描画した
    画像を生成する可視化ステップとを備え、前記粒子計算
    ステップでは、粒子の属性に応じた計算を行い、計算結
    果に応じて粒子の属性を変化させることを特徴とする流
    体シミュレーション方法。
  9. 【請求項9】前記粒子計算ステップでは、新たに発生さ
    せる粒子に飛沫属性あるいは泡属性を持たせ、前記属性
    に応じた運動方程式を用いて粒子の運動を計算し、運動
    の計算結果が所定の条件を満たした飛沫属性の粒子を泡
    属性に変更することを特徴とする請求項8記載の流体シ
    ミュレーション方法。
  10. 【請求項10】前記粒子計算ステップは、飛沫属性でか
    つ流体内部に存在する粒子の属性を、泡属性に変更する
    ことを特徴とする請求項9記載の流体シミュレーション
    装置。
  11. 【請求項11】前記粒子計算ステップでは、泡粒子の運
    動を計算した後に、泡属性の粒子が流体表面に位置する
    ように補正を行うことを特徴とする請求項10記載の流
    体シミュレーション方法。
  12. 【請求項12】前記粒子計算ステップでは、泡属性の粒
    子が存在する位置における流体量の傾きを利用して流体
    表面の方向を特定し、当該泡属性の粒子が流体表面に存
    在するように位置の補正を行うことを特徴とする請求項
    11記載の流体シミュレーション方法。
  13. 【請求項13】前記可視化ステップでは、粒子の属性に
    応じて粒子の画像を変化させることを特徴とする請求項
    8乃至請求項12記載の流体シミュレーション方法。
  14. 【請求項14】コンピュータに、外部から初期条件や境
    界条件を含む諸条件の入力を受ける入力ステップと、前
    記諸条件をもとに流体の運動を計算する流体計算ステッ
    プと、既に流体から放出された流体の断片である粒子の
    運動を計算し、所定の条件を満たした粒子の属性を変更
    するとともに粒子の属性に応じた位置補正処理を行う粒
    子位置計算ステップと、前記流体計算ステップの計算結
    果に基づいて新たに粒子を発生させる粒子発生ステップ
    と、粒子の属性と粒子の位置が所定の条件を満たした粒
    子を消滅させる粒子消滅ステップと、流体及び粒子を描
    画した画像を生成する可視化ステップと、画像を表示す
    る表示ステップとを実行させるプログラム。
  15. 【請求項15】前記粒子発生ステップでは、飛沫属性若
    しくは泡属性の粒子を発生させることを特徴とする請求
    項14記載のプログラム。
  16. 【請求項16】前記粒子位置計算ステップでは、流体内
    部に存在する飛沫属性の粒子を泡属性に変更することを
    特徴とする請求項15記載のプログラム。
  17. 【請求項17】前記可視化ステップでは、粒子の属性に
    応じて粒子の画像を変化させることを特徴とする請求項
    14乃至請求項16記載のプログラム。
JP2002133485A 2002-05-09 2002-05-09 流体シミュレーション装置、流体シミュレーション方法、プログラム Pending JP2003331208A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002133485A JP2003331208A (ja) 2002-05-09 2002-05-09 流体シミュレーション装置、流体シミュレーション方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002133485A JP2003331208A (ja) 2002-05-09 2002-05-09 流体シミュレーション装置、流体シミュレーション方法、プログラム

Publications (1)

Publication Number Publication Date
JP2003331208A true JP2003331208A (ja) 2003-11-21

Family

ID=29696451

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002133485A Pending JP2003331208A (ja) 2002-05-09 2002-05-09 流体シミュレーション装置、流体シミュレーション方法、プログラム

Country Status (1)

Country Link
JP (1) JP2003331208A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100889601B1 (ko) * 2006-12-04 2009-03-20 한국전자통신연구원 물 파티클 데이터를 이용한 물결과 거품 표현 장치 및 방법
KR100898989B1 (ko) 2006-12-02 2009-05-25 한국전자통신연구원 물 표면의 포말 생성 및 표현 장치와 그 방법
JP2012159948A (ja) * 2011-01-31 2012-08-23 Internatl Business Mach Corp <Ibm> 粒子法における自由表面に位置する粒子の正確な判定
KR101671365B1 (ko) * 2015-05-11 2016-11-01 동서대학교 산학협력단 유사 액체화 포인트 군의 색상혼합 구현방법
CN111967082A (zh) * 2020-08-21 2020-11-20 中国海洋大学 一种波浪对结构物作用的模拟分析方法
WO2023103682A1 (zh) * 2021-12-10 2023-06-15 北京字跳网络技术有限公司 图像处理方法、装置、设备及介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100898989B1 (ko) 2006-12-02 2009-05-25 한국전자통신연구원 물 표면의 포말 생성 및 표현 장치와 그 방법
KR100889601B1 (ko) * 2006-12-04 2009-03-20 한국전자통신연구원 물 파티클 데이터를 이용한 물결과 거품 표현 장치 및 방법
JP2012159948A (ja) * 2011-01-31 2012-08-23 Internatl Business Mach Corp <Ibm> 粒子法における自由表面に位置する粒子の正確な判定
US8935135B2 (en) 2011-01-31 2015-01-13 International Business Machines Corporation Accurate determination of particle positioned on free surface in particle method
US8949086B2 (en) 2011-01-31 2015-02-03 International Business Machines Corporation Accurate determination of particle positioned on free surface in particle method
KR101671365B1 (ko) * 2015-05-11 2016-11-01 동서대학교 산학협력단 유사 액체화 포인트 군의 색상혼합 구현방법
CN111967082A (zh) * 2020-08-21 2020-11-20 中国海洋大学 一种波浪对结构物作用的模拟分析方法
CN111967082B (zh) * 2020-08-21 2023-12-26 中国海洋大学 一种波浪对结构物作用的模拟分析方法
WO2023103682A1 (zh) * 2021-12-10 2023-06-15 北京字跳网络技术有限公司 图像处理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
JP2008033940A (ja) ランタイム・コンピュータ・グラフィックス・アニメーション・エンジンにおけるメッシュ用変形データからスケルトン用アニメーション・データへの変換、スキニング、およびシェーディング
KR101525054B1 (ko) 3차원 메쉬 데이터 간략화 방법 및 장치
US9367956B2 (en) Windowed simulation in fluid flows
US20080319722A1 (en) Water Particle Manipulation
CN112652044A (zh) 粒子特效渲染方法、装置、设备及存储介质
KR101023996B1 (ko) 입자법에 기초한 유체 시뮬레이션의 표면 구축 방법, 및 그 프로그램을 저장한 기억 매체
JP2008530595A (ja) 地形モデル化のためのデジタル標高モデル(dem)を向上させる方法および装置
CN107220372B (zh) 一种三维地图线要素注记自动放置方法
CN103729555A (zh) 一种模拟血流与血管壁作用的方法和装置
US11704841B2 (en) Apparatus for estimating sameness of point cloud data and system for estimating sameness of point cloud data
JP2003331208A (ja) 流体シミュレーション装置、流体シミュレーション方法、プログラム
KR100898989B1 (ko) 물 표면의 포말 생성 및 표현 장치와 그 방법
US6670954B2 (en) Three-dimensional skeleton data error absorbing apparatus
JP3483967B2 (ja) 雲状現象可視化装置
CN115953541A (zh) 一种四叉树lod地形生成方法、装置、设备及存储介质
JP4914004B2 (ja) 変形した素材に関連する機構をモデリングするためのコンピュータ化された方法、ソフトウェアプログラムおよびシステム
KR20120110439A (ko) 거품 파티클 생성 장치 및 거품 파티클 생성 방법
JP2005078121A (ja) 流体の飛沫シミュレーション装置、方法、およびプログラム
KR100705417B1 (ko) 물체 표면의 젖음과 마름 표현 장치 및 방법
US6961062B2 (en) Image processing system, image processing method, computer program, recording medium, and semiconductor device
JP4144731B2 (ja) グラフィックス・モデルのためのレンダリング要素を動的に生成するための方法
CN113673140B (zh) 一种气压作用下的流体粒子实时交互视觉仿真方法
US9245379B2 (en) Continuum based model for position based dynamics
JPH08221471A (ja) メッシュ構造モデルの重なり回避表示方法及びシミュレーション装置
CN111369441B (zh) 文字处理方法、介质、设备及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050207

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050415

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070807

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071026