JP3932142B2 - 物理的プロセスをシミュレーションするコンピュータシステム - Google Patents
物理的プロセスをシミュレーションするコンピュータシステム Download PDFInfo
- Publication number
- JP3932142B2 JP3932142B2 JP52128997A JP52128997A JP3932142B2 JP 3932142 B2 JP3932142 B2 JP 3932142B2 JP 52128997 A JP52128997 A JP 52128997A JP 52128997 A JP52128997 A JP 52128997A JP 3932142 B2 JP3932142 B2 JP 3932142B2
- Authority
- JP
- Japan
- Prior art keywords
- elements
- voxel
- voxels
- interaction
- momentum
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/23—Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本発明は物理的プロセス(例えば流体の流れ)をシミュレーションするコンピュータシステムに関する。
高いレイノルズ数の流れのシミュレーションのための従来手法はナビエ・ストークス微分方程式の離散解を生成することにあり、その中で巨視的物理量(例えば密度、温度、流れの速度)を表わす変数について複数の離散空間位置の各々で高精度の浮動小数点算術演算は実行される。最高速で最も強力かつ有効なコンピュータが使用されているが、非常に制限のある結果及び不正確な結果しか達成されていない。運用時間を管理自在に維持するために、非常に粗いグリッド分解が使用され、この粗い分解でさえも、浮動小数点演算を連続して行う時に固有の累積されたラウンドオフエラー丸めエラーにより、解に許容しがたい誤差が存在する。
微分方程式の解法を、格子ガス(すなわち、セルラ)オートマトンとして周知のものに置換する試みが長期間に亘って行われたきた。この格子ガスオートマトンにおいて、ナビエ・ストークスの方程式を解くことによって提供される巨視的レベルのシミュレーションは、格子のサイト間を移動する質点に対する演算を行う微視的レベルのモデルによって置換される。目標は、長い間、正しい巨視的な結果(すなわち、ナビエ・ストークスの方程式によって指定されるような、密度や温度などの変化)を生成する質点の相互作用と運動との微視的レベルのモデルを見つけることであった。
従来の格子ガスシミュレーションは、各格子ガスサイトで限られた数の質点を仮定し、質点はビットのショートベクトルで表わされる。各ビットは、特定の方向に移動する質点を表わす。例えば、ベクトルの1ビットは、特定の方向に沿って移動する質点の有無(1にセットされているときは有り、0にセットされているときは無し)を表わす。かかるベクトルは、6ビットからなり、例えば、値(110000)は、2つの質点がX軸に沿って互いに反対方向に移動し、Y軸及びZ軸に沿って移動する質点が存在しないことを表わしている。衝突規則は、各サイトの質点間の衝突の様子を支配する(例えば、(110000)ベクトルは、(001100)ベクトルになることがあり、この時、X軸に沿って移動する2つの質点の間の衝突がY軸に沿って離れるように移動する2つの質点を生成したことを示す)。ビットの並べ替えを実行する検索表に状態ベクトルを供給する(例えば、(110000)を(001100)に変換する)ことによって、この規則は、実行される。次に、質点は、隣接するサイトに移動される(例えば、Y軸に沿って移動する2つの質点は、Y軸に沿って右左の隣接するサイトに移動される)。
モルビグ(Molvig)等は、改良された格子ガス法(lattice gas technique)を教示する。この格子ガス法において、他の者の間で、多数のビットが各格子サイトで状態ベクトルに加算されて(例えば、亜音速流に対しては54ビット)、質点エネルギと移動方向とに変化を与え、完全状態ベクトル(full state vector)の部分集合を含む衝突規則が使用される。モルビグ等のPCT/US91/04930号と、モルビグ等の「3D格子ガス流体の不連続物質の除去」不連続運動理論と格子ガス力学と流体力学の基礎とのワークショップの予稿集、ワールド科学出版株式会社、シンガポール(1989年)、モルビグ等の「実在流体力学の複数種類の格子ガスオートマトン」物理のスプリンジャ予稿集、第46巻、複合物理システムのセルラーオートマトン及びモデル化、スプリンジャ・バーラグ(Springer-Verlag)ベルリン、ハイデルベルグ(1990年)(全て引例として取り込まれている)。モルビグ等によって教示されたこれらの改良は、最初の実用的な格子ガスコンピュータシステムを作成した。モデル化された流体流れで初期の格子ガスモデルを不確実な物にした不連続人工物は、除去された。
チェン(Chen)等は、1993年12月10日に出願された米国特許出願第08/165,293号「物理的プロセスをシュミレートするコンピュータシステム」において、シミュレーション技術を教示し改良した(なお、この特許も引用として本発明に取りいれられている)。各格子サイトすなわちボクセル(voxel)(これらの用語は本書を通して用いられる)において、任意の運動量状態に単一の質点(例えば、特定のエネルギを有して特定の方向に移動する単一の質点)がせいぜい存在する格子ガスモデルの代わりに、システムは、各ボクセルで、複数の質点が複数の状態の各々で存在する(例えば、0〜255個の質点が特定の方向に移動する)多質点法(multi-particle technique)を使用した。状態ベクトルは、1組のビットである代わりに1組の整数であり(例えば、1組の8ビットバイトは0から255までの範囲の整数を提供する)、これら整数の各々は、ある状態にある質点の数を表わしている。例えば、各運動量状態で各方向に移動する単一の質点に限定する代わりに、システムは、各運動量状態で各方向に移動する複数の質点をモデル化する柔軟性を有する。
チェン等の整数状態ベクトルの使用は、物理的プロセスの巨視的なモデル化における柔軟性を増大せしめた。なぜならば、新しい整数状態ベクトルに作用する衝突規則においてより多くの変化が可能になったからである。例えば、所定数の質点と衝突して散乱せしめる一方で他の質点を衝突の無い状態で通過せしめる規則が成立された。モルビグ等の刊行物において改良が教示された後でも、整数状態ベクトルが、単一の質点格子ガス技術に未だ残る多数の問題にも解を提供することが見込まれている。例えば、多質点法は、高レイノルズ数の流体の流れの特徴であるいわゆるマクスウェル・ボルツマン統計を得る方法を提供する。初期のモルビグ等のシステムは、いわゆるフェルミ・ディラック統計を得て、このフェルミ・ディラック統計は、格子サイトがまばらに存在すれば、マクスウェル・ボルツマン統計に近似する。チェン等のシステムは、まばらに存在する格子を使用する必要性を回避し、故に、これに関係する大なる演算の不利益を回避した。
チェン等のシステムは、新しい「スリップ」法を使用して流体質点と固体物質との間の相互作用をシミュレーションする方法も提供する。この「スリップ」法は、固体物質の周囲の境界層の外周面に対してのみシミュレーションを拡張するが、境界面を抜けて固体物質の表面までには拡張しない。境界層の外周面では、衝突規則は、質点に接線方向の運動量を残すことを許容する表面と質点との間の相互作用を支配する。従来の「バウンスバック」法によって生じたように質点が到達した反対の接戦方向に表面から戻ってくる質点の代わりに、質点は、表面から反射されて、到達した同一の接線方向に継続することが許容される。
接線運動量を保存するために、チェン等のシステムは、固体表面の垂直に関して質点を鏡面反射させた。衝突する質点は、反対の表面だが垂直に関してほぼ等しい角度で去った。チェン等の多質点モデル(この中では、1つを越える質点は格子内点で同じ状態を持つことを許された)は、かかるスリップ衝突をモデル化する単純で効率的な方法を提供した。
チェン等は「スリップ」及び「バウンスバック」の衝突技術の両方の組合せを採用して、純粋な「バウンスバック」の非常に高い表面摩擦から「スリップ」によって提供される非常に低い表面摩擦までの表面摩擦範囲を備えた表面をシミュレーションした。質点の部分を変えることは「バウンスバック」規則で扱われ、そして残りは「スリップ」規則で扱われた。
チェン等の多質点モデルは、外向移動性の質点の平均の運動量が真の鏡面反射を緊密に近似する方向にあったことを、多数の外向移動性の状態の加重平均の使用が保証可能にすることによって、格子に関しての固体境界の任意の角度配向を包含した。例えば、3〜6の異なる質点状態(すなわち異なる方向及びエネルギー)を使用することができることがあり、各々は十分な外向移動性の質点で存在し、正味の外向移動性の運動量は表面と衝突する内向移動性の質点のグループの鏡面反射とほぼ等しかった。
チェン等は、エネルギー、質量及び固体境界に垂直な運動量を保存する技術について説明した。固体境界に垂直な運動量は、全外向移動性の垂直運動量と全内向移動性の垂直運動量を比較し、垂直の余剰又は不足量(すなわち、シミュレーションへ人為項を導入しない方法で構築されなければならない垂直運動量の量)を記録した「プッシュ/プル」技術(“pushing/pulling”technique)の使用によって保存された。その後、チェン等は、垂直余剰をゼロへの追い込むプッシュ/プル規則のセットを使用した。質点は、垂直運動量だけが影響されるように、あるアウト状態から他のアウト状態に移動された。
エネルギーの変化は、エネルギー余剰(又は不足量)の跡を追うためにエネルギーカウンタの合計及び余剰をゼロへの追い込むプッシュ/プル規則を使用した「冷却」(又は加熱)技術よって説明された。冷却規則は4状態、2源状態及び2目的地状態を指定した。2源状態は、2目的地状態と同じ運動量を有したが、2目的地状態のそれより高い結合したエネルギー合計を有していた。源状態の両方から目的地状態の両方へ質点を移動させることは、質量と運動量を保存する間にエネルギーを減少させた。
チェン等は、1つ以上の衝突規則の結果として蓄積したすべての余分質量を削除する「ダイエット」規則(“dieting”rules)を使用した。ダイエット規則は2源状態及び1目的地状態を指定した。2源状態は、1目的地状態と同じ結合したエネルギー及び運動量を有した。エネルギー及び運動量が保存されつつ、源状態の各々から質点を取り除き、1目的地状態のに質点を入れると、質量が縮小された。
発明の概要
本発明は、物理的プロセスをシミュレーションするコンピュータシステム中の流動性質点及び固体境界の間の相互作用をシミュレーションするための改善された技術を特徴とする。この改善技術では、境界表面が、ボクセル境界によって無制限であり、ボクセルの格子幾何学に比べて任意に適応され配向される面の集合として表わされる。改善技術は、格子の精度より著しく大きな精度で、連続的に変わる表面をシミュレーションすることを可能にする。
格子ガスは、連続体を重ねる格子構造において分布された1セットの個別の点として伝統的に描写される。格子ガスの質点は格子サイト間に伝播している点質量である。全システムは空間及び時間の両方で離散的であり、また、物理的意味は非整数空間及び時間的価値に割り当てられない。格子ガスのこのモデルは、構想を描き手段を提供することの単純化に効力を有しているが、連続的実物理学系として容易に解釈されない。
格子ガスの他の物理的描写は、質点によって占められたボクセルの体積の全体にわたって格子ガスの各質点に関連した質量が一様に分布されると仮定することによって形成できる。質点の伝播は、質点の速度によって示された距離及び方向における該分布された質量の移動として見られる。質点が隣接した流動性ボクセルの間に移動している場合、格子ガスのこの分布質量の見方は、格子ガスの従来の見方と等価である。しかしながら、格子ガスの分布質量の見方には格子ガスの質点が格子の構造に関して任意に配向される表面と相互に作用することを許容するという相当な長所がある。
一局面において、一般に、本発明は多ボクセルための状態ベクトルと、ボクセルの大きさ及び配向と独立に配向され大きさを適応させられる少なくとも1つの表面の表現とをメモリに格納することを特徴とする。状態ベクトルは、ボクセル内での多数の可能な運動量状態のうちの特定の運動量状態での要素に対応する多数のエントリを含んでいる。異なる運動量状態の要素間の相互作用をモデル化する相互作用演算は状態ベクトル上で実行され、また、面の近くの1以上ボクセルでの表面と要素との間の相互作用をモデル化する表面相互作用演算は、表面の表現上で実行される。最終的に、新ボクセルへの要素の移動を反射する移動演算は状態ベクトル上で実行される。表面がボクセルの配向及び大きさに関して任意に配向され大きさを適応され得ることによって、本発明は、ボクセルの大きさに関して増加した分解能で、シミュレーションすべき表面との相互作用をシミュレーション可能にする。これは、次には、流体の流れのような物理的プロセスの高度に正確なシミュレーションを可能にする。
本発明の好ましい実施例は、次の特徴の1つ以上を含んでいる。例えば、状態ベクトルのエントリは、ボクセルの特定の運動量状態において単位体積当たりの要素の密度を表わす。上記されるように、状態ベクトルのこの分布質量の見方には相当な長所がある。
さらに、チェン等によって説明されたように、状態ベクトルのエントリは整数値を有し得、また、相互作用演算は整数値を使用して、実行され得る。しかしながら、表面の面の任意の配向及び大きさの適応化を許容するために、表面相互作用演算は浮動小数点値のような実数を表示する値を使用して、実行され得る。このハイブリッド手法は、実数によって提示された構造の柔軟性と同時に得られる整数演算によって現された処理効率を許容する。シミュレーションされた要素が表面の面からボクセルに移動されるとともに、実数計算、正確な質量保存の法則、運動量及びエネルギーによる誘導された不正確性によってシステム精度が害されないことを保証することが、強化される。表面(そして表面の基礎となる領域によって占められる)によって交差するボクセルは、部分的ボクセルとして見られる。
表面は、ボクセルの大きさ及び配向と独立に配向され大きさが適応されかつ、組合せでは、少なくとも1つの表面を表わす面の集合として表わされ得る。この場合、表面相互作用演算は、面の近くの少なくとも1つのボクセルの面及び要素の間の相互作用をモデル化する。要素は、流体の質点を表わすし、また、面は、流体がオーバーフローで流れる少なくとも1つの表面を表わすことができる。
各面については、表面相互作用演算は、面と相互に作用する1以上ボクセルに第1セットから要素を集めること、集められた要素と面との間の相互作用をモデル化して表面相互作用要素のセットを生成すること、そして、面と相互に作用する1以上ボクセルの第2セットへ表面相互作用要素を分散することを、含んでいる。典型的に、表面相互作用演算は、要素がボクセルからボクセルに移動される演算の構成要素として生じる。収集ステップ及び分散ステップは、面の任意の配向を説明する。これは、モデル化するステップがその配向に考慮せずに実行されることを可能にする。典型的に、ボクセルの第1のセットはボクセルの第2のセットと同一である。
ボクセルの部分が1つ以上の面又はそれの部分によって占められる場合、任意の面(又は、材料は面の基礎となっている)によって占められてないボクセルの部分を示す因子は、面のための状態ベクトルで保存される。この因子は、ボクセルが占められる程度に対するそれ以上の考慮なしに占められたボクセル上で演算が実行されることを可能にする。例えば、ボクセルから要素を集める場合、ボクセルのための因子は考慮され得る。
特定の運動量状態のために収集ステップで得られた要素は、運動量状態の速度の反対の方向において面から投影された領域を占める要素であると確認され得る。従って、ボクセルの第1のセットは、要素が集められた運動量状態の速度を表わすベクトルを備えた面に関する垂直方向を表わすベクトルのベクトル内積によって定義された領域の少なくとも1つの部分を重複する1以上ボクセルを含んでいる。特に、ボクセルの第1のセットは、面から投影されかつ面の表面面積を掛けたベクトル内積と等しい体積を有した領域に部分的に重複するボクセルをすべて含んでいる。
収集ステップで得られた要素は、さらに他の1つ以上の面から分散した要素を含んでいる。表面が内部角のような非凸面特徴を含んでいる場合、面から投影された領域は別の面によって部分的に占められ得る。この状況を説明するために、要素は、さらに適切に配向した面から集められる。
典型的に、表面相互作用要素のセットが1つ以上の境界条件を満たすように、集められた要素と面との間の相互作用はモデル化される。境界条件は接線運動量条件を含んでいる。面によって表わされる表面が表面摩擦を有していない場合、面の接線である集められた要素の結合した運動量が面の接線である表面相互作用要素の結合した運動量と等しい時に、接線運動量条件は満たされる。表面が摩擦を含んでいる場合、集められた要素の結合した接線運動量と表面相互作用要素の結合した接線運動量との間の差が、表面の表面摩擦の程度と関係がある時に、接線運動量条件は満たされる(例えば、表面が完全に滑らないすなわち非スリップであるとき、表面相互作用要素の結合した接線運動量はゼロである)。
境界条件は、面に垂直な集められた要素の結合した運動量と面に垂直な表面相互作用要素との間の差がボクセルの第1のセットの1以上ボクセルによって定義された領域の圧力と等しいときに満たされる垂直運動量条件を、さらに含んでいる。
境界条件は、さらに境界で質量とエネルギーの保存の法則を要求する。これらの条件は、集められた要素の結合質量が表面相互作用要素の結合質量と等しく、また、集められた要素の結合したエネルギーが表面相互作用要素の結合したエネルギーと等しいときに、満たされる。
状態ベクトルが特定の運動量状態を表示する整数を含みかつ、表面相互作用演算が実数を表示する値を使用して実行される場合、表面相互作用要素がボクセルに分散するときに、状態ベクトルの整数値がオーバーフロー(overflow)又はアンダーフロー(underflow)しないことを保証するために、注意しなければならない。この目的のために、オーバーフロー又はアンダーフローを回避するのに必要な場合は常に、ボクセルの大部分、運動量及びエネルギーを保存する手続きが使用される。
別の局面において、一般に、本発明は、多数のボクセルのための状態ベクトルをメモリに保存格納することによって物理的プロセスをシミュレーションし、状態ベクトルはボクセルにおける多数の可能な運動量状態の特定の運動量状態に対応するエントリを含んでいることを特徴とする。その後、演算は状態ベクトル上で実行され、異なる運動量状態の要素とボクセルに関する要素の移動との間の相互作用をモデル化し、浮動小数点数を使用して演算動作のうちの少なくともいくつかが実行され、また整数を使用して演算のうちのいくつかが実行される。浮動小数点と整数の値の間の推移は、質量とエネルギーのような物理的プロセスの物理的特性を保存するような方法で作られる。状態ベクトルのエントリは特定の運動量状態で単位体積当たりの要素の密度を表わす整数である。さらに、ボクセルの大きさ及び配向と独立に配向され適応させられる少なくとも1つの表面の表現はメモリに格納され得、浮動小数点数を使用して実行された演算は表面との要素の相互作用をモデル化する演算である。
米国特許出願第08/409,685号出願日1995年3月23日、米国特許出願第08/255,409号出願日1994年6月8日、米国特許出願第08/030,573号出願日1993年3月12日の現米国特許第5,377,129号、PCT出願PCT/US91/04930号出願日1991年7月12日、米国特許出願第07/812,881号出願日1991年12月20日、そして米国特許出願第07/555,754号出願日1990年7月12日の開示はすべて引用として組込まれる。
本発明の他の特徴及び利点は、好ましい実施例の次の詳細な説明から、及びクレームから明白である。
【図面の簡単な説明】
図1は、物理的プロセスシミュレーションシステムによって行われる手続きの流れ図である。
図2は、マイクロブロックの斜視図である。
図3A及び3Bは、図1のシステムによって使用される格子構造を示す線図である。
図4及び5は、可変分解技術を示す線図である。
図6は、表面の面によって影響を受けた領域を示す線図である。
図7は、ボクセルから表面へ質点の移動を示す線図である。
図8は、表面から表面へ質点の移動を示す線図である。
図9は、表面力学を実行する手続きの流れ図である。
図10は、異なる大きさのボクセルの間の界面を示す線図である。
図11は、可変分解条件下の面を備えた相互作用をシミュレーションするための手続きの流れ図である。
図12は、物理的プロセスシミュレーションシステムの機能的単位のブロック図である。
図13は、図12のシステムのマイクロ力学単位のブロック図である。
図14は、図13のマイクロ力学単位の単一のボクセルデータ経路のブロック図である。
好ましい実施例の説明
図1を参照して、物理的プロセスシミュレーションシステムは、流体の流れのような物理的プロセスをシミュレーションする手続き100にしたがって作動する。シミュレーションに先立って、シミュレーション空間はボクセルの集合としてモデル化される(ステップ102)。典型的に、シミュレーション空間はコンピュータ補助設計(CAD)プログラムを使用して、生成される。例えば、風洞中で位置した自動車を描くためにCADプログラムを使用することができる。その後、CADプログラムによって生成されたデータは、適切な分解能がある格子構造を加えて、かつシミュレーション空間内の対象物及び表面を考慮して処理される。
各格子サイトすなわちボクセルは、亜音速の単一種シミュレーションのために54の状態を含んでいる。状態の数は遷音速の流れ又は多数種シミュレーションのために増加される。
格子の分解はシミュレーションされているシステムのレイノルズ数に基づいて、選択されている。レイノルズ数は、流れの粘性(v)、流れ中の対象物の特有の長さ(L)、及び流れの特有の速度(u)と関係がある。
Re=uL/v
対象物の特有の長さは、対象物の大きい基準の特徴(large scale features)を表わす。例えば、自動車のまわりの流れがシミュレーションされた場合、自動車の高さは特有の長さであると考えられ得る。対象(例えば自動車のサイドミラー)の小さな領域のまわりの流れが、興味対象である場合、シミュレーションの分解は増加させられ得、又は、増加した分解のエリアは興味対象領域の近くで使用され得る。ボクセルの次元は格子増加の分解度につれて減少する。
この本書では、状態空間が、Ni(x,t)として表わされ、それの中で、Niは、時間tで3次元のベクトルxによって表示された格子サイトでの状態i(すなわち状態iの質点の密度)で単位体積当たり要素すなわち質点の数を表わす。既知の時間増分について、質点の数は単にNi(x)という。格子サイトの全状態の状態表現の組合せは、N(x)として表示される。
状態の数は、各エネルギー準位内の可能な速度ベクトルの数によって決定される。速度ベクトルは4次元の空間x、y、z及びwにおける整数線形速度から成る。4次元(w)は3次元空間に戻して投影され、3次元格子中の実際の速度を示さない。亜音速流については、iが0〜53の範囲で変動する。
各状態は特定のエネルギー準位で異なる速度ベクトルを表わす(すなわちエネルギー準位0又は1又は2)。各状態の速度は、4次元の各々においてその「速度」で以下のように示される。
ci=(cx,cy,cz,cw)
エネルギー準位ゼロ状態は、任意の次元で移動していない止められた質点を表わし、すなわち、cstopped=(0,0,0,0)である。エネルギー準位1状態は、4次元のうちの2つで+/−1速度、及び他の2次元で0速度を有している質点を表わす。エネルギー準位2状態は、すべての4次元で+/−1速度、又は4次元のうちの1つで+/−2速度及び他の3次元で0速度のいずれかを有している質点を表わす。
3つのエネルギー準位の可能な順列の組み合わせのすべての生成は、可能な49状態(1エネルギー0状態、24エネルギー1状態、24エネルギー2状態)の合計を与える。しかしながら、亜音速流状態空間は、49の代わりに54の状態カウントの合計を与えて、一つに対立するものとしての6つの停止状態の合計を維持する。
各ボクセル(すなわち各格子サイト)は状態ベクトルによって表わされる。状態ベクトルは、完全にボクセルの状態を定義しかつ54の多ビットエントリを含み、その各々は整数値に対応する。54のエントリは6休息状態、第1のエネルギー準位での24方向ベクトル及び第2のエネルギー準位での24方向ベクトルに相当する。6休息状態は休息「スロット」の十分な数があることを保証するために使用される。もちろん、49のエントリ実施例中の休息状態に対応するエントリのビットの数を増加させることによってこの同じ結果を達成することができる。多ビットエントリの使用によって、システムは、ボクセル状態を定義するために単一ビットエントリを使用したシステム上の本質的に改善された性能を提示する。特に、フェルミ・ディラック統計を単に生成できる単一ビットシステムと異なり(それらは複数の適用に適さない)、システムは、達成された平衡状態ベクトルのためのマクスウェル・ボルツマン統計を生成できる。
効率を処理するために、ボクセルは、マイクロブロックと呼ばれる2x2x2体積でグループ化される。マイクロブロックはデータ構造に関連したオーバヘッドを最小限にすると同様にボクセルの並列処理を最適化するために組織される。マイクロブロック中のボクセルのための速記表記法はNi(n)として定義され、その中でnはマイクロブロックとnε{0,1,2,‥‥7}以内の格子サイトの相対的位置を表わす。マイクロブロックは図2で示される。
図3A及び3Bにおいて、表面S(図3A)は面の集合Fαとしてシミュレーション空間(図3B)で表わされる。
S={Fα}
式中、αは特定の面を数えあげる指標である。面は、ボクセル境界に制限されないが、面が比較的少数のボクセルに影響するように、典型的に、面に隣接しているボクセルの大きさのオーダー又はそれよりわずかに小さな大きさになされる。特性は表面力学を実行する目的で面に割り当てられる。特に、各面Fαは、単位垂直すなわち法線(nα)、表面面積(Aα)、中心位置(xα)及び面の表面の動的特性について記述する面分布関数(Ni(α))を有している。
図4において、分解能の異なるレベルは処理効率を改善するためにシミュレーション空間の異なる領域で使用され得る。典型的に、対象物155のまわりの領域150は最多の興味対象であり、したがって最も高い解像度でシミュレーションされる。粘性の影響が対象からの距離とともに減少するので、分解能のレベル(すなわち、拡張したボクセル体積)を減少させることは対象物155からの距離を増加させることで離間される領域160,165をシミュレーションするために使用される。同様に、図5で示されるように、分解能の低いレベルは対象物175のそれほど著しくない特徴のまわりの領域170をシミュレーションするために使用され得る一方で、分解能の最も高いレベルは、対象物175の最上位の特徴(例えば主要な表面及び引きずる表面)のまわりの領域180をシミュレーションするために使用される。外にある領域185は分解能及び最大のボクセルの最低のレベルを使用して、シミュレーションされる。異なって配向されたボクセルの間の相互作用を処理する技術はモルビグ等による米国特許第5,377,129号のコラム18第58行〜コラム28第21行に開示され、それは参照によってここに組込まれる。異なった大きさになされたボクセルと表面の面との間の相互作用を処理するための技術は、下に議論される。
図1を再び参照すると、一度シミュレーション空間がモデル化され(ステップ102)、1つ以上の面によって作用されたボクセルは識別される(ステップ104)。ボクセルは複数の方法で面によって影響される。最初に、面によって交差するボクセルは、これらのボクセルの各々が交差していないボクセルに関する縮小された体積を有している点で、影響される。これは、面及び面によって表わされる表面の基礎をなす材料がボクセルの部分を占めるので、生じる。断片的因子Pf(X)は、面(すなわち流れがシミュレーションされている流体又は他の材料によって占められる部分)に影響されないボクセルの部分を示す。交差していないボクセルについては、Pf(X)が1に等しい。
質点を面に移動するか又は面から質点を受け取ることにより1つ以上の面と相互に作用するボクセルは、面によって影響を受けたボクセルであるとも同定される。面によって交差するボクセルすべては、面から質点を受け取る少なくとも1状態及び質点を面に移動する少なくとも1状態を含む。ほとんどの場合、追加のボクセルはさらにかかる状態を含む。
ゼロでない速度ベクトルciを有している各状態iのために図6を参照すると、面Fαは質点を平行六面体Giαによって定義された領域から受け取るか、又は質点を当該領域へ移動せしめる。平行六面体Giαは、速度ベクトルci及び面の単位法線nαのベクトル内積(|ci・nα|)の大きさによって定義された高さを有し、さらに面の表面面積Aαによって定義される底辺を有するが、その結果、平行六面体Giαの体積Viαは次式と等しくなる。
Viα=|ci・nα|Aα
状態の速度ベクトルが面に向けられたとき(ci・nα<0)、面Fαは質点を体積Viαから受け取り、状態の速度ベクトルが面から遠ざけて向けられる場合(ci・nα>0)、質点を領域へ移す。この表現は、以下に議論されるように、別の面が平行六面体Giαの部分を占める場合(内部の角のような非凸面特徴の近くで生じることができる条件)、修正されなければならない。
面Fαの平行六面体Giαは、多数のボクセルの部分又はすべてに重複する。ボクセル又はその部分の数は、ボクセルの大きさに関する面の大きさ、状態のエネルギー、及び格子構造に関する面の配向に依存する。影響を受けたボクセルの数は面の大きさで増加する。従って、面の大きさは、上記のように、面の近くで位置したボクセルの大きさのオーダー又はそれより小さくなるように典型的に選択されている。
平行六面体Giαによって重複されたボクセルの部分N(x)は、Viα(x)として定義される。この項目を用いて、ボクセルN(x)及び面Fαの間に移動する状態i質点の数は、ボクセルと重複領域の体積を掛けたボクセル中の状態i質点の密度と等しい。
Γiα(x)=Ni(x)Viα(x)
平行六面体Giαが1つ以上の面によって交差する場合、下記条件は真である。
式中、第1項の合計がGiαよって重複されたすべてのボクセルを説明しかつ第2項がGiαと交差するすべての面を説明する。平行六面体Giαが別の面によって交差しなかったとき、この表現は次式に減少される。
一度1つ以上の面によって影響されるボクセルが同定されれば(ステップ104)、タイマはシミュレーションを始めるために初期化される(ステップ106)。シミュレーションの各時間増分中に、ボクセルからボクセルまでの質点の移動は、表面の面を備えた質点の相互作用を説明する移流段階(ステップ108〜116)によってシミュレーションされる。次に、衝突段階(ステップ118)は、各ボクセルの内の質点の相互作用をシミュレーションする。その後、タイマはインクリメントされる(ステップ120)。シミュレーションが完了したことをインクリメントされたタイマが示さない場合(ステップ122)、移流と衝突の段階(ステップ108〜120)が繰り返される。シミュレーションが完了したことをインクリメントされたタイマが示す場合(ステップ122)、シミュレーションの結果は格納されかつ又は表示される(ステップ124)。
表面との相互作用を正確にシミュレーションするために、各面は4つの境界条件を満たさなければならない。最初に、面によって受け取られた質点の結合した大部分は、面によって移動された質点の結合した大部分と等しくなければならない(すなわち、面への正味の質量流束は0と等しくなければならない)。次に、面によって受け取られた質点の結合したエネルギーは、面によって移動された質点の結合したエネルギーと等しくなければならない(すなわち、面への正味のエネルギー流束は0と等しくなければならない)。これらの2つの条件は、各エネルギー準位における正味の質量流束(すなわちエネルギー準位1及び2)が0に等しいことを要求することによって、満たすことができる。
他の2つの境界条件は、面と相互に作用する質点の正味運動量と関係がある。表面摩擦の無い表面については、ここにスリップ表面と呼び、正味の接線運動量流束が0と等しくなければならないし、また、正味の垂直運動量流束は面で局所的圧力と等しくなければならない。したがって、面の法線nαに垂直である受け取った運動量及び移動された結合した運動量の構成要素(すなわち接線の構成要素)は、等しくなければならない一方、面の法線nαと平行である結合した受け取った運動量及び移動された運動量の構成要素間の差分(すなわち法線構成要素)は面において局所的圧力と等しくなければならない。非スリップ表面については、表面摩擦は、摩擦量と関係のある因子により面によって受け取られた質点の結合した接線運動量に関する面によって移動された質点の結合した接線運動量を、縮小する。
質点及び表面間の相互作用のシミュレーションの第1ステップとして、質点はボクセルから集められ、面に供給される(ステップ108)。上記から気づくように、ボクセルN(x)と面Fαとの間に移動する状態i質点の数は、次式である。
Γiα(x)=Ni(x)Viα(x)
これから、面Fαに向けられた各状態iについては(ci・nα<0)、ボクセルによって面Fαに供給される質点の数は、次式である。
Viα(x)が0でない値を有しているボクセルだけが合計されなければならない。上記したように、面の大きさは、Viα(x)がボクセルの小さな数だけに対する0でない値を持つように、選択される。Viα(x)及びPf(x)が非整数値を持つことがあるので、Γα(x)は格納され実数として処理される。
次に、質点は面(ステップ110)の間で移動される。面Fαの内向移動性の状態(ci・nα<0)のための平行六面体Giαが別の面Fβによって交差される場合、面Fαによって受け取られた状態i質点の部分は、面Fβから来る。特に、面Fαは、前の時間増分中に面Fβによって生じた状態i質点の部分を受け取る。この関係は図8で示され、ここで、面Fβによって交差する平行六面体Giαの部分800は、面Fαによって交差する平行六面体Giβの部分805と等しい。上記のように、交差した部分はViα(α)として表示される。この項目を使用して、面Fβ及び面Fα間にて移動する状態i質点の数は次式のように記載できる。
Γiα(β)=Γi(β)Viα(x)/Viα
式中、Γi(β)が前の時間増分中に面Fβによって生じた状態i質点の基準である。これから、面Fαに向けられた各状態iについては(ci・nα<0)、他方の面によって面Fαに供給される質点の数は、次式であり、
また、面の中への状態i質点の流束の合計は、次式である。
面分布関数とも呼ばれる面のための状態ベクトルN(α)は、ボクセル状態ベクトルの54のエントリに対応する54のエントリを有している。面分布関数N(α)の入力状態は、ci・nα<0のために、体積Viαで割られた状態へ質点の流束と等しくなされる。
Ni(α)=ΓiIN(α)/Viα
面分布関数は、面からの出力流束を生成するためのシミュレーションツールであり、実際の質点を必ずしも表現しない。正確な出力流束を生成するために、値は分布関数の他方の状態に割り当てられる。外部の状態は、内部の状態を配置するために上述された技術を使用して、ci・nα≧0のために、配置される。
Ni(α)=ΓiOTHER(α)/Viα
式中、ΓiOTHER(α)はΓiIN(α)を生成するために上記した技術を使用して、決定される。(もちろん、内向移動性の状態(ci・nα<0)に技術を適用する代わりに、技術は、他の状態(ci・nα≧0)のために今適用される)。他の手法では、ΓiOTHER(α)は、前の時間ステップからΓiOUT(α)の値を使用することによって、次式であるように生成している。
ΓiOTHER(α,t)=ΓiOUT(α,t−1)
平行状態(ci・nα=0)に対して、Viα及びViα(x)の両方はゼロである。Ni(α)の表現では、Viα(x)が分子に現われ(ΓiOTHER(α)の表現から)、また、Viαは分母に現われる(Ni(α)の表現から)。従って、平行状態のためのNi(α)は、Viα及びViα(x)が0に近づくので、Ni(α)の限界として決定される。
ゼロ速度を有している状態(すなわち、休息(rest)状態、及び状態(0,0,0,2)及び(0,0,0,−2))の値は、温度及び圧力の初期条件に基づいたシミュレーションの初めにおいて、初期化される。その後、これらの値は時間とともに調節される。
次に、表面力学は、上に議論した4つの境界条件を満たすために、各々面のために実行される(ステップ112)。面のための表面力学を実行するための手続きは図9で示される。最初に、面Fxに垂直な結合した運動量は、すべてのiのために、次式として面における質点の結合した運動量P(α)を決定することによって、決定される(ステップ905)。
これから、垂直運動量Pn(α)は次式のように決定される。
Pn(α)=nα・P(α)
その後、この垂直運動量はチェン等によって開示されたプッシュ/プル技術(ステップ910)を使用して除去され、Nn-(α)を生成する。その後、Nn-(α)の質点は、ボルツマン分布Nn-B(α)を生成するために衝突させられる(ステップ915)。(ボルツマン分布を生成する衝突する質点のプロセスは後述する。)
その後、面Fαのための外向移動性の流束分布は、内向移動性の流束分布及びボルツマン分布に基づいて、決定される(ステップ920)。最初に、内向移動性の流束分布Γi(α)とボルツマン分布との間の差は、次式のように決定される。
この差分を使用して、nα・ci>0のための外向移動性の流束分布は次式となる。
式中、i*が状態iの反対の方向を有する状態である。例えば、状態iが(1,1,0,0)の場合、i*が(−1,−1,0,0)である。表面摩擦及び他の因子を説明するために、外向移動性の流束分布は、nα・ci>0に対し、さらに次式に洗練できる。
式中、Kfが表面摩擦の関数であり、t1αはnαに垂直な第1の接線ベクトルであり、t2αはnα及びt1αの両方に垂直な第2の接線ベクトルであり、そしてΔNj,1及びΔNj,2は状態iのエネルギー(j)及び示された接線ベクトルに対応する分布関数である。分布関数は次式によって決定される。
式中、jは、エネルギー準位1状態のために1と等しく、エネルギー準位2状態のために2と等しい。
ΓiOUT(α)のための方程式の各ラインの機能は、以下のとおりである。第1のライン上の項は、衝突がボルツマン分布を生成するのに有効だが、接線運動量流束例外を含んでいるという程度まで垂直運動量流束境界条件を強化する。第3及び第4のライン上の項は、この変則のために修正し、それは発生分離性効果により生じ、又は不十分な衝突により非ボルツマン構造を生ぜしめる。最終的に、第2のライン上の項は、表面に接線運動量流束の所望の変化を強いるために指定された量の表面摩擦を加える。ベクトル操作を含んでいる項がすべてシミュレーションを始めるに先立って計算され得る幾何学的因子であることに注意するべきである。
浮動小数点数を使用して表面力学が実行される場合、他の手法はΓiOUT(α)を生成するために使用され得る。この手法によれば、垂直運動量は次式のように決定される。
Pn(α)=nα・P(α)
これから、接線の速度は次式のように決定される。
ut(α)=(P(α)−Pn(α)nα)/ρ
式中、ρが次式の面分布の密度である。
その後、面分布の温度Tは次式のように決定される。
式中、jは0、1又は2に等しく、状態iのエネルギーに対応すする。
ボルツマン分布を決定するために衝突を使用する代わりに、それは次式のように決定される。
式中、〈N〉j (eq)(j=0,1,2)がエネルギー準位jにおける平衡等方性状態であり、
そして、d0は休息状態の数(すなわち6)である。
上記のように、内向移動性の流束分布とボルツマン分布との間の差は、次式のように決定される。
その後、外向移動性の流束分布は次式になる。
これは、前の技術によって決定されたが外向移動性の流束分布の第1の2行に相当するが、不規則の接線の流束のための補正を要求しない。
どちらか一方の手法を使用して、生じる流束分布は運動量流束条件をすべて満たす、すなわちそれは次式である。
式中、pαが面Fαでの平衡状態圧力であって、面に質点を供給するボクセルの平均密度及び温度値に基づく圧力であり。また、uαは面での平均の速度である。
質量とエネルギーの境界条件が満たされることを保証するために、入力エネルギーと出力エネルギーとの間の差は次式のように各エネルギー準位jのために測定される。
式中、指標jが、状態iのエネルギーを表示する。その後、このエネルギー差は、cij・nα>0に対し、次式の差の項を生成するために使用される。
この差の項は流束がcij・nα>0のための次式になるように、外向移動性の流束を修正するために使用される。
この演算は接線運動量流束を不変にしつつ、質量及びエネルギー流束を修正する。流れが面近傍でほぼ一様で平衡状態に近い場合、この調節は小さい。調節の後、生じる垂直運動量流束は、近隣の非等質又は非平衡状態特性による近隣の平均特性プラス補正に基づいた平衡状態圧力である或る値へ、わずかに変更される。
図1を再び参照すると、質点は、3次元の直線の格子に沿ったボクセルの間で移動される(ステップ114)。ボクセル対ボクセル移動は、面と相互に作用しないボクセル上で実行されたただ一つの移動演算である(すなわち表面の近くに位置しないボクセル)。典型的シミュレーションでは、表面と相互に作用するためには表面へ近く十分に位置しないボクセルが、ボクセルの大多数を構成する。
個別の状態の各々は、4次元のx、y、z及びwの各々の中で整数速度を備えた格子に沿って移動する質点を表わす。整数速度は、0、+/−1及び+/−2を含んでいる。速度の符合は、質点が対応する軸に沿って移動している方向を示す。これらの線形速度は、0から4まで変動するエネルギー準位を備えた質点のシミュレーションを支える。エネルギー準位の0〜2だけが遷音速の流れシミュレーションのために必要である一方、すべて5が亜音速流れシミュレーションのために必要である。
表面と相互に作用しないボクセルについては、移動演算が計算上に全く単純である。状態の全集団はすべての時間増分中に、その現在ボクセルからその目的地ボクセルに移動される。同時に、目的地ボクセルの質点はそのボクセルから自分の目的地ボクセルに移動される。例えば、+1x及び+1y方向(1,1,0,0)へ移動しているエネルギー準位1質点は、その現在ボクセルからx方向の+1上でy方向で+1上の一つに移動される。質点は、それが、移動(1,1,0,0)の前に持ったのと同じ状態の目的地ボクセルで終了する。ボクセル内の相互作用は、他の質点及び表面で局所的相互作用に基づいたその状態と質点カウントを交換する傾向にある。そうでなければ、質点は同じ速度及び方向で格子に沿って移動し続ける。
停止状態(エネルギー準位0)中の質点が移動されないことはここに注意されるべきである。さらに、質点は3次元で単に移動される。状態のw次元の0でない値は、状態の質点が移動することになっている格子サイトの決定に影響しない。例えば、−1z及び+1w速度(0,0,−1,1)のエネルギー準位1質点、及び−1z及び−1w(0,0,−1,−1)速度のエネルギー準位1質点は、両方とも、z次元で遠方に−1であるサイトへ移動するだろう。まったく移動したことのない2エネルギー準位2状態(0,0,0,2)及び(0,0,0,−2)もある。
移動演算は、1つ以上の表面と相互に作用するボクセルに対してわずかに複雑になる。上記したように、Viα(x)及びPf(x)は非整数値を有している。これは、面に移動される断片的質点の1つ以上に帰着できる。かかる面への断片的質点の移動はボクセル中で残る断片的質点に結果としてなる。これらの断片的質点は面によって占められたボクセルに移動される。例えば、図7において、ボクセル705の状態I質点の部分700が面710に移動される場合(ステップ108)、残りの部分715は、面710が位置しそれから状態iの質点が面710に向けられるボクセル720に移動される。したがって、もし状態集団が25と等しく、Viα(x)が0.25(すなわち、ボクセルの4分の1が平行六面体Giαと交差する)と等しかったならば、6.25の質点は面Fαに移動され、また、18.75の質点は面Fαによって占められたボクセルに移動されるだろう。多数の面が単一のボクセルと交差できるので、1つ以上の面によって占められたボクセルN(f)へ移動された状態i質点の数は、次式である。
式中、N(x)が源ボクセルである。Ni(f)が実数であるので、移流段階が完了するまでNi(f)は、浮動小数点数又は基準化された整数として、バッファに一時的に格納される。
基準化された整数としてNi(f)を格納するために、Ni(f)は次式のように決定される。
式中、scaleが216の値がある定数であり、また、Nsi(x)及びVsiα(x)はそれぞれscaleを掛けたNi(x)及びViα(x)である。乱数のrandは、基準化に先立った0と1の間の値を呈し、次に、0と216−1との間の値へのscaleによって拡大される。その後、演算子floorは整数値を生成する。特に、floorはその引き数以下の最大の整数を返す。例えば、floor(2.3)は2に、及びfloor(−2.3)は−3と等しい。
次に、各面からの外向移動性の質点は、ボクセルに分散する(ステップ116)。本質的に、このステップは、質点がボクセルから面に移動された収集ステップの逆である。面FαからボクセルN(x)まで移動する状態i質点の数は、次式である。
式中、Pf(x)が部分的ボクセルの体積縮小を説明する。これから、各状態iについて、面からボクセルN(x)に向けられた質点数の合計は、次式である。
整数としてボクセルへの状態ベクトルのエントリを維持するために(非整数エントリを整数形式に変換すること)、エントリは整数値に丸められる。
式中、ts-は分散ステップの直前の時間であり、ts+はは分散ステップの直後の時間であり、さらに、Ni(x,ts-)は浮動小数点数である。乱数randは、基準化に先立った0と1の間の値を呈し、次に、0と216−1の間の値へのscaleによって拡大される。値がscaleによって率に応じて拡大されるので、scaleによる除算は単に乗算と加算の演算の結果を変えることである。
面からボクセルまで質点を拡散し、ボクセルを囲むことから移流を中へ引き起こした質点とそれらを結合し、結果を整数にした後に、あるボクセル中のある方向は、アンダーフロー(負になる)又はオーバーフロー(255を超える)のいずれかになり得る。これは、質量、運動量及びエネルギーの量が0から255までの値の許容範囲と適合するために打切られた後、それらにおける利得又は損失のいずれかに帰着するだろう。かかる発生を保護するために、境界外である質量、運動量及びエネルギーは、不快な状態の打切りに先立って包含される。状態が属するエネルギーのために、獲得された値(アンダーフローによる)又は失われた値(オーバーフローによる)と等しい質量の量は、オーバーフロー又はアンダーフローにそれら自身従わない同じエネルギーを有しかつ任意に(又は連続して)選択された状態に加えられる。この質量とエネルギーの加法に起因する付加的運動量は、蓄積され、打切りからの運動量に加えられる。同じエネルギー状態に質量を単に加えることによって、質量及びエネルギーの両方は質量カウンタが0に達する場合、修正される。最終的に、運動量は、運動量アキュムレータが0に返されるまでプッシュ/プルを使用して、修正される。
最終的に、流体力学は実行される(ステップ118)。このステップはマイクロ力学又はイントラボクセルの演算と呼ばれる。同様に、移流手続きはイントラボクセル演算と呼ばれる。下記のマイクロ力学演算は、ボルツマン分布を生成する面の質点を衝突させるために使用される。
マイクロ力学演算は、二値、三値又は「n」値の相互作用規則(さらに衝突規則とも呼ぶ)の一連を、各時間増分中のボクセルの状態ベクトルへ順次適用することにより、ボクセルの内に生じる物理的相互作用のセットをシミュレーションする。例えば、ここに説明されたシステムでは、276の衝突規則があり、その各々は個別の衝突段階中で実行される。衝突規則が連続して適用されるので、それらの適用の結果は、単にそれらの値では書くことができない初期の状態値上に複雑な非線形の依存性を有している。衝突規則が二値、三値又は「n」値として実行される一方で、理解の単純化と容易化のために、次の議論は第1に二値衝突の場合を説明する。
基本的2つのタイプ、非エネルギー交換「自己」衝突、及びエネルギー交換衝突がある。自己衝突は、質点が互いと衝突することを可能にし、それにより、それらの速度を変える。1つの質点によって占められた状態が質点の速度を決定するので、質点の速度の変化は、その異なる状態へ質点を移動させることによって遂行される。二値衝突規則は、2つの入力状態及び2つの出力状態に関しての自己衝突について記述し、出力状態に質点を移動させることにより入力状態の各々からの1つ以上の質点の衝突をシミュレーションする。衝突規則が双方向なので、入力及び出力状態は、衝突が状態の集団に依存する位置をとる時に決定される。
エネルギー交換衝突は、内向移動性の2つの質点とは異なるエネルギー準位に外向移動性の2つの質点がある点で自己衝突と異なる。亜音速流については、3つのエネルギー準位、0(止められる)、1及び2だけがある。エネルギーを保存するために、1つのペアが2つのエネルギー準位1質点を含んでおり、他方のペアがエネルギー準位2質点及び止められた質点を含んでいる場合、可能な唯一のエネルギー交換衝突は生じる。エネルギー交換衝突は、同じ割合で両方向に起こらない。むしろ、それらはエネルギー準位1状態からの前方への割合及びエネルギー2と停止状態からの後方への割合で起こる。下記詳細に議論されるように、これらの衝突割合はシステムの温度に依存する。
各衝突規則は、自己又はエネルギー交換衝突に向けられたとしても、単一のボクセルのための状態ベクトルの状態の部分集合又は面上で演算し、それらの状態の質点間の衝突の正味の影響をシミュレーションする。例えば、二値衝突規則は、4状態(i,j,k,1)上で作動し、第1の2つの状態(i,j)における質点間の衝突の正味の影響をシミュレーションし、第2の2つの状態(k,1)の質点間の衝突をシミュレーションする。第1の2状態における1ペアの質点間の衝突が、第2の2状態に対応する速度へ変わる質点の速度に帰着しその逆も正しいので、二値衝突規則は次式のように表現できる。
式中、εが衝突規則を実行するのに必要な物理的に微小の時間を示す。同様に、三つの衝突規則は次式として表現できる。
衝突規則の適用に現実に起因する状態変化が正味の状態変化を反映することは、評価されるべきである。例えば、衝突規則の適用により、各々の状態i及びjからの4つの質点が各々の状態k及びlに移動する結果に帰着する場合、例えば、この移動は、各々の状態i及びjからの56の質点が各々の状態k及びlに移動し、各々の状態k及びlからの52の質点が各々の状態i及びjに移動する帰着結果の衝突を現実に表わすことがある。
正確に物理的システムをシミュレーションするために、各衝突規則は質量、運動量及びエネルギーを保存しなければならない。規則が1状態から別のものに単に質点を移動させて、質点の生成又は破壊をなさないので、それらは必ず質量を保存する。規則が運動量を保存することを保証するために、規則によって影響を受けた状態は次式のように選択される。
ci+cj=ck+cl
同様に、規則がエネルギーを保存することを保証するために、規則によって影響を受けた状態は次式のように選択される。
したがって、状態i、j、k及びlは、状態i及びjからの1ペアの質点が状態k及びlからの1ペアの質点と同じ運動量及びエネルギーの合計を持つように、各規則に対し選ばれる。内向移動性ペア及び外向移動性ペアの状態が質量、運動量及びエネルギーを常に保存しなければならないので、54の状態内のすべての可能な4つは「合法的」衝突規則に相当するとは限らない。
特定の衝突規則については、Nscattが、規則によって影響を受けた状態に衝突演算子を適用することによって決定される。衝突演算子の算術/計算上の形式は、シミュレーションシステム中の演算子を実行する現実性を決定する。衝突演算子の統計特性は、正確な行動がシミュレーション中に達成できる範囲を決定する。
好ましい衝突演算子は、規則によって影響を受けた各状態の質点の数がそのボルツマン平衡状態値に接近するとともに、Nscattが0に接近するものである。二値衝突については、好ましい演算子は次式の形式を有している「多重線の規則」である。
Nscatt=Aj[Rf*Ni*Nj−Rb*Nk*Nl]
式中、Ajが衝突係数であり、Rf及びRbはエネルギー交換衝突のための前方及び後方への衝突割合である。Rf及びRbが局所的温度のみに依存する一方、係数Ajは局所的温度及び密度のみに依存する。温度及び密度が衝突により変わらないので、Aj、Rf及びRbは特定の時間増分のための定数であり、すべての衝突に先立って決定できる。
Ajの値は下に示されるように各タイプの衝突に対し変わる(エネルギー準位1の質点間の自己衝突、エネルギー準位2の質点間の自己衝突、及びエネルギー交換衝突)。もし、j=1、2又はεがそれぞれ、エネルギー準位1又は2にて自己衝突、及びエネルギー交換衝突を表わす場合、Aj、Aεは次式である。
式中、〈N〉j (eq)(j=0,1,2)は上記のようにエネルギー準位jの等方性平衡状態の集団である。
エネルギー交換衝突については、状態i及びjがエネルギー準位1状態であり、状態k及びlは、Rf/Rbがエネルギー準位1質点からエネルギー準位2及び休止質点まで衝突の割合を表わすような、エネルギー準位2及び休止状態である。Rf/Rbは次式のように定義される。
式中、d0は停止した質点状態の数であり、上述された実施例での6と等しい。しかしながら、流体の温度は、シミュレーションの長さにわたって必ずしも一定でなく、特に、熱伝導を含んでいるシミュレーションのために、Aj及びRf/Rbは、局所的温度の変化を反射するために、シミュレーション中にダイナミックに更新されなければならない。亜音速流のために保持された温度範囲は、1/3と2/3の間にある。自己衝突については、Rf/Rbが1と等しい。
自己衝突の例として、次式の初期の状態は提案される。
ci=(1,0,1,0),Ni:25,
cj=(1,0,-1,0),Nj=40,
ck=(1,0,0,1),Nk=53,
cl=(1,0,0,-1),Nl=20
示されるように、i、j、k及びlは,状態i及びj並びに状態k及びlの結合した運動が、x次元中の2並びにy、z及びw次元中の0であるように、かつ各状態がエネルギー準位1状態であるように、選択されている。密度ρの合計が1656で温度が1/2であり、A1が<n>1 (eq)のための表現を使用したと仮定すると、<n>1 (eq)はρ/48に等しく、A1は12/ρ又は1/138と等しい。例示するために、もし衝突規則が浮動小数点数を使用して適用されれば、生じる状態集団は次の値を持つだろう。
Ni=25-(-0.43478)=25.43478
Nj=40-(-0.43478)=40.43478
Nk=53+(-0.43478)=52.56522
Nl=20+(-0.43478)=19.56522
これらのNi、Nj、Nk及びNlの新しい値は、平衡状態基準をゼロへ追い払う。
(Ni*Nj−Nk*Nl)=
(25.43478*40.43478)-(52.56522*19.56522)=
1028.45-1028.45=0
状態の質点カウントのオーバーフロー又はアンダーフローのポテンシャルは、上記された衝突演算に存在する。オーバーフローは、質量、運動量及びエネルギーの損失に帰着し、もし状態集団及びNscattの合計が255を超過すれば、生じるだろう。対照的に、アンダーフローは、質量、運動量及びエネルギーの生成に帰着し、もし状態集団からNscattを引いた結果が0未満であれば、生じるだろう。質量、運動量及びエネルギー保存の法則がシミュレーション環境において最高なので、衝突に含まれる状態のうちのいかなるものの中でオーバーフロー又はアンダーフローのいずれかを引き起こす場合、質点の交換が妨げられる。
ハードウェア制限により、Nscattは整数値として維持される。非エネルギー交換衝突については、Nscattが次式のように決定される。
式中、A jsが、216の値を有している定数のscaleによって乗算によって基準化されたAjである。乱数のrandは、基準化に先立った0と1の間の値を呈し、次に、0と216−1との間の値へのscaleによって率に応じて拡大される。エネルギー交換衝突については、Nscattが次式のように決定される。
式中、Rf’及びRb’はそれぞれAεsを掛けたRf及びRbである。Aεsはscaleを掛けたAεである。randはfloor演算に起因する打切りがシステムへ統計のバイアスを導入するのを妨げるために採用される。この演算は、整数値を呈することをNscattに強いるが、randの使用は、この演算が特定の方向において統計的にNscattにバイアスをかけないことを保証する。
この手法で、上記の例のためのNi、Nj、Nk及びNlの値は、56.522%の確率で(25,40,53,20)で設定され、43.478%の確率で(26,41,52,19)で設定されるだろう。複数の試験にわたって平均されて、Ni、Nj、Nk及びNlのための平均値は(25.43478,40.43478,52.56522,19.56522)である。したがって、規則の単一の適用は必ずしも平衡状態への集団を強いらないが、規則の複数の適用上の集団の統計の平均値は、それらの集団に対する平衡状態値に相当する。
多重線の衝突演算子はボルツマンの平衡状態にシミュレーションされたシステムを運転する。これは、衝突規則の繰り返した適用が平衡状態値にシステムを運転し、そこで巨視的条件び所定設定のために、個々の状態集団Niが次式のボルツマン分布によって決定されるような既知の値を呈することを、意味する。
式中、指数関数における因子が質量(m)、運動量(mci)及びエネルギー(mci 2)の保存された不変量を表わし、追加の(「偽造」)不変量が生じないと仮定すると、riは、RfとRbから生成された重み因子を表わす。衝突規則の各適用後のこの分布の達成は、ある精度への流体力学の挙動に帰着する。
この平衡状態を導き出す単純な方法は、衝突すべてが生じて相互作用状態をそれらの個々の平衡状態に運転すると仮定することである。したがって、二値衝突規則については、平衡状態は次式となる。
Rf*Ni*Nj=Rb*Nk*Nl
また、多重線の規則については、Nscattが0と等しい。前式中で両側の対数をとることは次式を意味する。
式中、
である。この式は、ペアすべてのペア(又は三組のペアなど)のために今満たされなければならないが、それは衝突規則の下で許容される。式を満たすために、lnri -1Niは、次式の形式で衝突プロセス(すなわち質点上の合計が保存される量)の合計の不変量の合計でなければならない。
式中、Ii αが状態i(例えば、上記のNiのための式中における運動量の構成要素mici)に関連したα番目の不変量であり、そしてAαがそれらの対応する不変量(例えば、上記のNiのための式中におけるα、β及びγ)に関連した係数である。質量、運動量及びエネルギーが単に保存された量(すなわち、偽造の不変量はない)である限り、ボルツマン分布がこの方程式に起因する。
図10を参照すると、可変分解(図4及び5で示し説明した)は、以下に粗いボクセル1000及び細かいボクセル1005と呼ぶ異なる大きさのボクセルを採用する。(次の議論は、異なる2つの大きさを有しているボクセルを参照する。分解の追加のレベルを提供するために説明された技術はボクセルの異なる3つ以上の大きさに適用され得ると、認識されるべきである。)粗く細かいボクセルの領域間の界面は可変分解(VR)界面1010と呼ぶ。
可変分解が、表面で又はその表面の近くで使用される場合、面はVR界面の両側でボクセルと相互に作用する。これらの面は、VR界面面1015(FαIC)又はVR細かい面1020(FαIF)として分類される。VR界面の面1015は、VR界面の粗い側に置かれかつ、細かいボクセルへ伸びる粗い平行六面体1025を有した面である。(粗い平行六面体は、粗いボクセルの次元に従ってciが測定されるものの1つである一方、細かい平行六面体は細かいボクセルの次元に従ってciが測定されるものの1つである。)VR細かい面1020は、VR界面の細かい側に置かれ、かつ、粗いボクセルへ伸びる細かい平行六面体1030を有した面である。界面の面に関連する処理は、さらに、粗い面1035(FαC)及び細かい面1040(FαF)の相互作用をも含んでいる。
両方のタイプのVR面については、表面力学が細かい基準(scale)で実行され、上述されるように演算する。しかしながら、VR面は、質点がVR面間の移流を引き起こす方法に関して、他の面と異なる。
VR面を備えた相互作用は、図11に示す可変分解手続き1100を使用して、扱われる。この手続きのほとんどのステップは、上に議論された非VR面との相互作用のための比較可能なステップを使用して、行なわれる。手続き1100は、相各々が細かい時間ステップに対応する2つの相を含んでいる粗い時間段階(すなわち時間間隔は粗いボクセルに対応する)の間、実行される。面表面力学は個々の細かい時間ステップの間実行される。この理由のために、VR界面面FαICは、それぞれ黒面FαICb及び赤面FαICrと呼ばれる2つの独立して大きさが適応され配向された細かい面と見なされる。黒面FαICbが粗い時間ステップ内の第1の細かい時間ステップに関係し、赤面FαICrは粗い時間ステップ内の第2の細かい時間ステップに関係している。
最初に、質点は、第1の表面対表面の移流段階によって面の間で移動(移流)される(ステップ1102)。質点は、V〜αβの重み因子で黒面FαICbから粗い面FβCへ移動され、該重み因子は、面Fαから伸びかつ面Fβの背後にある粗い平行六面体(図10,1025)の障害物を取り除かれた部分より、面Fαから伸びかつ面Fβの背後にある細かい平行六面体(図10,1045)の障害物を取り除かれた部分だけ少ない体積に相当する。細かいボクセルのためのciの大きさは、粗いボクセルのためのciの大きさの2分の1である。上に議論されたように、面Fαのための平行六面体の体積は次式のように定義される。
Viα=|ci・nα|Aα
従って、面の表面面積Aαが粗い平行六面体及び細かい平行六面体間で変わらないので、そして単位法線nαが常に1の大きさ有しているので、面に対応する細かい平行六面体の体積は面のための対応する粗い平行六面体の体積の2分の1である。
質点は、Vαβの重み因子で粗い面FαCから黒面FαICbへ移動され、該重み因子は、面Fαから伸びかつ面Fβの背後にある細かい平行六面体の障害物を取り除かれた部分の体積に一致する。
質点は、Vαβの重み因子で赤面FαICrから粗い面FαCへ移動され、さらに、V〜αβの重み因子で粗い面FαCから赤面FβICrへ移動される。
質点はVαβの重み因子で赤面FαICrから黒面FβICbへ移動される。この段階で、黒対赤移流は生じない。さらに、黒面及び赤面が連続する時間ステップに相当するので、黒対黒移流(又は赤対赤移流)は生じない。類似した理由で、この段階の質点は、Vαβの重み因子で、赤面FαICrから細かい面FβIF又はFβFへ移動され、また、同じ重み因子で、細かい面FαIF又はFαFから黒面FαICbに移動される。
最終的に、質点は、同じ重み因子で細かい面FαIF又はFαFから他の細かい面FβIF又はFβFへ移動され、また、の重み因子で粗い面FαCから他の粗い面FCへ移動され、重み因子VCαβは面Fαから伸びかつ面Fβの背後にある細かい平行六面体の障害物を取り除かれた部分の体積に相当する。
質点が表面間に移流された後、質点は、第1の収集段階においてボクセルから集められる(ステップ1104〜1110)。質点は、細かい平行六面体を使用して細かいボクセルから細かい面FαFのために集められ(ステップ1104)、また、粗い平行六面体使用して粗いボクセルから粗い面FαCのために集められる(ステップ1106)。その後、質点は細かい平行六面体(ステップ1108)を使用して、粗いボクセル及び細かいボクセルから、黒面FαIRbのために、及びVR細かい面FαIFのために集められる。最終的に、質点は、粗い平行六面体及び細かい平行六面体の間の差を使用して、粗いボクセルから赤面FαIRrのために集められる(ステップ1110)。
次に、細かいボクセル又はVR面と相互に作用する粗いボクセルは、細かいボクセルの集合へ分解される(ステップ1112)。単一の粗い時間ステップ内の細かいボクセルへ質点を送る粗いボクセルの状態は、分解される。例えば、面によって交差しない粗いボクセルの適切な状態は、図2のマイクロブロックのように適応させられた細かい8のボクセルへ分解される。1つ以上の面によって交差する粗いボクセルの適切な状態は、任意の面によって交差しない粗いボクセルの部分に対応する全体及び/又は部分的細かいボクセルの集合へ分解される。粗いボクセルのための質点密度Ni(x)及びその分解に起因する細かいボクセルは等しいが、しかし、細かいボクセルは、粗いボクセルの断片的因子及び他方の細かいボクセルの断片的因子と異なる断片的因子Pfを有している。
その後、表面力学は、細かい面FαIF及びFαF(ステップ1114)のために、及び黒面FαICb(ステップ1116)のために実行される。力学は図9に示す手続きを使用して、上に議論したように実行される。
次に、質点は、実際の細かいボクセルを含む細かいボクセル及び粗いボクセルの分解に起因する細かいボクセルの間で移動される(ステップ1118)。一度、質点が移動されたならば、質点は、細かい面FαIF及びFαFから細かいボクセルまで分散する(ステップ1120)。
質点は、さらに、黒面FαICbから細かいボクセル(これは粗いボクセルを分解させることに起因する細かいボクセルを含んでいる)まで分散する(ステップ1122)。表面の存在がないその時にボクセルが質点を受け取った場合、質点は細かいボクセルに分散される。ボクセルが実際の細かいボクセル(粗いボクセルの分解展開に起因する細かいボクセルに対立するものとしての)である場合、又はボクセルN(x)を越える1つの速度単位であるボクセルN(x+ci)が実際の細かいボクセルである場合、又はボクセルN(x)を越える1つの速度単位であるボクセルN(x+ci)が、粗いボクセルの分解展開に起因する細かいボクセルである場合、質点はボクセルN(x)に特に分散される。
最終的に、第1の細かい時間ステップは、細かいボクセル上で流体力学を実行することによって完了する(ステップ1124)。流体力学が実行されるボクセルは、粗いボクセルを分解させることに起因する、細かいボクセルを含んでいない(ステップ1112)。
手続き1100は、第2の細かい時間ステップの間、類似したステップを実行する。最初に、質点は、第2の表面対表面の移流段階において表面間で移動される(ステップ1126)。質点は、黒面から赤面まで、黒面から細かい面まで、細かい面から赤面まで、及び細かい面から細かい面まで、移流される。
質点が表面間の移流された後、質点は収集段階においてボクセルから集められる(ステップ1128〜1130)。質点は細かい平行六面体を使用して、細かいボクセルから赤面FαIRrのために集められる(ステップ1128)。質点は、さらに細かい平行六面体を使用して、細かいボクセルから細かい面FαF及びFαIFのために集められる(ステップ1130)。
その後、表面力学は、上に議論されたように、細かい面FαIF及びFαFのために(ステップ1132)、粗い面FαCのために(ステップ1134)、及び赤面FαICr(ステップ1136)のために実行される。
次に、質点は、細かい分解(ステップ1138)を使用してボクセルの間で移動され、質点が細かいボクセル及び粗いボクセルを示す細かいボクセルの相互間で移動される。その後、質点は、粗い分解(ステップ1140)を使用して、質点が粗いボクセル間で移動されるようにボクセルの間で移動される。
次に、結合ステップにおいて、質点が面からボクセルまで分散されつつ、粗いボクセル(すなわち、粗いボクセルを分解させることに起因している細かいボクセル)を表わす細かいボクセルは合体され粗いボクセルになる(ステップ1142)。この結合ステップで、質点は、粗い平行六面体を使用して粗い面から粗いボクセルヘ、細かい平行六面体を使用して細かい面から細かいボクセルへ、細かい平行六面体を使用して赤面から細かいボクセル又は粗いボクセルへ、さらに、粗い平行六面体及び細かい平行六面体の間の差分を使用して黒面から粗いボクセルへ、分散される。最終的に、流体力学は、細かいボクセル及び粗いボクセルのために実行される(ステップ1144)。
図12を参照すると、上記システムは、機能ユニット10を使用して実行することができる。このユニット10は、メモリバンク14と規則記憶装置16とに接続された用途特定集積回路(「ASIC」)12を含む。システムは、単一の機能ユニット10を使用して実行することができるが、ASIC12は、数百、数千の機能ユニット10が改善された性能のために並行に接続されて演算できるように、設計されている。
ASIC12は、縮小命令セット型コンピュータ(「RISC」)プロセッサ20と指示キャッシュ22とRISCインターフェース論理部24とを含むプロセッサ制御ユニット(「PCU」)18を含む。プロセッサ制御ユニット18は、中央コントローラとして動作し、ベクトル状のコマンドを様々な機能ユニットに発する。機能ユニットは、共通プロセッサとして動作し、プロセッサ制御ユニット18からの指示を受け取り、任務を終了するための指示の予め定義されたシーケンスのセットを実行する。プロセッサ制御ユニット18に対する指示は、メモリバンク14へとダウンロードされ、プロセッサ制御ユニット18によってここから実行される。これらの指示制御プロセッサは、ユニット18を制御して、ユニット18から、ASIC12における他の機能ユニットにコマンドを送らせる。
PCU18に対する指示を記憶することに加えて、メモリバンク14は、関連するデータ構造及びオーバヘッド情報に沿ってASIC12に割り当てられた各ボクセル毎に質点の状態を記憶する。メモリバンク14によって供給された記憶の量は、ASIC12が全シミュレーション容量の一部として割り当てることのできる分解能(resolusion)の量を書き取っている。メモリバンク14は、標準生産の同期DRAMのセットから構成されている。このDRAMは、パイプラインになっているアクセスモードと高データ帯域幅能力とにより標準同期DRAMに亘って選択されている。
マイクロ力学ユニット(「MDU」)は、マイクロ力学制御論理部26とマイクロ力学データパス28とを含み、質点力学の処理に対して信頼性のある機能ユニットである。これは、表面のみならず、質点間の相互作用を含む。マイクロ力学データパス28は、ボクセルデータについての演算を実行するために必要なハードウェアを含む。マイクロ力学制御論理部26は、データパスを設定して、正しい演算を実行すると共に処理すべき適切なデータを選択する。マイクロ力学制御論理部26は、データパスを設定して、規則記憶装置16から検索した規則のセットに基づいてデータを選択する。規則記憶装置16は、SRAMから構成されて、マイクロ力学規則が変化するときに、メモリをロードする能力と高速アクセス時間とを提供する。
マルチポートRAM30は、マイクロ力学データパス28が実際に処理している関連データ及び質点の状態に対するレジスタファイルとして動作する。RAM30は、9ポートスタティックRAMであり、256個の64ビットエントリを有し、2つの読取りポートと2つの書込みポートとをマイクロ力学データパス28に供給する。さらに、RAM30は、読取りポートと書込みポートとをマイクロブロックユニット32に提供する。このポートの第3のセットが、統計と同様にRAM30とメモリアクセスユニット34との間に共存するデータ移動に対して使用される。メモリアクセスユニット34は、ASIC12内の質点データ転送の中心源及び目的であり、メモリバンク14を制御する。
図13及び図14も参照すると、マイクロ力学データパス28は、1のボクセルの処理に必要な8ビットデータパス29の8つの同一コピーを提供することによって、8つのボクセルを並行に処理する。マイクロ力学制御論理部26は、SIMD(単一指示多重データ(single instruction multiple data))コントローラとして構成され、8つのサイトの全てが設定されて、独立のボクセルデータに同一の演算を実行する。
バスインターフェースユニット(「BIU」)36は、例えばシステムの制御に使用される目的「ホスト」プロセッサなどの外部プロセッサにASIC12を接続する。(ホストプロセッサ又は他の外部プロセッサは面した表面との質点の相互作用をモデル化するとき用いられる浮動小数点演算動作を実行するために使用され得る。)BIU36の主たる機能は、システムのホストプロセッサにパスを提供してASIC12に初期化情報を提供し、ASIC12からホストプロセッサに統計情報を送る。さらに、BIU36は、メモリアクセスユニット34にパスを提供するので、メモリバンク14は、ホストプロセッサにアクセス可能になる。
移流ユニット(「AU」)38は、データパスを形成し、質点を立方格子に沿って移流(移動)せしめるように制御し、別のASIC12によって所有される目的のボクセルに移動する質点のサポートを含む。質点を別のASIC12によって所有されるボクセルに送るために、AU38は、通信ポートを含む。
マイクロブロックユニット32は、MDUにおいて処理されるデータについての統計を計算する役目をなす。ボクセルデータがMDUにおいて処理された後、マイクロブロックユニット32は、ボクセルデータを使用して統計を生成する。次に、データは、メモリアクセスユニット34を介してメモリバンク14に戻される。
RISCプロセッサ20は、32ビットの整数演算論理動作の標準セットを実行することができる。実際、RISCプロセッサは、コード化されて、標準プロセッサのように、メモリ内のプログラムを実行する。
メモリマップは、プロセッサの4GBアドレス空間に以下の3つのセグメントを作成するASIC12に対して設けられる。
1) MAUによって制御される外部メモリバンクへの直接アクセスの2GB(−8MB)
2) 機能ユニットによって所有され復号化されるオン・ASICメモリマップド(memory mapped)レジスタ及び指示の8MB
3) BIUを介して接続されるオフ・チップホストメモリアクセスの2GB
PCUの論理部は、RISCプロセッサによって発せられたアドレスを復号し、それが送られる場所を決定する。ローカルメモリの要求は、MAUに送られる。機能ユニット指示を含むメモリマップドレジスタ読取り及び書込みは、適切な機能ユニットに送られる。ホストメモリリファレンスが、BIUに送られ、BIUは要求をホストシステムに送る。
MAUからメモリ転送を要求することのできる4つの機能ユニット、すなわち、プロセッサ制御ユニットと、バスインターフェースユニットと、マイクロブロックユニットと、移流ユニットとが存在する。MAUは、これらの4つのユニットからの要求を仲介して、単一かつ多重のワード転送(word transfers)を許可する。MAUは、DMAエンジンを維持してバースト転送をサポートする。MAUから許可を受けたとき、ユニットは、MAUに接続し、その転送が終了するまでデータを運用して受信する。
RISCプロセッサは、様々な機能ユニットとMAUとの間の多くのデータパケットの転送を開始する。このモデルの機能ユニット、またはコプロセッサは、システム、すなわちASICレベル転送を認識しない。ユニットに、RISCエンジンによって、実行すべき課題とデータとが与えられ、ユニットは、そのデータを局所的に処理する。例えば、プロセッサは、マイクロブロックユニットに、MAUによって制御されるメモリからデータの特定のブロックを取ってきてマルチポートRAMに置くように指示する。次に、RISCエンジンは、マイクロ力学ユニットに指示を発してそのデータを処理する。処理が終了した後、RISCエンジンは、マイクロブロックユニットに、マルチポートRAMからデータのブロックを引出してメモリの特定の位置に戻すように指示する。
メモリ要求を始動するPCUに加えて、MAUメモリ転送の2つのオフ・チップソース、すなわち、BIUを介してホストシステムによって始動されるメモリ要求と、AUの通信ポートを介して他のプロセッサから入力されるデータと、が存在する。
コプロセッサユニットは、RISCエンジンからの単一のコマンドと局所記憶装置に保持されているデータのブロックとに基づいて、数十から数百、数千のサイクルを取るルーチンを処理することができる。この処理の長さによって、RISCエンジンに、計算の実行に加えてコマンドを発すると共に、他のユニットの状態をチェックする十分かつ自由な時間が許可されて、データ構造を更新したり、または次のプロセスに対するセグメントを決めたりする。
RISCプロセッサは、メモリマップド書込みを介して、機能ユニットに指示を発する。書込みのアドレスは、その機能ユニットに対する指示の演算コードに沿って機能ユニットを特定する。書込みによって供給される32ビットのデータは、演算コードのパラメータである。各演算コードは、データパスを分析する方法を特定する。各機能ユニットは、一回に1のみの指示しか扱うことができない。ユニットが以前に発せられた指示の処理で使用中の場合、新しい指示はPCUにてペンディングされる。RISCプロセッサも、機能ユニットの各々のレジスタ及び状態の読取りが自由であり、機械の現在の状態を判別する。
メモリマップド指示を発するために必要な復号制御ループからRISCプロセッサをオフロードするために、指示キュー(待ち行列)がPCUに供給されて多数の指示の列を形成する。ユニットが新しい指示を取るために自由になると直ちに、列の先頭の指示が適切な機能ユニットに送られる。ユニットが使用中であれば、次に列は指示を発せず次の全ての指示を止める。この待ち行列形成機構によって、機能ユニット間の依存性は、列形成指示を発するときに符号化される。任意の時刻において、プロセッサは、自由になり、指示列をバイパスして指示を直接機能ユニットに対して機能ユニットから情報を読み込む。
他の実施例は次の請求の範囲内にある。例えば、「物理的プロセスシミュレーションの粘性縮小」、米国特許出願第08/255,409号、出願日1994年6月8日においてツラブ(Traub)らによって開示された過緩和技術を使用して、シミュレーションの粘性を修正することができる。
粘性は剪断力(すなわち、流体の流れの方向と平行に作用する力)に対する流体の抵抗の基準である。実際の流体では、粘性は、質点の速度を平均値へ引き寄せる流体中の近隣の質点間の相互作用に起因する。格子システムでは、粘性は、ボクセルに位置した質点の正味速度を、近隣ボクセルに位置した質点の正味速度へ引き寄せる特定のボクセルに位置した質点間の相互作用に起因する。格子システム中の各ボクセルが実際の質点によって占められる物理的空間より本質的に大きいシミュレーションされた空間の領域を表わすので、ボクセル間の相互作用に起因する粘性は、実際の流体中の分子の質点相互作用に起因するそれより本質的に大きい(すなわち、各ボクセル相互作用に起因する「平均」は、個々の分子の質点相互作用に起因するそれより空間の本質的により大きな領域に影響する)。
格子システム中の粘性は、格子の密度を増加させることによって(すなわち各ボクセルによって表わされるシミュレーションされた空間の量を減少させることによって)縮小でき、過剰緩和の使用によっても縮小できる。粘性νは、次式の緩和パラメタωの項で表現できる。
式中、Tが流体の温度である。したがって、例えば、1の緩和パラメタ(ν=T/2)に関して、1.8の緩和パラメタ(ν=T/18)は、9の因数だけ格子中の粘性を縮小する。
過剰緩和の使用は、有効に格子の密度を増加させる。したがって、過剰緩和の使用は、特定の分解(又は特定のプロセッサが物理的システムをシミュレーションできる分解)による物理的システムをシミュレーションするのに必要な処理に劇的効果がある。例えば、3次元格子の有効密度の10倍の増加は、ほとんど1万(すなわち、与えられた速度の流体をシミュレーションするのに必要な時間において、10の三乗から過剰緩和を実行するのに必要な付加的処理を引いて、10倍の減少を掛けたもの)の因数だけ分解の特定のレベルまで、格子を持った物理的システムをシミュレーションするのに必要な処理を縮小する。
シミュレーションされた物理的プロセスの粘性を変更するために、コンピュータシステムは状態ベクトル上で粘性修正演算を実行する。これらの演算は、マイクロ力学演算の後に典型的に実行され、マイクロ力学演算中に適用され規則と同じ又は類似した規則のセットを適用する。同じ規則が適用される場合、規則はマイクロ力学演算中に第1の量によって、また、粘性修正演算中に第2の量によって、状態べクトルを修正し、ここで第1の量は緩和パラメタによって第2の量と関係がある。相互作用演算中で使用される規則が質量、運動量及びエネルギーを保存するので、この手法はこれらの特性が粘性修正演算中に保存されることを保証する。
第2の量が緩和パラメタに由来した実数を第1の量に掛けることによって決定される場合、増加の結果は第2の量が整数値であることを保証するために打切られる。打切り演算が統計バイアスをシステムへ導入する事を防止するために、0及び1の間の任意値は、打切りに先立って増加の結果に加えられる。
格子システムの粘性は、1を越え2未満の値の緩和パラメタの使用によって縮小される。緩和パラメタが2に接近するとともに、シミュレーションされたシステムの粘性は0に接近して、システムは不安定になる。本質的に摩擦の形式である粘性は、システムの変動を制動する傾向がある。したがって、粘性がない場合、不安定性は生じる。なぜならこれらの変動がシステムを通して未検査で広がるからである。1.9以下である緩和パラメタの使用によって一般に不安定性を回避できることが知見された。
Claims (66)
- コンピュータにて実行される方法であって、
(1) ボクセルにおける複数の可能な運動量状態の特定の運動量状態に対応する複数のエントリを有する状態ベクトルを複数のボクセルためにメモリに格納する行程と、
(2) ボクセルの大きさ及び配向とは独立に大きさが適応させられ配向される少なくとも1つの表面の表現をメモリに格納する行程と、
(3) 異なる運動量状態の要素間の相互作用をモデル化する相互作用演算を状態ベクトル上で実行する行程と、
(4) 表面近傍の少なくとも1つのボクセルでの表面と要素との間の相互作用をモデル化する表面相互作用演算を表面の表現上で実行する行程と、
(5) 状態ベクトル上で移動演算を実行し要素の移動を新ボクセルへ反射する行程と、を含むことを特徴とする物理的プロセスをシミュレーションする方法。 - 物理的プロセスをシミュレーションするコンピュータシステムであって、
(1) ボクセルにおける複数の可能な運動量状態の特定の運動量状態に対応する複数のエントリを有する状態ベクトルを複数のボクセルためにメモリに格納する手段と、
(2) ボクセルの大きさ及び配向とは独立に大きさが適応させられ配向される少なくとも1つの表面の表現をメモリに格納する手段と、
(3) 異なる運動量状態の要素間の相互作用をモデル化する相互作用演算を状態ベクトル上で実行する手段と、
(4) 表面近傍の少なくとも1つのボクセルでの表面と要素との間の相互作用をモデル化する表面相互作用演算を表面の表現上で実行する手段と、
(5) 状態ベクトル上で移動演算を実行し要素の移動を新ボクセルへ反射する手段と、を含むことを特徴とするコンピュータシステム。 - 状態ベクトルのエントリは、ボクセルの特定の運動量状態において単位体積当たりの要素の密度を表わすことを特徴とする請求項1記載の方法。
- 状態ベクトルは、特定の運動量状態で単位体積当たりの要素の密度を表わし、可能な2つを越える値を有している複数の整数を有することを特徴とする請求項3記載の方法。
- 相互作用演算は整数値を使用して実行され、表面相互作用演算は実数の値代表者を使用して実行されることを特徴とする請求項4記載の方法。
- 表面相互作用演算は浮動小数点数を使用して、実行されることを特徴とする請求項5記載の方法。
- 部分的ボクセルとして表面によって交差するボクセルを表わすことを、さらに有していることを特徴とする請求項1記載の方法。
- 前記少なくとも1つの表面の表現は、ボクセルの大きさ及び配向とは独立に大きさが適応させられ配向され、組合せでは、少なくとも1つの表面を表わす複数の面を有し、さらに、表面相互作用演算は面の近くの少なくとも1つのボクセルでの面と要素との間の相互作用をモデル化することを特徴とする請求項1記載の方法。
- 要素は流体の質点を表わし、また、面は流体がその上を流れる少なくとも1つの表面を表わすことを特徴とする請求項8記載の方法。
- 表面相互作用演算は、
面と相互に作用する少なくとも1つのボクセルの第1のセットから要素を集める行程と、
集められた要素と面との間の相互作用をモデル化して表面相互作用要素のセットを生成する行程と、
表面相互作用要素を、面と相互に作用する少なくとも1つの第2のボクセルのセットへ分散する行程と、からなることを特徴とする請求項8記載の方法。 - ボクセルの第1のセットはボクセルの第2のセットと同一であることを特徴とする請求項10記載の方法。
- 少なくとも1面の部分によって占められるボクセルのために、任意の面によって占められないボクセルの部分を表わす因子を、格納することを、さらに有していることを特徴とする請求項10記載の方法。
- ボクセルから集める場合、ボクセルのための因子が考慮されることを特徴とする請求項12記載の方法。
- ボクセルの第1のセットは、要素が集められている運動量状態の速度を表わすベクトルを備えた面に関する垂直方向を表わすベクトルのベクトル内積によって定義された領域の少なくとも1つの部分を重複する少なくとも1つのボクセルを含んでいることを特徴とする請求項10記載の方法。
- 領域の体積は、面の表面面積を掛けたベクトル内積と等しく、ボクセルの第1のセットは、部分的に体積を重複するボクセルをすべて含んでいることを特徴とする請求項14記載の方法。
- 他の少なくとも1つの面から要素を集めることを、さらに有していることを特徴とする請求項10記載の方法。
- 集められた要素と面の間の相互作用は、表面相互作用要素のセットが少なくとも1つの境界条件を満たすように、モデル化されることを特徴とする請求項10記載の方法。
- 面の接線の方向にある集められた要素の結合した運動量と面の接線の方向にある表面相互作用要素の結合した運動量との間の差が、面によって表わされる表面によって有されている表面摩擦の程度に関連づけられたとき、境界条件は満たされることを特徴とする請求項17記載の方法。
- 面に垂直な集められた要素の結合した運動量と面に垂直な表面相互作用要素の結合した運動量との間の差が、ボクセルの第1のセットの少なくとも1つのボクセルよって定義された領域の圧力と等しいとき、補足境界条件は満たされることを特徴とする請求項18記載の方法。
- 集められた要素の結合した質量が表面相互作用要素の結合した質量と等しいとき、補足境界条件は満たされることを特徴とする請求項19記載の方法。
- 集められた要素の結合したエネルギーが表面相互作用要素の結合したエネルギーと等しいとき、補足境界条件は満たされることを特徴とする請求項20記載の方法。
- 面は表面摩擦がない表面を表わし、そして、面の接線の方向にある集められた要素の結合した運動量と面の接線の方向にある表面相互作用要素の結合した運動量とが等しいとき、境界条件は満たされることを特徴とする請求項17記載の方法。
- 面に垂直な集められた要素の結合した運動量と面に垂直な表面相互作用要素の結合した運動量との間の差が、ボクセルの第1のセットの少なくとも1つのボクセルよって定義された領域の圧力と等しいとき、境界条件は満たされることを特徴とする請求項17記載の方法。
- 集められた要素の結合した質量が表面相互作用要素の結合した質量と等しいとき、境界条件は満たされることを特徴とする請求項17記載の方法。
- 集められた要素の結合したエネルギーが表面相互作用要素の結合したエネルギーと等しいとき、境界条件は満たされることを特徴とする請求項17記載の方法。
- 状態ベクトルは、特定の運動量状態を表わす複数の整数を有し、そして、表面相互作用演算は実数の値代表者を使用して、実行されることを特徴とする請求項10記載の方法。
- 表面相互作用要素が少なくとも1つのボクセルの第2のセットへ分散されたとき、状態ベクトルの整数値がオーバフロー又はアンダーフローしないことを保証することを、さらに有することを特徴とする請求項26記載の方法。
- 表面相互作用要素が少なくとも1つのボクセルの第2のセットへ分散されたとき、状態ベクトルの整数値がオーバフロー又はアンダーフローしないことを保証しつつ、ボクセルの質量、運動量及びエネルギーを保存することを、さらに有することを特徴とする請求項27記載の方法。
- ボクセルの大きさ及び配向と独立に配向され大きさが適応させられる2つの表面の表現は、メモリに格納されることを特徴とする請求項1記載の方法。
- 異なる大きさを有している複数のボクセルのための状態ベクトルはメモリに格納され、そして、表面相互作用演算は表面と異なる大きさを有している少なくとも2つのボクセルとの間の相互作用を説明することを特徴とする請求項1記載の方法。
- コンピュータにて実行される方法であって、
(1) ボクセルにおける複数の可能な運動量状態の特定の運動量状態に対応する複数のエントリを有する状態ベクトルを複数のボクセルためにメモリに格納する行程と、
(2) 演算を、状態ベクトル上で実行する行程と、
を含み、前記演算は、異なる運動量状態の要素とボクセルに関する要素の移動との間の相互作用をモデル化し、少なくとも演算のうちのいくつかは浮動小数点数を使用して実行され、そして、少なくとも演算のうちのいくつかは整数値を使用して実行されることを特徴とする物理的プロセスをシミュレーションする方法。 - 物理的プロセスをシミュレーションするコンピュータシステムであって、
(1) ボクセルにおける複数の可能な運動量状態の特定の運動量状態に対応する複数のエントリを有する状態ベクトルを複数のボクセルためにメモリに格納する手段と、
(2) 演算を、状態ベクトル上で実行する手段と、
を含み、前記演算は、異なる運動量状態の要素とボクセルに関する要素の移動との間の相互作用をモデル化し、少なくとも演算のうちのいくつかは浮動小数点数を使用して実行され、そして、少なくとも演算のうちのいくつかは整数値を使用して実行されることを特徴とするコンピュータシステム。 - 状態ベクトルは、特定の運動量状態における単位体積当たりの要素の密度を表わす複数の整数を有することを特徴とする請求項31記載の方法。
- ボクセルの大きさ及び配向とは独立に大きさが適応させられ配向された少なくとも1つの表面の表現をメモリに格納することをさらに有し、浮動小数点数を使用して実行される演算は少なくとも1つの表面との要素の相互作用をモデル化する演算を有することを特徴とする請求項31記載の方法。
- 浮動小数点数から整数値までの推移は、物理的プロセスの物理的特性を保存する方法で生成されることを特徴とする請求項31記載の方法。
- 状態ベクトルのエントリは、ボクセルの特定の運動量状態において単位体積当たりの要素の密度を表わすことを特徴とする請求項2記載のコンピュータシステム。
- 状態ベクトルは、特定の運動量状態で単位体積当たりの要素の密度を表わし、可能な2つを越える値を有している複数の整数を有することを特徴とする請求項36記載のコンピュータシステム。
- 相互作用演算は整数値を使用して実行され、表面相互作用演算は実数の値代表者を使用して実行されることを特徴とする請求項37記載のコンピュータシステム。
- 表面相互作用演算は浮動小数点数を使用して、実行されることを特徴とする請求項38記載のコンピュータシステム。
- 部分的ボクセルとして表面によって交差するボクセルを表わすことを、さらに有していることを特徴とする請求項2記載のコンピュータシステム。
- 前記少なくとも1つの表面の表現は、ボクセルの大きさ及び配向とは独立に大きさが適応させられ配向され、組合せでは、少なくとも1つの表面を表わす複数の面を有し、さらに、表面相互作用演算は面の近くの少なくとも1つのボクセルでの面と要素との間の相互作用をモデル化することを特徴とする請求項2記載のコンピュータシステム。
- 要素は流体の質点を表わし、また、面は流体がその上を流れる少なくとも1つの表面を表わすことを特徴とする請求項41記載のコンピュータシステム。
- 表面相互作用演算は、
面と相互に作用する少なくとも1つのボクセルの第1のセットから要素を集める行程と、
集められた要素と面との間の相互作用をモデル化して表面相互作用要素のセットを生成する行程と、
表面相互作用要素を、面と相互に作用する少なくとも1つの第2のボクセルのセットへ分散する行程と、からなることを特徴とする請求項41記載のコンピュータシステム。 - ボクセルの第1のセットはボクセルの第2のセットと同一であることを特徴とする請求項43記載のコンピュータシステム。
- 少なくとも1面の部分によって占められるボクセルのために、任意の面によって占められないボクセルの部分を表わす因子を、格納することを、さらに有していることを特徴とする請求項43記載のコンピュータシステム。
- ボクセルから集める場合、ボクセルのための因子が考慮されることを特徴とする請求項45記載のコンピュータシステム。
- ボクセルの第1のセットは、要素が集められている運動量状態の速度を表わすベクトルを備えた面に関する垂直方向を表わすベクトルのベクトル内積によって定義された領域の少なくとも1つの部分を重複する少なくとも1つのボクセルを含んでいることを特徴とする請求項43記載のコンピュータシステム。
- 領域の体積は、面の表面面積を掛けたベクトル内積と等しく、ボクセルの第1のセットは、部分的に体積を重複するボクセルをすべて含んでいることを特徴とする請求項47記載のコンピュータシステム。
- 他の少なくとも1つの面から要素を集めることを、さらに有していることを特徴とする請求項43記載のコンピュータシステム。
- 集められた要素と面の間の相互作用は、表面相互作用要素のセットが少なくとも1つの境界条件を満たすように、モデル化されることを特徴とする請求項43記載のコンピュータシステム。
- 面の接線の方向にある集められた要素の結合した運動量と面の接線の方向にある表面相互作用要素の結合した運動量との間の差が、面によって表わされる表面によって有されている表面摩擦の程度に関連づけられたとき、境界条件は満たされることを特徴とする請求項50記載のコンピュータシステム。
- 面に垂直な集められた要素の結合した運動量と面に垂直な表面相互作用要素の結合した運動量との間の差が、ボクセルの第1のセットの少なくとも1つのボクセルよって定義された領域の圧力と等しいとき、補足境界条件は満たされることを特徴とする請求項51記載のコンピュータシステム。
- 集められた要素の結合した質量が表面相互作用要素の結合した質量と等しいとき、補足境界条件は満たされることを特徴とする請求項52記載のコンピュータシステム。
- 集められた要素の結合したエネルギーが表面相互作用要素の結合したエネルギーと等しいとき、補足境界条件は満たされることを特徴とする請求項53記載のコンピュータシステム。
- 面は表面摩擦がない表面を表わし、そして、面の接線の方向にある集められた要素の結合した運動量と面の接線の方向にある表面相互作用要素の結合した運動量とが等しいとき、境界条件は満たされることを特徴とする請求項50記載のコンピュータシステム。
- 面に垂直な集められた要素の結合した運動量と面に垂直な表面相互作用要素の結合した運動量との間の差が、ボクセルの第1のセットの少なくとも1つのボクセルよって定義された領域の圧力と等しいとき、境界条件は満たされることを特徴とする請求項50記載のコンピュータシステム。
- 集められた要素の結合した質量が表面相互作用要素の結合した質量と等しいとき、境界条件は満たされることを特徴とする請求項50記載のコンピュータシステム。
- 集められた要素の結合したエネルギーが表面相互作用要素の結合したエネルギーと等しいとき、境界条件は満たされることを特徴とする請求項50記載のコンピュータシステム。
- 状態ベクトルは、特定の運動量状態を表わす複数の整数を有し、そして、表面相互作用演算は実数の値代表者を使用して、実行されることを特徴とする請求項43記載のコンピュータシステム。
- 表面相互作用要素が少なくとも1つのボクセルの第2のセットへ分散されたとき、状態ベクトルの整数値がオーバフロー又はアンダーフローしないことを保証することを、さらに有することを特徴とする請求項59記載のコンピュータシステム。
- 表面相互作用要素が少なくとも1つのボクセルの第2のセットへ分散されたとき、状態ベクトルの整数値がオーバフロー又はアンダーフローしないことを保証しつつ、ボクセルの質量、運動量及びエネルギーを保存することを、さらに有することを特徴とする請求項60記載のコンピュータシステム。
- ボクセルの大きさ及び配向と独立に配向され大きさが適応させられる2つの表面の表現は、メモリに格納されることを特徴とする請求項2記載のコンピュータシステム。
- 異なる大きさを有している複数のボクセルのための状態ベクトルはメモリに格納され、そして、表面相互作用演算は表面と異なる大きさを有している少なくとも2つのボクセルとの間の相互作用を説明することを特徴とする請求項2記載のコンピュータシステム。
- 状態ベクトルは、特定の運動量状態における単位体積当たりの要素の密度を表わす複数の整数を有することを特徴とする請求項32記載のコンピュータシステム。
- ボクセルの大きさ及び配向とは独立に大きさが適応させられ配向された少なくとも1つの表面の表現をメモリに格納することをさらに有し、浮動小数点数を使用して実行される演算は少なくとも1つの表面との要素の相互作用をモデル化する演算を有することを特徴とする請求項32記載のコンピュータシステム。
- 浮動小数点数から整数値までの推移は、物理的プロセスの物理的特性を保存する方法で生成されることを特徴とする請求項32記載のコンピュータシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/566,032 US5848260A (en) | 1993-12-10 | 1995-12-01 | Computer system for simulating physical processes |
US08/566,032 | 1995-12-01 | ||
PCT/US1996/018452 WO1997021195A1 (en) | 1995-12-01 | 1996-11-15 | Computer system for simulating physical processes |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000502200A JP2000502200A (ja) | 2000-02-22 |
JP3932142B2 true JP3932142B2 (ja) | 2007-06-20 |
Family
ID=24261178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP52128997A Expired - Lifetime JP3932142B2 (ja) | 1995-12-01 | 1996-11-15 | 物理的プロセスをシミュレーションするコンピュータシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5848260A (ja) |
EP (1) | EP0870283A1 (ja) |
JP (1) | JP3932142B2 (ja) |
WO (1) | WO1997021195A1 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5910902A (en) * | 1997-03-28 | 1999-06-08 | Exa Corporation | Computer simulation of physical processes |
US6089744A (en) * | 1997-12-29 | 2000-07-18 | Exa Corporation | Computer simulation of physical processes |
US5953239A (en) * | 1997-12-29 | 1999-09-14 | Exa Corporation | Computer simulation of physical processes |
US6205533B1 (en) * | 1999-08-12 | 2001-03-20 | Norman H. Margolus | Mechanism for efficient data access and communication in parallel computations on an emulated spatial lattice |
US6556961B1 (en) | 1999-12-30 | 2003-04-29 | Innovative Computing Group, Inc. | Method and apparatus for process modeling using a dynamical system |
JP4615543B2 (ja) * | 2000-12-12 | 2011-01-19 | 富士通株式会社 | 連成解析方法及びそのプログラム |
US6788593B2 (en) * | 2001-02-28 | 2004-09-07 | Rambus, Inc. | Asynchronous, high-bandwidth memory component using calibrated timing elements |
EP1260920A1 (en) * | 2001-05-23 | 2002-11-27 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method and apparatus for computing an interface of a fluid in a space |
NL1019045C2 (nl) * | 2001-09-26 | 2003-04-18 | Tno | Werkwijze en systeem voor het vervaardigen van een 3-dimensionaal voorwerp. |
DE102005024822A1 (de) * | 2005-05-27 | 2006-11-30 | Müller Weingarten AG | Verfahren zur Optimierung der Transportbewegung von Werkstücken in Transferpressen |
US20080004838A1 (en) * | 2005-12-08 | 2008-01-03 | The Johns Hopkins University | Air-Speed Wind Tunnel Data Analysis Suite |
US7948485B1 (en) * | 2005-12-12 | 2011-05-24 | Sony Computer Entertainment Inc. | Real-time computer simulation of water surfaces |
US7558714B2 (en) | 2006-08-10 | 2009-07-07 | Exa Corporation | Computer simulation of physical processes |
JP5371221B2 (ja) * | 2007-09-11 | 2013-12-18 | プロメテック・ソフトウェア株式会社 | 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法 |
US9984489B2 (en) * | 2011-07-27 | 2018-05-29 | Dreamworks Animation L.L.C. | Fluid dynamics framework for animated special effects |
EP3025260A4 (en) * | 2013-07-24 | 2017-03-15 | EXA Corporation | Lattice boltzmann collision operators enforcing isotropy and galilean invariance |
CA2919229C (en) * | 2013-07-31 | 2023-02-21 | Exa Corporation | Temperature coupling algorithm for hybrid thermal lattice boltzmann method |
AU2018212812A1 (en) | 2017-01-26 | 2019-08-15 | Dassault Systemes Simulia Corp. | Multi-phase flow visualizations based on fluid occupation time |
US11714040B2 (en) | 2018-01-10 | 2023-08-01 | Dassault Systemes Simulia Corp. | Determining fluid flow characteristics of porous mediums |
US11530598B2 (en) | 2018-08-21 | 2022-12-20 | Dassault Systemes Simulia Corp. | Determination of oil removed by gas via miscible displacement in reservoir rock |
US11379636B2 (en) | 2019-01-10 | 2022-07-05 | Dassault Systemes Simulia Corp. | Lattice Boltzmann solver enforcing total energy conservation |
JP7496049B2 (ja) * | 2019-01-10 | 2024-06-06 | ダッソー システムズ アメリカス コーポレイション | 全エネルギー保存を実施する格子ボルツマンソルバ |
US11613984B2 (en) | 2019-09-04 | 2023-03-28 | Dassault Systemes Simulia Corp. | Determination of hydrocarbon mobilization potential for enhanced oil recovery |
US11847391B2 (en) | 2020-06-29 | 2023-12-19 | Dassault Systemes Simulia Corp. | Computer system for simulating physical processes using surface algorithm |
US11907625B2 (en) | 2020-12-29 | 2024-02-20 | Dassault Systemes Americas Corp. | Computer simulation of multi-phase and multi-component fluid flows including physics of under-resolved porous structures |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4507726A (en) * | 1982-01-26 | 1985-03-26 | Hughes Aircraft Company | Array processor architecture utilizing modular elemental processors |
US4498134A (en) * | 1982-01-26 | 1985-02-05 | Hughes Aircraft Company | Segregator functional plane for use in a modular array processor |
US4729098A (en) * | 1985-06-05 | 1988-03-01 | General Electric Company | System and method employing nonlinear interpolation for the display of surface structures contained within the interior region of a solid body |
US4831519A (en) * | 1985-12-12 | 1989-05-16 | Itt Corporation | Cellular array processor with variable nesting depth vector control by selective enabling of left and right neighboring processor cells |
US4809202A (en) * | 1985-12-27 | 1989-02-28 | Thinking Machines Corporation | Method and apparatus for simulating systems described by partial differential equations |
JPH0648486B2 (ja) * | 1986-10-08 | 1994-06-22 | 日本電気株式会社 | ベクトルデ−タ処理装置 |
US4933895A (en) * | 1987-07-10 | 1990-06-12 | Hughes Aircraft Company | Cellular array having data dependent processing capabilities |
JP2635617B2 (ja) * | 1987-09-29 | 1997-07-30 | 株式会社東芝 | 半導体素子特性評価用の直交格子点の発生方法 |
US4989166A (en) * | 1988-07-12 | 1991-01-29 | Hitachi, Ltd. | Method for synthesizing analysis model and flow analysis system |
US5038302A (en) * | 1988-07-26 | 1991-08-06 | The Research Foundation Of State University Of New York | Method of converting continuous three-dimensional geometrical representations into discrete three-dimensional voxel-based representations within a three-dimensional voxel-based system |
US5159690A (en) * | 1988-09-30 | 1992-10-27 | Massachusetts Institute Of Technology | Multidimensional cellular data array processing system which separately permutes stored data elements and applies transformation rules to permuted elements |
JPH03276071A (ja) * | 1990-03-27 | 1991-12-06 | Yoshiomi Kondo | 流体及び電磁流体の物理量予測方法 |
US5377129A (en) * | 1990-07-12 | 1994-12-27 | Massachusetts Institute Of Technology | Particle interaction processing system |
ATE128567T1 (de) * | 1990-07-12 | 1995-10-15 | Massachusetts Inst Technology | Paralleler prozessor für flüssigkeitsdynamik. |
IE69192B1 (en) * | 1990-12-21 | 1996-08-21 | Hitachi Europ Ltd | A method of generating partial differential equations for simulation a simulation method and a method of generating simulation programs |
US5442733A (en) * | 1992-03-20 | 1995-08-15 | The Research Foundation Of State University Of New York | Method and apparatus for generating realistic images using a discrete representation |
JP3426647B2 (ja) * | 1992-06-24 | 2003-07-14 | 日本電信電話株式会社 | 3次元トポグラフィシミュレーションのための一般化されたソリッドモデリング |
US5361385A (en) * | 1992-08-26 | 1994-11-01 | Reuven Bakalash | Parallel computing system for volumetric modeling, data processing and visualization |
US5424963A (en) * | 1992-11-25 | 1995-06-13 | Photon Research Associates, Inc. | Molecular dynamics simulation method and apparatus |
US5606517A (en) * | 1994-06-08 | 1997-02-25 | Exa Corporation | Viscosity reduction in physical process simulation |
US5548694A (en) * | 1995-01-31 | 1996-08-20 | Mitsubishi Electric Information Technology Center America, Inc. | Collision avoidance system for voxel-based object representation |
-
1995
- 1995-12-01 US US08/566,032 patent/US5848260A/en not_active Expired - Lifetime
-
1996
- 1996-11-15 EP EP96940800A patent/EP0870283A1/en not_active Withdrawn
- 1996-11-15 WO PCT/US1996/018452 patent/WO1997021195A1/en not_active Application Discontinuation
- 1996-11-15 JP JP52128997A patent/JP3932142B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1997021195A1 (en) | 1997-06-12 |
EP0870283A4 (ja) | 1998-10-14 |
EP0870283A1 (en) | 1998-10-14 |
JP2000502200A (ja) | 2000-02-22 |
US5848260A (en) | 1998-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3932142B2 (ja) | 物理的プロセスをシミュレーションするコンピュータシステム | |
US5594671A (en) | Computer system for simulating physical processes using multiple-integer state vectors | |
US5606517A (en) | Viscosity reduction in physical process simulation | |
US10762252B2 (en) | Temperature coupling algorithm for hybrid thermal lattice boltzmann method | |
US8346522B2 (en) | Computer simulation of physical processes | |
US5640335A (en) | Collision operators in physical process simulation | |
US11847391B2 (en) | Computer system for simulating physical processes using surface algorithm | |
US11379636B2 (en) | Lattice Boltzmann solver enforcing total energy conservation | |
US11763048B2 (en) | Computer simulation of physical fluids on a mesh in an arbitrary coordinate system | |
EP1044419A1 (en) | Computer simulation of physical processes | |
CN112749518A (zh) | 用于模拟物理过程的计算机系统 | |
Jaiswal et al. | Fast deterministic solution of the full Boltzmann equation on graphics processing units | |
CN113673177B (zh) | 网格空隙空间识别和自动种子设定检测 | |
Nastase et al. | A parallel hp-multigrid solver for three-dimensional discontinuous Galerkin discretizations of the Euler equations | |
Somers et al. | Obtaining numerical results from the 3D FCHC-lattice gas | |
CN111428423A (zh) | 实现总能量守恒的晶格玻尔兹曼求解器 | |
Oborn et al. | Time-Reversed Art Directable Smoke Simulation. | |
Zimmerman et al. | A Comparative Study of 2D Numerical Methods with GPU Computing | |
Kordulla | On the efficient use of large data bases in the numerical solution of the Navier-Stokes equations on a CRAY computer | |
Shamsuddin | Solid Deformation Modeling Techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060606 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060831 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20061016 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061206 |
|
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: 20070213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070309 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100323 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110323 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120323 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130323 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140323 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |