(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-19
(45)【発行日】2024-07-29
(54)【発明の名称】コンピュータ支援設計によって定められた形状における物体間ギャップの検出
(51)【国際特許分類】
G06F 30/23 20200101AFI20240722BHJP
G06F 30/10 20200101ALI20240722BHJP
G06F 30/28 20200101ALI20240722BHJP
【FI】
G06F30/23
G06F30/10
G06F30/28
【外国語出願】
(21)【出願番号】P 2019139030
(22)【出願日】2019-07-29
【審査請求日】2022-07-26
(32)【優先日】2018-07-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514180812
【氏名又は名称】ダッソー システムズ アメリカス コーポレイション
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100141553
【氏名又は名称】鈴木 信彦
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【氏名又は名称】上杉 浩
(72)【発明者】
【氏名】サムラート ゴスワミ
(72)【発明者】
【氏名】ゲンナジー ブレンコフ
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2007-334820(JP,A)
【文献】特開2015-026173(JP,A)
【文献】特開2015-122068(JP,A)
【文献】国際公開第2013/070434(WO,A1)
【文献】米国特許出願公開第2010/0114536(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 - 30/398
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムがコンピュータ支援設計(CAD)生成図面における第1の立体上の第1の点集合を選択するステップと、
前記CAD生成図面における第2の立体上の第2の点集合を識別するステップと、
前記第1の点集合における少なくとも1つの点(第1の点)と、前記第2の点集合における少なくとも1つの点(第2の点)との間の少なくとも1つのギャップを識別するステップと、
前記第1の点及び前記第2の点のそれぞれにおける前記第1
の立体及び前記第2の立体のそれぞれの表面に垂直な2つの半直線の交点によって形成される角度を表す角度値を含む一連の基準に基づいて前記第1の点と前記第2の点との間の前記ギャップを、有意なギャップ又は有意でないギャップとして分類するステップと、
を含むことを特徴とするコンピュータ実施方法。
【請求項2】
前記ギャップを分類するステップは、
前記ギャップを表す前記一連の基準を決定するステップと、
前記決定された基準を該基準の閾値と比較するステップと、
前記決定された基準と前記閾値との比較に従って前記ギャップを分類するステップと、
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項3】
前記一連の基準は、前記第1の点と前記第2の点との間の物理的距離に対応する長さ値を含む、
請求項1に記載のコンピュータ実施方法。
【請求項4】
少なくとも1つのギャップを識別するステップは、前記第1の点を含む前記第1の点集合及び前記第2の点を含む前記第2の点集合の点が所与の四面体の内部に存在しないような四面体で構成されたドロネー3次元メッシュ(ドロネーメッシュ)を前記ギャップに適用することによって、前記第1の立体と前記第2の立体との間の識別された前記少なくとも1つのギャップの体積を求めるステップをさらに含む、
請求項1に記載のコンピュータ実施方法。
【請求項5】
前記第1の立体にも前記第2の立体にも接するエッジの長さに基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも1つの四面体を前記体積から除外するステップをさらに含む、
請求項4に記載のコンピュータ実施方法。
【請求項6】
前記四面体のエッジである底辺と、前記第1の立体の前記表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも1つの四面体を前記体積から除外するステップをさらに含む、
請求項4に記載のコンピュータ実施方法。
【請求項7】
前記四面体のエッジである底辺と、前記第1の立体の前記表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも1つの四面体を前記体積から除外するステップをさらに含む、
請求項4に記載のコンピュータ実施方法。
【請求項8】
前記CAD生成図面において有意として分類された前記ギャップを少なくとも充填形状で埋めて、補正されたCAD生成図面を提供するステップをさらに含む、
請求項1に記載のコンピュータ実施方法。
【請求項9】
前記ギャップを少なくとも埋めることは、前記ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合を識別する、
請求項8に記載のコンピュータ実施方法。
【請求項10】
前記補正されたCAD生成図面は、物理的対象の表現であり、前記コンピュータ実施方法は、
前記補正されたCAD生成図面から、前記物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成するステップと、
1又は2以上のコンピュータシステムが前記シミュレーション空間において流体流をシミュレートするステップと、
をさらに含む、請求項9に記載のコンピュータ実施方法。
【請求項11】
1又は2以上の処理装置と、
前記1又は2以上の処理装置に動作可能に結合されたメモリと、
命令を記憶した1又は2以上の記憶装置と、
を備えたシステムであって、前記命令は、前記1又は2以上の処理装置によって実行された時に、前記システムを、
物理的対象のコンピュータ支援設計(CAD)生成図面における第1の立体上の第1の点集合を識別し、
前記CAD設計における第2の立体上の第2の点集合を識別し、
前記第1の点集合及び前記第2の点集合の四面体のドロネーメッシュ
をギャップに適用することによって、前記第1の立体と前記第2の立体との間の
前記ギャップの体積を求め、
前記四面体のエッジである底辺と、前記第1の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも1つの四面体を前記体積から除外する、
ように構成する、
ことを特徴とするシステム。
【請求項12】
前記ギャップの前記体積を求めるように構成された前記システムは、前記第1の立体及び前記第2の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するようにさらに構成される、
請求項11に記載のシステム。
【請求項13】
前記第1の立体にも前記第2の立体にも接するエッジの長さに基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも1つの四面体を前記体積から除外するようにさらに構成される、
請求項12に記載のシステム。
【請求項14】
前記CAD生成図面において少なくとも有意として分類された前記ギャップを充填形状で埋めて、前記ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合である補正されたCAD生成図面を提供するようにさらに構成される、
請求項11に記載のシステム。
【請求項15】
前記補正されたCAD生成図面は、物理的対象の表現であり、前記システムは、
前記補正されたCAD生成図面から、前記物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成し、
前記シミュレーション空間において流体流をシミュレートする、
ようにさらに構成される、請求項14に記載のシステム。
【請求項16】
非一時的ハードウェア記憶装置に有形的に記憶された、コンピュータ支援設計図におけるギャップを識別するためのコンピュータプログラム製品であって、該コンピュータプログラム製品は命令を含み、該命令は、システムによって実行された時に、前記システムに、
CAD設計における第1の立体上の第1の点集合を識別することと、
前記CAD設計における第2の立体上の第2の点集合を識別することと、
前記第1の点集合及び前記第2の点集合の
四面体のドロネ
ーメッシュを前記ギャップに適用することによって、前記第1の立体と前記第2の立体との間の前記ギャップの体積を求めることと、
前記四面体のエッジである底辺と、前記第1の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも1つの四面体を前記体積から除外することと、
を行わせる、ことを特徴とするコンピュータプログラム製品。
【請求項17】
前記ギャップの前記体積を求めるための前記命令は、前記第1の立体及び前記第2の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するための命令をさらに含む、
請求項16に記載のコンピュータプログラム製品。
【請求項18】
前記ギャップの前記体積を求めるための前記命令は、前記第1の立体にも前記第2の立体にも接するエッジの長さに基づいて、少なくとも1つの四面体を前記体積から除外するための命令をさらに含む、
請求項17に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
〔優先権の主張〕
本出願は、2018年7月30日に出願された「CAD形状間ギャップの検出(Detection of Gap between CAD Geometries)」という名称の米国仮特許出願第62/712099号に対する合衆国法典第35編第119条(e)に基づく優先権を主張するものであり、この文献の内容は全体が引用により本明細書に組み入れられる。
【0002】
本開示は、物体の形状を規定する技術に関する。
【背景技術】
【0003】
コンピュータ支援設計(CAD)は、コンピュータシステムを使用して設計の作成、補正、分析又は最適化を支援するものである。コンピュータ支援設計(CAD)には多くの用途がある。CADの1つの用途は、CAD図面が、流体流(fluid flow)シミュレーションのための物体形状を定める基礎としての役割を果たすことである。
【0004】
計算流体力学(CFD)は、流体流にまつわる問題を解決する流体力学の一分野である。いくつかの実装では、コンピュータシステムが、液体及び気体と境界条件によって定められた表面との相互作用をシミュレートするのに必要な計算を実行する。計算流シミュレーションの一種が、いわゆる格子ボルツマン法である。流体シミュレーションを実行するプロセスの一部は、シミュレーションに関連する物体の形状を規定することを含む。この形状は、しばしばコンピュータ支援設計(CAD)を用いて規定することができる。例えば、CADシステムを使用して、自動車、風力タービン、空気ダクトなどのシミュレートすべき物理的対象の形状を規定することができる。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許出願公開第11/463673号明細書
【文献】米国特許第7558714号明細書
【文献】米国特許第5594671号明細書
【文献】米国特許出願公開第2013/0151221(A1)号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
CADシステムを用いた作業時にしばしば発生する1つの問題は、規定した形状内に意図せぬギャップが存在することである。この問題を解決する従来の手法は大部分が手動であり、非常に面倒である。
【0007】
1つの方法では、各内部ノードが正確に8つの子ノードを有するツリーデータ構造である八分木ベースの干渉検出コードを使用する。八分木を使用して、3次元空間を再帰的に8つの象限に細分化することによって分割することができる。この従来の解決法は、ギャップがどこに存在するかについての概算を行うものにすぎず、有意義なギャップの記述を行うものではない。残りの従来の解決法は手動であり、一連の面が識別されると、ユーザがこれらの面の境界エッジの最近点射影又は延長(nearest-point projection or extension)を適用して、ギャップを埋める一連の新たな表面を生成する。この解決法の有効性は、ギャップを埋めるために形成される新たな表面の輪郭を境界エッジがどれほど良好に表すかに依存する。いくつかの例では、ギャップ領域の周囲のCADエッジが好適なギャップ面を生成できない場合、関与する表面上にユーザが手動で(単複の)線を引いて一連の輪郭を生成し、これらを結んでギャップ面を形成する。
【課題を解決するための手段】
【0008】
ある態様によれば、コンピュータ実装方法が、コンピュータシステムがコンピュータ支援設計(CAD)生成図面における第1の立体(solid)上の第1の点集合(set of points)を選択するステップと、CAD生成図面における第2の立体上の第2の点集合を識別するステップと、第1の点集合における少なくとも1つの点(第1の点)と、第2の点集合における少なくとも1つの点(第2の点)との間の少なくとも1つのギャップを識別するステップと、第1の点と第2の点との間のギャップを、有意なギャップ又は有意でないギャップとして分類するステップと、を含む。
【0009】
以下の特徴のうちの1つ又は2つ以上は、上記の態様に含めることができるさらなる特徴の一部である。
【0010】
ギャップを分類するステップは、ギャップを表す一連の基準を決定するステップと、決定された基準を基準の閾値と比較するステップと、決定された基準と閾値との比較に従ってギャップを分類するステップと、をさらに含む。基準は、第1の点と第2の点との間の物理的距離に対応する長さ値と、それぞれの第1の点及び第2の点における第1及び第2の各立体の表面に垂直な2つの半直線の交点によって形成される角度を表す角度値とを含む。
【0011】
少なくとも1つのギャップを識別するステップは、第1の点を含む第1の点集合及び第2の点を含む第2の点集合の点が所与の四面体の内部に存在しないような四面体で構成されたドロネー(Delaunay)3次元メッシュ(ドロネーメッシュ)をギャップに適用することによって、第1の立体と第2の立体との間の識別された少なくとも1つギャップの体積を求めるステップをさらに含む。方法は、第1の立体にも第2の立体にも接するエッジの長さに基づいて、ドロネーメッシュの四面体のうちの少なくとも1つの四面体を体積から除外するステップをさらに含む。方法は、四面体のエッジである底辺と、第1の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、ドロネーメッシュの四面体のうちの少なくとも1つの四面体を体積から除外するステップをさらに含む。方法は、四面体のエッジである底辺と、第1の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、ドロネーメッシュの四面体のうちの少なくとも1つの四面体を体積から除外するステップをさらに含む。
【0012】
方法は、CAD生成図面において少なくとも有意として分類されたギャップを充填形状で埋めて、補正されたCAD生成図面を提供するステップをさらに含む。ギャップ充填プロセスは、ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合を識別する。補正されたCAD生成図面は、物理的対象の表現であり、方法は、補正されたCAD生成図面から、物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成するステップと、1又は2以上のコンピュータシステムがシミュレーション空間において流体流をシミュレートするステップと、をさらに含む。
【0013】
さらなる態様によれば、システムが、1又は2以上の処理装置と、1又は2以上の処理装置に動作可能に結合されたメモリと、命令を記憶した1又は2以上の記憶装置とを備え、命令が、1又は2以上の処理装置によって実行された時に、システムを、物理的対象のコンピュータ支援設計(CAD)生成図面における第1の立体上の第1の点集合を識別し、CAD設計における第2の立体上の第2の点集合を識別し、第1の点集合及び第2の点集合の四面体のドロネーメッシュをギャップに適用することによって、第1の立体と第2の立体との間のギャップの体積を求めるように構成する。
【0014】
以下の特徴のうちの1つ又は2つ以上は、上記の態様に含めることができるさらなる特徴の一部である。
【0015】
システムは、ギャップの体積を求めるように構成されるとともに、第1の立体及び第2の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するようにさらに構成される。システムは、第1の立体にも第2の立体にも接するエッジの長さに基づいて、ドロネーメッシュの四面体のうちの少なくとも1つの四面体を体積から除外するようにさらに構成される。システムは、四面体のエッジである底辺と、第1の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも1つの四面体を体積から除外するようにさらに構成される。
【0016】
システムは、CAD生成図面において少なくとも有意として分類されたギャップを充填形状で埋めて、ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合である補正されたCAD生成図面を提供するようにさらに構成される。補正されたCAD生成図面は、物理的対象の表現であり、システムは、補正されたCAD生成図面から、物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成し、シミュレーション空間において流体流をシミュレートするようにさらに構成される。
【0017】
さらなる態様によれば、非一時的ハードウェア記憶装置に有形的に記憶された、コンピュータ支援設計図におけるギャップを識別するためのコンピュータプログラム製品が命令を含み、この命令は、システムによって実行された時に、システムに、CAD設計における第1の立体上の第1の点集合を識別することと、CAD設計における第2の立体上の第2の点集合を識別することと、第1の点集合及び第2の点集合のドロネー3次元四面体メッシュをギャップに適用することによって、第1の立体と第2の立体との間のギャップの体積を求めることと、を行わせる。
【0018】
以下の特徴のうちの1つ又は2つ以上は、上記の態様に含めることができるさらなる特徴の一部である。
【0019】
ギャップの体積を求めるための命令は、第1の立体及び第2の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するための命令をさらに含む。ギャップの体積を求めるための命令は、第1の立体にも第2の立体にも接するエッジの長さに基づいて、少なくとも1つの四面体を体積から除外するための命令をさらに含む。ギャップの体積を求めるための命令は、四面体のエッジである底辺と、第1の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも1つの四面体を体積から除外するための命令をさらに含む。
【0020】
上記の態様のうちの1つ又は2つ以上は、以下の利点のうちの1つ又は2つ以上を含むことができる。
【0021】
上記の態様は、コンピュータ支援設計(CAD)図面が、流体流シミュレーション、コンピュータ支援製造などの物体の形状(特徴)を定める基礎として現行の方法よりも良好に機能できるようにすることができる。本明細書で説明する方法は、現在使用されている手動の面倒な技法を避けることができる方法を提供すると同時に、全体として現行の方法よりも効率的なプロセスを提供する。本明細書で説明する方法は、より正確なギャップ位置の推定及び有意義なギャップ規模の記述をもたらす一方で、識別されたギャップをユーザが手動で埋める必要がある手動解決策を回避する。
【0022】
いくつかの実装では、補正された(単複の)CAD図面を用いて、流体流シミュレーションを実行するシステム内にシミュレーション環境を生成することができる。流体流シミュレーションは、これらの流体と、補正された(単複の)CAD図面によって表される物体の境界条件によって定められる表面との相互作用を伴い、この場合、シミュレーションに関連する物体の形状(物理的特徴)は、規定された形状内に意図しない有意なギャップを含まずに定められる。
【0023】
添付図面及び以下の説明には、本明細書で説明する主題の1又は2以上の実施形態の詳細を示す。説明、図面及び特許請求の範囲からは、本主題のその他の特徴、態様及び利点が明らかになるであろう。
【図面の簡単な説明】
【0024】
【
図1】流体流シミュレーションシステムを示す図である。
【
図2】格子ボルツマンモデルシミュレーションを構築する動作を示すフローチャートである。
【
図3】2つのCAD生成立体間ギャップのギャップ処理の態様を示すフロー図である。
【
図4】ギャップ処理の態様を理解する上で有用な、CAD立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【
図4A】2つのCAD生成立体間ギャップのギャップ処理の態様を示すフロー図である。
【
図5】ギャップ処理の態様を理解する上で有用な、CAD立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【
図6】ギャップ処理の態様を理解する上で有用な、CAD立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【
図7】ギャップ処理の態様を理解する上で有用な、CAD立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【
図8】2つのCAD生成立体間ギャップのギャップ処理の態様を示すフロー図である。
【
図9】ユークリッド空間で表した1つのLBMモデルの速度成分を示す図である(先行技術)。
【
図10】ユークリッド空間で表した別のLBMモデルの速度成分を示す図である(先行技術)。
【
図11】補正されたCAD図面を使用する物理プロセスシミュレーションシステムが従う手順のフローチャートである。
【
図12】マイクロブロックの透視図である(先行技術)。
【
図13A】
図1のシステムが使用する格子構造の図である(先行技術)。
【
図13B】
図1のシステムが使用する格子構造の図である(先行技術)。
【
図14】可変分解能技術を示す図である(先行技術)。
【
図15】可変分解能技術を示す図である(先行技術)。
【
図17】表面のファセットの影響を受ける領域を示す図である(先行技術)。
【
図18】表面動力学のフローチャートを示す図である(先行技術)。
【
図19】表面動力学の実行手順のフローチャートである(先行技術)。
【発明を実施するための形態】
【0025】
現在のギャップ検出/補正法の問題点は、これらの手法が、正しいギャップ充填を生成できないことが多い個々のCAD表面形状及びこれらの境界エッジに依存しきったほとんど又は完全に手動的なプロセスである点である。2つの立体間のギャップは、2つの立体の基本特性であり、これらの2つの立体がコンピュータ支援設計及び/又は製造の目的で(面に関して)どのように個別に区分的に表現されたものであるかには依存しない。
【0026】
図1に、例えば物理的対象表現の周囲の流体流をシミュレートするためのシステム10を示す。この実装のシステム10は、クライアント-サーバアーキテクチャに基づくものであり、超並列コンピュータシステム12として実装されるサーバシステム12と、クライアントシステム14とを含む。サーバシステム12は、メモリ18と、バスシステム11と、インターフェイス20(例えば、ユーザインターフェイス/ネットワークインターフェイス/ディスプレイ又はモニタインターフェイスなど)と、処理装置24とを含む。メモリ18内には、メッシュ準備エンジン32及びシミュレーションエンジン34が存在する。
【0027】
図1では、メッシュ準備エンジン32をメモリ18内に示しているが、メッシュ準備エンジンは、サーバ12とは異なるシステム上で実行されるサードパーティアプリケーションとすることもできる。メッシュ準備エンジン32は、メモリ18内で実行されるか、それともサーバ12とは異なるシステム上で実行されるかにかかわらず、ユーザ指定のメッシュ定義30を受け取り、メッシュを準備してシミュレーションエンジン34に送信する。シミュレーションエンジン34は、粒子衝突相互作用モジュールと、粒子境界モデルモジュールと、移流動作を実行する移流モジュールとを含む。システム10は、2D及び/又は3Dメッシュ及びライブラリを記憶するデータリポジトリ38にアクセスする。
【0028】
シミュレーションエンジンにおけるシミュレーションの実行前に、シミュレーション空間をボクセルの集合としてモデル化する。通常、シミュレーション空間は、コンピュータ支援設計(CAD)プログラムを用いて生成される。例えば、CADプログラムを用いて、風洞内に位置するマイクロデバイスを描くことができる。その後、CADプログラムによって生成されたデータを処理して適切な分解能の格子構造を追加し、シミュレーション空間内の物体及び表面を考慮する。上述したように、CAD図面を使用してシミュレーション空間を生成する課題の1つとして、CAD生成形状におけるギャップの識別とその正しい充填とに対処する問題が挙げられる。
【0029】
以下では、有意なギャップをほとんど又は全く有していない好適な品質の(単複の)CAD図面を構築する、メッシュ準備エンジンと共に使用されるコンピュータ支援設計(CAD)補正プロセス40について説明する。基本的に、(
図3で説明する)CAD補正プロセス40は、メッシュ準備エンジン32の(単複の)CAD図面31を強化するものである。
【0030】
次に、
図2に、物理的対象表現の周囲の流体流をシミュレートするプロセスを示す。本明細書で説明する例では、物理的対象が翼形部である。しかしながら、物理的対象はあらゆる形状とすることができ、具体的には平面及び/又は(単複の)曲面を有することもできるので、翼形部の使用は例示にすぎない。プロセスは、例えばクライアントシステム14から、又はデータリポジトリ38からの検索によって、シミュレートする物理的対象のメッシュを受け取る(34a)。このメッシュは、CAD補正プロセス40(
図3)によって提供される、有意なギャップをほとんど又は全く有していない、メッシュ準備エンジンと共に使用される好適な品質の(単複の)CAD図面に基づくものである。他の実施形態では、外部システム又はサーバ12のいずれかが、シミュレートする物理的対象のメッシュをユーザ入力に基づいて生成する。このプロセスは、検索したメッシュから幾何学量を事前計算し(34b)、検索したメッシュに対応する事前計算された幾何学量を用いて動的格子ボルツマンモデルシミュレーションを実行する(34c)。格子ボルツマンモデルシミュレーションは、粒子分布の発展のシミュレーションと、LBMメッシュにおける次のセル
への粒子の移流とを含む。
【0031】
次に、
図3に、CAD設計ギャップ補正プロセス40(CAD設計プロセス40)を示す。CAD設計プロセス40では、CAD設計プログラムに、いくつかの規定のギャップ基準パラメータを構成する(42)。1つの規定パラメータの組は、頂角サイズの閾値α
thであり、他のパラメータはギャップ長の閾値d
thである。CAD設計プロセスは、例えばシミュレートする立体物の規定表現からの比較的複雑な形状などの形状を表す(単複の)CAD図面を生成する(44)。(単複の)CAD図面を生成したら(又は、(単複の)CAD図面の生成中に)、ギャップ検出処理46を適用する。検出された全ての有意なギャップ47についてギャップ充填処理48を適用して、ユーザ定義基準に従って埋められた検出された(有意な)ギャップを有する修正された一連の(単複の)CAD図面を生成する(49)。
【0032】
ユーザ定義基準は、予想されるCAD図面の使用態様に基づく。例えば、翼形部を横切る高マッハ数の流動シミュレーションでは、車のミラーを横切る低マッハ数のシミュレーションと比べて厳しい基準を適用することができる。ユーザ定義基準は、閾値dth及びαthの設定値を伴う。以下では、CAD設計プロセス40をLBMシミュレーションのギャップ補正に適用するが、これはCAD設計プロセス40を使用できる方法の一例にすぎない。例えば、CAD設計プロセス40は、他の計算流動力学問題、及び設計又はシミュレーション環境などを提供する上でCAD図面を使用する他の用途におけるギャップ補正に使用することもできる。
【0033】
図4に、有意なギャップと有意でないギャップとを含む立体物52の一部と立体物54の一部とを示す。この例では立体52である第1の立体の表面上に点56(b’)を与えると、点56において立体52の表面に垂直な半直線58(単一の端点を有して一方向に無限に延びる線)が得られる。半直線58上の点62(c’)では、立体54の表面上の点60(a’)が、点56から点62に延びる、点60から点62までの線分(参照せず)と同じ長さの半直線58の線分(参照せず)を定める。点56、60及び62は、頂角アルファ64(α’)を有する二等辺三角形を形成する。三角形の底辺68の長さ(d’)及び頂角64のサイズは、設定された基準パラメータと比較されるギャップのパラメータである。
【0034】
また、
図4にはギャップの例も示す(表面52及び54の点a、bと半直線bc上の点cとの間で検出された角度アルファ(α)における長さ(d)の線分abは、長さd及び角度αの閾値基準d
th及びα
thの値と比べて有意ではない)。
【0035】
次に、
図4Aに、
図4の立体物52の一部及び立体物54の一部に適用されるギャップ検出処理46を示す。CAD設計プロセス40では、システムが、ギャップ検出処理46によって立体52の表面上の点56を識別し(46a)、点56における立体52の表面に垂直な半直線58を決定する(46b)。システムは、半直線58上の点62について、点56から点62までの線分と点60から点62までの線分とが同じ長さであるように立体54の表面上の点60を決定する(46c)。
【0036】
システムは、三角形68の底辺の長さ及び頂角64のサイズを基準パラメータ値と比較する(46d)。底辺68の長さが閾値長さ以下であって頂角64のサイズが閾値角以上である場合には、点56及び60が有意であり、ギャップの一部を埋めるべきであると判断する。
【0037】
次に、
図5に、ギャップ識別アルゴリズムが異なる点をどのように包含又は除外できるかを2つの立体物の図によって示す。この例では、システムが、立体100及び立体70aである2つの立体間のギャップを識別する。システムは、立体70b上の点72を識別する。システムは、立体70a上における点72の最近接点として点74を識別する。これらの点間の線76の長さ(距離)を閾値距離d
thと比較する。底辺としての線76と、点72における立体70bの表面に垂直な線分で構成される辺80とを有する二等辺三角形の頂角78を閾値角α
thと比較する。この例では、点72と点74との間の距離が閾値距離未満であるが、頂角78が閾値角未満であり、従って点72はギャップから除外される。
【0038】
別の例として、システムは、立体70b上の点82を識別する。システムは、立体70a上における点82の最近接点として点84を識別する。点間の線86の長さ(距離)を閾値距離dthと比較する。底辺としての線86と、点82における立体70bの表面に垂直な線分で構成される辺90とを有する二等辺三角形の頂角88を閾値角αthと比較する。この例では、点82と点84との間の距離が閾値距離未満であって頂角88が閾値角を上回り、従って点82はギャップに含まれる。
【0039】
最後の例として、システムは、立体70b上の点92を識別する。システムは、立体70a上における点92の最近接点として点94を識別する。点間の線96の長さ(距離)を閾値距離dthと比較する。底辺としての線96と、点92における立体70bの表面に垂直な線分で構成される辺100とを有する二等辺三角形の頂角98を閾値角αthと比較する。この例では、点92と点94との間の距離が閾値距離を上回っていて頂角98が閾値角未満であり、両基準が満たされていないので、点92はギャップから除外される。
【0040】
実際問題として、ユーザ定義基準を満たすことができるような点対の組は無限に存在するので、一連のCAD立体から全ての点対(a,b)を見つけることは明らかに困難な作業である。しかしながら、近似を適用することによって同様の結果を取得することができる。
【0041】
次に、
図6に、CAD生成立体物122及び立体124の「モザイク」面の対を示す。「モザイク」とは、1種類又は数種類の合同な平面図形によるギャップ又は重複を含まないギャップの被覆(一部又は全体)を意味する。上述したようにギャップの近似位置を識別したら、ギャップに近い立体122の表面と立体124の表面とをモザイク化して、立体122の表面領域をサンプリングした点集合132aと、立体124の表面領域をサンプリングした点集合134とを生成する。なお、CAD立体は3次元物体として表される。本明細書では、説明を目的として図形を2次元で表現している。
【0042】
点集合132及び134を共に入力として提供して、これらの点集合を含む3次元体積のドロネー四面体分割を形成することができる。2次元空間では、平面内の所与の離散点集合Pのドロネー三角形分割が、P内の点がDT(P)内のいずれの三角形の外接円の内部にも存在しない三角形分割DT(P)である。ドロネー三角形分割は、三角形分割における三角形の全ての角度の最小角を最大化して、細長い三角形を避ける傾向にある。3次元空間(3D)では、点集合のドロネー四面体分割が、4つの点に及ぶ各四面体の外接球に集合内の他の全ての点が存在しない四面体を生成する。
【0043】
システムは、本明細書では「マルチ立体」と呼ぶAにもBにも接する四面体(例えば、マルチ立体136及びマルチ立体138)を識別する。システムは、全ての識別されたマルチ立体の組から、ユーザが提供した許容値(dth,αth)を満たすマルチ立体を選択し、ここでの距離閾値パラメータ(dth)は、dthよりも長い底辺140を有するセルを排除するために使用され、角度パラメータ(αth)は、セルの外心がαthよりも小さな立体角を成すセルを排除するために使用される。
【0044】
ここで
図7も参照すると、この基準を満たすマルチ立体136及び138の和集合(まとめて140)が、2つの立体間のギャップの近似体積を与える。ギャップが定められると、マルチ立体136、138の和集合で構成される形状によってギャップを埋めることができる。システムは、マルチ立体の和集合を使用して立体間のギャップを埋めることができる。
【0045】
次に、
図8に、CAD形状のギャップを規定するプロセス例150を示す。プロセス150は、CAD設計の第1の立体上の第1の点集合を識別する(152)。第1の点集合は、例えばモザイク化アルゴリズムを用いて識別することができる。プロセス150は、CAD設計の第2の立体上の第2の点集合を識別する(154)。第2の点集合は、例えばモザイク化アルゴリズムを用いて識別することができる。プロセスは、所与の1つの四面体形状(図示せず)の体積内に第1の点集合及び第2の点集合の点が存在しないような四面体(四面体形状)で構成されたドロネーメッシュに基づいて、第1の立体と第2の立体との間のギャップの体積を求める(156)。
【0046】
いくつかの実装では、プロセス150が、例えば第1の立体及び第2の立体のそれぞれに接する角部を有する四面体を識別することによって、第1の立体と第2の立体との間のギャップを規定する体積を求める。いくつかの実装では、プロセス150が、第1の立体にも第2の立体にも接するエッジの長さに基づいて、体積から四面体を除外することができる。プロセス150は、底辺が四面体のエッジであって一辺が第1の立体の表面に垂直である二等辺三角形の頂角に基づいて、体積から四面体を除外することができる。CAD図面内のギャップを埋めたら、このCAD図面を使用して、流体シミュレーションに使用されるシミュレーション体積を規定することができる。
【0047】
(単複の)CAD図面内の有意なギャップを埋めたら、この(単複の)CAD図面を使用して、シミュレーションエンジン34が実行する流体流シミュレーションに使用されるシミュレーション体積又はメッシュを規定することができる。例えば、全体が引用により本明細書に組み入れられる「物理プロセスのコンピュータシミュレーション(COMPUTER SIMULATION OF PHYSICAL PROCESS)」という名称の(今では米国特許第7558714号として取得されている)米国特許出願第11/463673号に記載されるように。
【0048】
以下の
図11において説明する手順では、ギャップ補正されたCAD図面を使用してシミュレーション空間を構成する流動シミュレーションプロセスについて説明する。以下のマイクロブロックの斜視図である
図12、格子構造の図である
図13A~
図13B、可変分解能技術の図である
図14及び
図15粒子の動きの図である
図16、並びに表面のファセットの影響を受ける領域の図である
図17などの図では、これらの
図12~
図17の各々に、上記で参照した特許に示されているという理由で先行技術とのラベルを付けている。
【0049】
しかしながら、これらの図は、上記の特許に示した時には、本明細書で説明するギャップ補正プロセスについての説明を行っていないため、ギャップ補正されたCAD図面を使用してシミュレーション空間を構成する流動シミュレーションに対して行われる修正を全く考慮していない。
【0050】
モデルシミュレーション空間
LBMベースの物理プロセスシミュレーションシステムでは、一連の離散速度c
iで評価した分布関数値f
iによって流体流が表現される。分布関数の動力学は、f
i(0)が平衡分布関数として知られている以下のように定義される方程式I1によって制御され、
【数1】
方程式(I1)
式中、
【数2】
である。
【0051】
この方程式は、分布関数fiの時間発展を表す周知の格子ボルツマン方程式である。左辺は、いわゆる「流動過程」による分布の変化を表す。流動過程は、あるメッシュ位置において流体ポケットが開始した後に、複数の速度ベクトルのうちの1つに沿って次のメッシュ位置に移動する時点である。この時点で、「衝突係数」、すなわち開始流体ポケットに対する近隣の流体ポケットの影響を計算する。流体は別のメッシュ位置に移動することしかできず、従って全ての速度の全ての成分が共通速度の倍数になるように正しい速度ベクトルの選択が必要である。
【0052】
第1の方程式の右辺は、流体ポケット同士の衝突に起因する分布関数の変化を表す上述した「衝突演算子」である。特定の形の衝突演算子は、Bhatnagar-Gross-Krook(BGK)演算子のものである。衝突演算子は、「平衡」形態である第2の方程式によって与えられる規定値に分布関数を至らしめる。
【0053】
BGK演算子は、たとえ衝突の詳細がどうであろうと、分布関数は、衝突を通じて{f
eq(x,v,t)}によって与えられる明確に定義された局所平衡に近付くという物理的議論に従って構築される。
【数3】
方程式(I2)
ここでのパラメータτは、衝突を介した平衡までの特性緩和時間を表す。粒子(例えば、原子又は分子)に関して言えば、通常、この緩和時間は定数と見なされる。
【0054】
このシミュレーションから、質量ρ及び流体速度uなどの従来の流体変数が方程式(I3)の単純和として得られる。
【数4】
方程式(I3)
ここでのρ、u及びTは、それぞれ流体の密度、速度及び温度であり、Dは、(必ずしも物理的空間次元とは等しくない)離散化速度空間の次元である。
【0055】
対称性を考慮することにより、速度値の集合は、配置空間内でスパニングした時に特定の格子構造を形成するように選択される。このような離散系の動特性は、以下の形を有するLBEに従い、
fi(x+ci,t+1)-fi(x,t)=Ci(x,t)
ここでの衝突演算子は、通常は上述したようなBGKの形を取る。平衡分布形態を正しく選択することにより、格子ボルツマン式が正しい流体力学及び熱流体力学をもたらすことを理論的に示すことができる。すなわち、fi(x,t)から導き出される流体力学的モーメントは、巨視的極限ではナヴィエ・ストークス式に従う。これらのモーメントは、上記の方程式(I3)によって定義される。
【0056】
ci及びwiの集合的な値はLBMモデルを規定する。LBMモデルは、スケーラブルコンピュータプラットフォーム上に効率的に実装して、時間非定常流(time unsteady flows)及び複雑な境界条件のために高いロバスト性を伴って実行することができる。
【0057】
ボルツマン式から流体系の動きの巨視的方程式を取得する標準技術は、完全なボルツマン式の連続近似を取るチャップマン-エンスコッグ法(Chapman-Enskog method)である。流体系では、密度のわずかな乱れが音速で伝わる。気体系では、一般に音速が温度によって決まる。流れにおける圧縮率の影響の重要性は、特性速度と音速との比率によって測定され、これはマッハ数として知られている。
【0058】
以下では、上記のギャップ充填CADプロセスと併用して流体流シミュレーションを行うことができるLBMベースのシミュレーションシステムの一般的説明を行う。LBMベースの物理プロセスシミュレーションシステムのさらなる説明については、上記で引用により組み入れた米国特許を参照されたい。
【0059】
図9を参照すると、第1のモデル(2D-1)200は、21個の速度を含む2次元モデルである。これらの21個の速度のうち、1つ(205)は動いていない粒子を表し、3組の4つの速度は、格子のx軸又はy軸のいずれかに沿って正の方向又は負の方向のいずれかに正規化速度(r)(210~213)、正規化速度の2倍(2r)(220~223)、又は正規化速度の3倍(3r)(230~233)のいずれかで動いている粒子を表し、2組の4つの速度は、x格子軸及びy格子軸の両方に関して正規化速度(r)(240~243)又は正規化速度の2倍(2r)(250~253)で動いている粒子を表す。
【0060】
図10に、各速度が
図10の矢印のうちの1つによって表される39個の速度を含む3次元モデルである第2のモデル(3D-1)260を示す。これらの39個の速度のうち、1つは動いていない粒子を表し、3組の6つの速度は、格子のx軸、y軸又はz軸に沿って正の方向又は負の方向のいずれかに正規化速度(r)、正規化速度の2倍(2r)、又は正規化速度の3倍(3r)のいずれかで動いている粒子を表し、8つの速度は、x、y、z格子軸の3つ全てに関して正規化速度(r)で動いている粒子を表し、12個の速度は、x、y、z格子軸の2つに関して正規化速度の2倍(2r)で動いている粒子を表す。
【0061】
101個の速度を含む3D-2モデル及び37個の速度を含む2D-2モデルなどのさらに複雑なモデルを使用することもできる。101個の速度から成る3次元モデル3D-2では、1つが動いていない粒子(グループ1)を表し、3組の6つの速度が、格子のx、y又はz軸に沿って正の方向又は負の方向のいずれかに正規化速度(r)、正規化速度の2倍(2r)、又は正規化速度の3倍(3r)のいずれかで動いている粒子(グループ2、4及び7)を表し、3組の8つの速度が、x、y、z格子軸の3つ全てに関して正規化速度(r)、正規化速度の2倍(2r)、又は正規化速度の3倍(3r)で動いている粒子(グループ3、8及び10)を表し、12個の速度が、x、y、z格子軸の2つに関して正規化速度の2倍(2r)で動いている粒子(グループ6)を表し、24個の速度が、x、y、z格子軸のうちの2つに対して正規化速度(r)及び正規化速度の2倍(2r)で動いていて残りの軸に関しては動いていない粒子(グループ5)を表し、24個の速度が、x、y、z格子軸のうちの2つに対して正規化速度(r)で動いていて残りの軸に関して正規化速度の3倍(3r)で動いている粒子(グループ9)を表す。
【0062】
37個の速度から成る2次元モデル2D-2では、1つが動いていない粒子(グループ1)を表し、3組の4つの速度が、格子のx軸又はy軸のいずれかに沿って正の方向又は負の方向のいずれかに正規化速度(r)、正規化速度の2倍(2r)、又は正規化速度の3倍(3r)のいずれかで動いている粒子(グループ2、4及び7)を表し、2組の4つの速度が、x及びy格子軸の両方に関して正規化速度(r)又は正規化速度の2倍(2r)で動いている粒子を表し、8つの速度が、x及びy格子軸の一方に関して正規化速度(r)で動いていて他方の軸に関して正規化速度の2倍(2r)で動いている粒子を表し、8つの速度が、x及びy格子軸の一方に関して正規化速度(r)で動いていて他方の軸に対して正規化速度の3倍(3r)で動いている粒子を表す。
【0063】
上述したLBMモデルは、2次元及び3次元の両方における流れの数値シミュレーションのための特定のクラスの効率的でロバストな離散速度動力学モデルを提供する。この種のモデルは、特定の離散速度の組と、これらの速度に関連する重みとを含む。これらの速度は、特に格子ボルツマンモデルとして知られている種類の離散速度モデルの正確で効率的な実装を容易にする速度空間におけるデカルト座標の格子点と一致する。このようなモデルを用いて、高い忠実度で流れをシミュレートすることができる。
【0064】
図11に、手順270に従って動作して流体流などの物理プロセスをシミュレートする物理プロセスシミュレーションシステムを示す。流動シミュレーションの前に、上述した補正されたCAD図面を用いて、シミュレーション空間をボクセルの集合としてモデル化する(ステップ272)。シミュレーション空間は、コンピュータ支援設計(CAD)プログラムと、CAD生成図面のギャップ補正処理とを用いて生成される。例えば、CADプログラムを用いて、風洞内に位置するマイクロデバイスを描くことができ、ギャップ補正プロセスは、(d
th及びα
thの閾値設定以外の)大幅なユーザ介入を伴わずに有意なギャップを識別してこれらを埋めることができる。その後、CADプログラムによって生成された補正データを処理して適切な分解能の格子構造を追加し、シミュレーション空間内の物体及び表面を考慮する。
【0065】
格子の分解能は、シミュレートされるシステムのレイノルズ数に基づいて選択することができる。レイノルズ数は、流れの粘度(v)、流れにおける物体の特性長(L)及び流れの特性速度(u)に関連する。
Re=uL/v 方程式(I4)
【0066】
物体の特性長は、物体の大規模な特徴を表す。例えば、マイクロデバイスの周囲の流れをシミュレートする場合には、マイクロデバイスの高さを特性長と見なすことができる。小さな物体領域(例えば、自動車のサイドミラー)の周囲の流れに関心がある時には、シミュレーションの分解能を高めるか、或いは関心領域の周囲に高分解能の領域を使用することができる。格子の分解能が高まるにつれてボクセルの次元は減少する。
【0067】
状態空間はfi(x,t)として表され、ここでのfiは、時点tにおいて3次元ベクトルxによって示される、ある格子サイトにおける状態iの単位容積当たりの要素又は粒子の数(すなわち、状態iの粒子の密度)を表す。既知の時間増分では、粒子の数が単純にfi(x)として示される。格子サイトの全ての状態の組み合わせは、f(x)として示される。
【0068】
状態の数は、各エネルギーレベル内の考えられる速度ベクトル数によって決まる。速度ベクトルは、x、y及びzの3次元を有する空間内の整数の線形速度から成る。多重種シミュレーションでは状態の数が増加する。
【0069】
各状態iは、特定のエネルギーレベル(すなわち、エネルギーレベル0、1又は2)における異なる速度ベクトルを表す。各状態の速度ciは、以下のように3次元の各次元における「速度」と共に示される。
ci=(cix,civ,ciz) 方程式(I5)
【0070】
エネルギーレベルゼロの状態は、どの次元においても動いていない停止した粒子を表し、すなわちcstopped=(0,0,0)である。エネルギーレベル1の状態は、3次元のうちの1つの次元において±1の速度を有し、他の2つの次元においてゼロ速度を有する粒子を表す。エネルギーレベル2の状態は、3次元全てにおいて±1の速度を有する粒子、或いは3次元のうちの1つの次元において±2の速度を有し、他の2つの次元においてゼロ速度を有する粒子を表す。
【0071】
3つのエネルギーレベルの考えられる順列を全て生成すると、全部で39個の可能な状態(1つのエネルギー0状態、6つのエネルギー1状態、8つのエネルギー3状態、6つのエネルギー4状態、12のエネルギー8状態及び6つのエネルギー9状態)が得られる。
【0072】
各ボクセル(すなわち、各格子サイト)は、状態ベクトルf(x)によって表される。状態ベクトルは、ボクセルの状態を完全に定め、39個のエントリを含む。39個のエントリは、1つのエネルギー0状態、6つのエネルギー1状態、8つのエネルギー3状態、6つのエネルギー4状態、12のエネルギー8状態及び6つのエネルギー9状態に対応する。システムは、この速度集合を使用することによって、達成された平衡状態ベクトルのためのマクスウェル-ボルツマン統計を生じることができる。
【0073】
ボクセルは、処理効率のためにマイクロブロックと呼ばれる2×2×2の容量にグループ化される。これらのマイクロブロックは、ボクセルの並行処理を可能にして、データ構造に関連するオーバーヘッドを最小化するように編成される。マイクロブロック内のボクセルの略語はNi(n)として定義され、ここでのnは、マイクロブロック内の格子サイトの相対的位置を表し、n∈{0,1,2,...,7}である。
【0074】
【0075】
図13A及び
図13Bを参照すると、表面S(
図13A)をシミュレーション空間(
図13A)内にファセットFαの集合として表している。
S={F
α} 方程式(I6)
ここでのαは、特定のファセットを列挙する指数である。ファセットはボクセル境界に制限されず、比較的少数のボクセルにファセットが影響を与えるように、典型的にはファセットに隣接するボクセルのサイズと同程度又はそれよりもわずかに小さなサイズを有する。ファセットには、表面動力学を実装する目的で特性が割り当てられる。具体的に言えば、各ファセットF
αは、単位法線(n
α)と、表面積(A
α)と、中心位置(x
α)と、ファセットの表面動特性を表すファセット分布関数(f
i(α))とを有する。総エネルギー分布関数q
i(α)は、ファセットとボクセルの相互作用の流量分布と同様に扱われる。
【0076】
図14を参照すると、シミュレーション空間の異なる領域内で異なるレベルの分解能を用いて処理効率を高めることができる。通常は、物体322の周囲の領域320に最も関心があり、従ってこの領域を最高分解能でシミュレートする。粘度の効果は物体からの距離と共に減少するので、減少レベルの分解能(すなわち、拡大されたボクセル容積)を用いて、物体322から増加する距離に配置された領域324、326をシミュレートする。
【0077】
同様に、
図15に示すように、低レベルの分解能を用いて物体342のそれほど重要でない特徴の周囲の領域340をシミュレートする一方で、最高レベルの分解能を用いて物体342の最も重要な特徴(例えば、先端面及び後端面)の周囲の領域344をシミュレートすることもできる。中心から遠い領域346は、最低レベルの分解能及び最大ボクセルを用いてシミュレートされる。
【0078】
C.ファセットの影響を受けるボクセルの識別
再び
図11を参照すると、シミュレーション空間をモデル化したら(ステップ272)、1又は2以上のファセットの影響を受けるボクセルを識別する(ステップ274)。ボクセルは、複数の形でファセットの影響を受けることができる。まず、1又は2以上のファセットが交わるボクセルは、交わっていないボクセルに比べて容量が減少するという点で影響を受ける。この理由は、ファセットと、ファセットが表す表面の下にある材料とがボクセルの一部を占有するからである。分数係数(fractional factor)P
f(x)は、ファセットの影響を受けないボクセルの部分(すなわち、流れをシミュレートする対象である流体又は他の材料が占有できる部分)を示す。交わっていないボクセルでは、P
f(x)が1に等しい。
【0079】
ファセットへの粒子の移動又はファセットからの粒子の受け取りを行うことによって1又は2以上のファセットと相互作用するボクセルも、ファセットの影響を受けるボクセルとして識別される。ファセットが交わる全てのボクセルは、ファセットから粒子を受け取る少なくとも1つの状態と、ファセットに粒子を移動させる少なくとも1つの状態とを含むようになる。ほとんどの場合、さらなるボクセルもこのような状態を含む。
【0080】
図16を参照すると、ファセットF
αは、非ゼロの速度ベクトルc
iを有する各状態iについて、速度ベクトルC
iとファセットの単位法線n
αとのベクトルドット積(|c
in
i|)の大きさによって定められる高さと、ファセットの表面積A
αによって定められる底面とを有する平行六面体G
iαによってその容積V
iαが次式に等しくなるように定められた領域から粒子を受け取り、又はこの領域に粒子を移動させる。
V
iα=|c
in
α|A
α 方程式(I7)
【0081】
ファセットFαは、状態の速度ベクトルがファセットの方に向いている(|cini|<0の)時には容積Viαから粒子を受け取り、状態の速度ベクトルがファセットから離れる方に向いている(|cini|>0の)時にはこの領域に粒子を移動させる。後述するように、内角などの非凸面特徴の近傍で起こり得る状態である、別のファセットが平行六面体Giαの一部を占有する時には、この式を修正しなければならない。
【0082】
ファセットFαの平行六面体Giαは、複数のボクセルの一部又は全部に重なり合うことができる。ボクセルの数又はその一部は、ボクセルのサイズに対するファセットのサイズと、状態のエネルギーと、格子構造に対するファセットの配向とに依存する。影響を受けるボクセルの数は、ファセットのサイズと共に増加する。従って、上述したように、通常、ファセットのサイズは、ファセットの近くに位置するボクセルのサイズと同程度又はそれよりも小さくなるように選択される。
【0083】
平行六面体Giαが重なり合ったボクセルの部分N(x)は、Viα(x)として定められる。この項を使用すると、ボクセルN(x)とファセットFαとの間を移動する状態iの粒子の流束Γiα(x)は、ボクセルの状態iの粒子の密度(Ni(x))と、ボクセルが重なり合った領域の容積(Viα(x))とを乗算したものに等しい。
Γiα(x)=Ni(x)Viα(x) 方程式(I8)
【0084】
平行六面体Giαに1又は2以上のファセットが交わる時には、以下の条件が当てはまり、
Viα=ΣVα(x)+ΣViα(β) 方程式(I9)
ここでの第1の加算は、Giαが重なり合った全てのボクセルに相当し、第2項は、Giαに交わる全てのファセットに相当する。平行六面体Giαに別のファセットが交わらない時には、この式が以下のように変形する。
Viα=ΣViα(x) 方程式(I10)
【0085】
D.シミュレーションの実行
1又は2以上のファセットの影響を受けるボクセルが識別されたら(ステップ274)、タイマを初期化してシミュレーションを開始する(ステップ276)。シミュレーションの各時間増分中には、粒子と表面ファセットとの相互作用を考慮した移流段階(ステップ278~286)によってボクセルからボクセルへの粒子の移動をシミュレートする。次に、衝突段階(ステップ288)によって各ボクセル内の粒子の相互作用をシミュレートする。その後、タイマを増分する(ステップ200)。増分したタイマによってシミュレーションが完了した旨が示されない(ステップ202)場合には、移流段階と衝突段階と(ステップ278~200)を繰り返す。増分したタイマによってシミュレーションが完了した旨が示された(ステップ202)場合には、シミュレーションの結果を記憶及び/又は表示する(ステップ204)。
【0086】
1.表面の境界条件
表面との相互作用を正しくシミュレートするために、各ファセットは4つの境界条件を満たさなければならない。まず、ファセットが受け取った粒子の合計質量が、ファセットが移動させた粒子の合計質量に等しくなければならない(すなわち、ファセットへの正味質量流束がゼロに等しくなければならない)。次に、ファセットが受け取った粒子の合計エネルギーが、ファセットが移動させた粒子の合計エネルギーに等しくなければならない(すなわち、ファセットへの正味エネルギー流束がゼロに等しくなければならない)。これらの2つの条件は、各エネルギーレベル(すなわち、エネルギーレベル1及び2)での正味質量流束がゼロに等しくなるよう求めることによって満たすことができる。
【0087】
他の2つの境界条件は、ファセットと相互作用する粒子の正味運動量に関連する。本明細書では滑り面と呼ぶ表面摩擦がない表面では、正味接線運動量流束がゼロに等しくなければならず、正味法線運動量流束がファセットの局所圧力に等しくなければならない。従って、ファセットの法線nαに垂直な受け取った合計運動量の成分と、ファセットの法線nαに垂直な移動させた合計運動量の成分と(すなわち、接線成分)が等しくなければならず、ファセットの法線nαに平行な受け取った合計運動量の成分と、ファセットの法線nαに平行な移動させた合計運動量の成分と(すなわち、法線成分)の差分がファセットの局所圧力に等しくなければならない。非滑り面では、ファセットが受け取った粒子の合計接線運動量に対するファセットが移動させた粒子の合計接線運動量が、表面の摩擦によって摩擦量に関連する倍数だけ減少する。
【0088】
2.ボクセルからファセットへの収集
粒子と表面との間の相互作用をシミュレートする最初のステップとして、ボクセルから粒子を集めてファセットに提供する(ステップ278)。上述したように、ボクセルN(x)とファセットFαとの間の状態iの粒子の流束は以下の通りである。
Γiα(x)=Ni(x)Viα(x) 方程式(I11)
【0089】
この式から、各状態iがファセットFαの方を向いている(cinα<0の)場合、ボクセルによってファセットFαに提供される粒子の数は以下の通りである。
ΓiαV→F=ΣXΓiα(x)=ΣXNi(x)Viα(x) 方程式(I12)
【0090】
Viα(x)が非ゼロの値を有するボクセルのみを加算しなければならない。上述したように、ファセットのサイズは、Viα(x)が少数のボクセルのみについて非ゼロの値を有するように選択される。Viα(x)及びPf(x)は非整数値を有することもできるので、Γα(x)は実数として記憶され処理される。
【0091】
3.ファセットからファセットへの移動
次に、粒子がファセット間を移動する(ステップ280)。ファセットF
αが流入状態(c
in
α<0)にある平行六面体G
iαに別のファセットF
βが交わる場合、ファセットF
αが受け取る状態iの粒子の一部はファセットF
βから流入するようになる。具体的に言えば、ファセットF
αは、前回の時間増分中にファセットF
βによって生成された状態iの粒子の一部を受け取るようになる。この関係を
図19に示しており、ここでは、ファセットF
βが交わる平行六面体G
iαの一部380が、ファセットF
αが交わる平行六面体G
iβの一部382に等しい。上述したように、交わった部分をV
iα(β)として示す。この項を用いて、ファセットF
βとファセットF
αとの間の状態iの粒子の流束を以下のように表すことができ、
Γ
iα(β,t-1)=Γ
i(β)V
iα(β)/V
iα 方程式(I.13)
ここでのΓ
i(β,t-1)は、前回の時間増分中にファセットF
βによって生成された状態iの粒子の測定量である。この式から、各状態iがファセットF
αの方を向いている(c
in
α<0の)場合、他のファセットによってファセットF
αに提供される粒子の数は以下のようになり、
Γ
iαF→F=Σ
βΓ
iα(β)=Σ
βΓ
i(β,t-1)V
iα(β)/V
iα 方程式(I.14)
ファセット内への状態iの粒子の全流束は以下のようになる。
Γ
iIN(α)=Γ
iαF→F+Γ
iαF→F=Σ
xN
i(x)V
iα+Σ
βΓ
i(β,t-1)V
iα(β)/V
iα 方程式(I.15)
【0092】
ファセット分布関数とも呼ばれるファセットの状態ベクトルN(α)は、ボクセル状態ベクトルのM個のエントリに対応するM個のエントリを有する。Mは、離散格子速度の数である。ファセット分布関数の入力状態N(α)は、これらの状態になる粒子の流束を容積Viαで除算したものに等しく設定され、
cinα<0の場合、以下のようになる。
Ni(α)=ΓiIN(α)/Viα 方程式(I.16)
【0093】
ファセット分布関数は、ファセットからの出力流束を生成するためのシミュレーションツールであり、必ずしも実際の粒子を表すものではない。正確な出力流束を生成するには、分布関数の他の状態に値を割り当てる。上述した内向き状態を投入する手法を用いて外向き状態を投入すると、
cinα≧0の場合、
Ni(α)=ΓiOTHER(α)/Viα 方程式(I.17)
となり、ここでのΓiOTHER(α)は、上述したΓiIN(α)を生成するための手法を用いて、ただしこの手法を流入状態(cinα<0))以外の状態(cinα≧0)に適用して決定される。別の方法では、以前の時間からのΓiOUT(α)の値を用いて以下のようにΓiOTHER(α)を生成することもできる。
ΓiOTHER(α,t)=ΓiOUT(α,t-1) 方程式(I.18)
【0094】
平行状態(cinα=0)では、Viα及びViα(x)がいずれもゼロである。Ni(α)を求める式では、Viα(x)が(ΓiOTHER(α)の式からの)分子に現れ、Viαが(Ni(α)の式からの)分母に現れる。従って、Viα及びViα(x)がゼロに近付くと、平行状態のNi(α)は、Ni(α)の極限として決定される。ゼロ速度を有する状態の値(すなわち休止状態、並びに状態(0,0,0,2)及び(0,0,0,-2))は、シミュレーションの最初に温度及び圧力の初期条件に基づいて初期化される。その後、これらの値は時間をかけて調整される。
【0095】
4.ファセット表面動力学の実行
次に、各ファセットが上述した4つの境界条件を満たすように表面動力学を実行する(ステップ282)。
図20に、ファセットの表面動力学の実行手順を示す。最初に、ファセットにおける粒子の合計運動量P(α)を以下のように求めることによって、ファセットF
αに垂直な合計運動量を求める(ステップ392)。
全てのiについて、
【数5】
方程式(I.19)
この式から、以下のように法線運動量P
n(α)を求める。
P
n(α)=n
α・P(α) 方程式(I.20)
【0096】
次に、プッシング/プリング法を用いてこの法線運動量を排除(ステップ394)してNn-(α)を取り出す。この手法によれば、粒子は、法線運動量にのみ影響を与える形で状態間を移行する。このプッシング/プリング法は、引用により組み入れられる米国特許第5,594,671号に記載されている。
【0097】
その後、Nn-(α)の粒子を衝突させてボルツマン分布Nn-β(α)を生じさせる(ステップ396)。以下で流体力学の実行に関して説明するように、ボルツマン分布は、Nn-(α)に一連の衝突則を適用することによって達成することができる。
【0098】
次に、流入流束分布とボルツマン分布とに基づいてファセットFαの流出流束分布を求める(ステップ398)。まず、流入流束分布Γi(α)とボルツマン分布との差分を以下のように求める。
ΔΓi(α)=ΓiIN(α)-Nn-βi(α)Viα 方程式(I.21)
【0099】
この差分を使用すると、流出流束分布は、
n
αc
i>0の場合、以下のようになり、
Γ
iOUT(α)=N
n-βi(α)V
iα-.Δ.Γ
i*(α) 方程式(I.22)
ここでのi*は、状態iとは逆方向を有する状態である。例えば、状態iが(1,1,0,0)である場合、状態i*は(-1,-1,0,0)である。流出流束分布は、表面摩擦及びその他の因子を考慮してさらに精緻化することができ、
nαci>0の場合、以下のようになり、
Γ
iOUT(α)=N
n-Bi(α)V
iα-ΔΓ
i*(α)+C
f(n
α・c
i)-[N
n-βi*(α)-N
n-βi(α)]V
iα+(n
α・c
i)(t
1α・c
i)ΔN
j,1V
iα+(n
α・c
i)(t
2α・c
i)ΔN
j,2V
iα 方程式(I.23)
ここでのC
fは、表面摩擦の関数であり、t
iαは、n
αに垂直な第1の接線ベクトルであり、t
2αは、n
αとt
iαの両方に垂直な第2の接線ベクトルであり、ΔN
j,1及びΔN
j,2は、状態iのエネルギー(j)及び指示される接線ベクトルに対応する分布関数である。分布関数は、次式に従って決定され、
【数6】
方程式(I.24)
ここでのjは、エネルギーレベル1状態では1に等しく、エネルギーレベル2状態では2に等しい。
【0100】
ΓiOUT(α)の方程式の各項の関数は以下の通りである。第1項及び第2項は、ボルツマン分布を生じる上で衝突が効果的である限りは法線運動量流束境界条件を強制するが、接線運動量流束の例外を含む。第4項及び第5項は、この不十分な衝突に起因する離散性効果又は非ボルツマン構造を原因として生じ得る例外を補正する。最後に、第3項は、表面上の接線運動量流束の所望の変化を強制するように一定量の表面摩擦を追加する。摩擦係数Cfの生成については以下で説明する。なお、ベクトル操作に関与する全ての項は、シミュレーションの開始前に計算できる幾何学的因子である。
【0101】
この式から、接線速度が以下のように求められ、
u
i(α)=(P(α)-P
n(α)n
α)/ρ 方程式(I.25)
ここでのρは、以下のようなファセット分布の密度である。
【数7】
方程式(I.26)
【0102】
前回と同様に、流入流束分布とボルツマン分布との差分を以下のように求める。
ΔΓi(α)=ΓiIN(α)-Nn-βi(α)Viα 方程式(I.27)
【0103】
すると、流出流束分布は以下のようになり、
ΓiOUT(α)=Nn-βi(α)Viα-ΔΓi*(α)+Cf(nαci)[Nn-βi*(α)-Nn-βi(α)]Viα 方程式(I.28)
この式は、先の手法によって求めた流出流束分布の最初の2行に対応するが、異常な接線流束のための補正を必要としない。
【0104】
いずれかの方法を使用すると、結果として得られる流束分布は運動量流束条件を全て満たし、すなわち、
【数8】
方程式(I.29)
となり、ここでのp
αは、ファセットF
αにおける平衡圧であって、ファセットに粒子を提供するボクセルの平均密度及び温度値に基づき、u
αは、ファセットにおける平均速度である。
【0105】
質量及びエネルギー境界条件が確実に満たされるように、各エネルギーレベルjについて入力エネルギーと出力エネルギーとの差分を以下のように測定する。
【数9】
方程式(I.30)
ここでの添字jは、状態iのエネルギーを示す。次に、このエネルギー差を用いて差分項(difference term)を生成すると、
c
jin
α>0の場合、以下のようになる。
【数10】
方程式(I.31)
この差分項を用いて流出流束を修正すると、流速は、
c
jin
α>0の場合、以下のようになる。
Γ
αjiOUTf=Γ
αjiOUT+δΓ
αji 方程式(I.32)
この演算は、接線運動量流束をそのままにした状態で質量及びエネルギー流束を訂正する。ファセットの近傍において流れがおおよそ均一であって平衡に近い場合には、この調整はわずかなものである。結果として得られる調整後の法線運動量流束は、近傍の平均特性に近傍の非均一性又は非平衡特性に起因する補正をプラスしたものに基づく平衡圧である値へとわずかに変化する。
【0106】
5.ボクセルからボクセルへの移動
再び
図11を参照すると、3次元直線格子に沿ってボクセル間で粒子を移動させる(ステップ284)。このボクセルからボクセルへの移動は、ファセットと相互作用しないボクセル(すなわち、表面付近に存在しないボクセル)に対して行われる唯一の移動操作である。典型的なシミュレーションでは、表面と相互作用するほど十分に表面近くに存在しないボクセルがボクセルの大多数を構成する。
【0107】
この分離状態の各々は、3次元のx、y及びzの各々において格子に沿って整数速度で移動する粒子を表す。整数速度は、0、±1及び±2を含む。速度の符号は、対応する軸に沿った粒子の移動方向を示す。
【0108】
表面と相互作用しないボクセルの場合、この移動操作は計算的に極めて単純である。毎時間増分中に、状態の集団全体をその現在のボクセルから宛先ボクセルに移動させる。同時に、宛先ボクセルの粒子を、そのボクセルから独自の宛先ボクセルに移動させる。例えば、+1x及び+1y方向に移動しているエネルギーレベル1の粒子(1,0,0)は、その現在のボクセルから、x方向に+1上回り他の方向が0であるボクセルに移動させる。この粒子は、最後には移動前の状態と同じ状態の宛先ボクセル(1,0,0)に行き着く。ボクセル内の相互作用は、他の粒子及び表面との局所的相互作用に基づいてその状態の粒子総数を変化させることがある。変化しなければ、粒子は格子に沿って同じ速度で同じ方向に移動し続ける。
【0109】
この移動操作は、1又は2以上の表面と相互作用するボクセルでは若干複雑になる。この結果、1又は2以上の端数粒子(fractional particles)がファセットに移動することがある。このような端数粒子のファセットへの移動により、ボクセルに端数粒子が留まるようになる。これらの端数粒子を、ファセットに占有されたボクセルに移動させる。
【0110】
図17を参照すると、ボクセル362の状態iの粒子の一部360がファセット364に移動した時には(ステップ278)、残り部分366をファセット364が位置するボクセル368に移動させ、ここから状態iの粒子をファセット364に向ける。従って、状態集団が25に等しく、V
iα(x)が0.25に等しい(すなわち、ボクセルの4分の1が平行六面体G
iαに交わる)場合には、6.25の粒子がファセットF
αに移動し、18.75の粒子を、ファセットF
αに占有されたボクセルに移動させる。1つのボクセルに複数のファセットが交わることもあるので、1又は2以上のファセットに占有されたボクセルに移動する状態iの粒子の数N(f)は以下のようになり、
【数11】
方程式(I.33)
ここでのN(x)はソースボクセルである。
【0111】
6.ファセットからボクセルへの散乱
次に、各ファセットからの流出粒子をボクセルに散乱させる(ステップ286)。基本的に、このステップは、ボクセルからファセットに粒子が移動する収集ステップの逆である。ファセットF
αからボクセルN(x)に移動する状態iの粒子の数は以下のようになり、
【数12】
方程式(I.34)
ここでのP
f(x)は、部分的なボクセルの容積縮小に相当する。この式から、各状態iについて、ファセットからボクセルに向かう粒子の総数N(x)は以下のようになる。
【数13】
方程式(I.35)
【0112】
粒子をファセットからボクセルに散乱させ、これらの粒子を周囲のボクセルから移流した粒子と組み合わせて結果を整数化した後には、一定のボクセルの一定の方向がアンダーフロー(負になる)又はオーバーフロー(8ビット実装において255を超える)のいずれかになることがある。この結果、これらの量を許容できる値の範囲に収まるように切り捨てた後には、質量、運動量及びエネルギーが増加又は減少するようになる。このような発生を防ぐために、有害な状態を切り捨てる前に、限界を超えた質量、運動量及びエネルギーを蓄積する。状態を有するエネルギーでは、(アンダーフローに起因して)得られた又は(オーバーフローに起因して)失われた値に等しい質量が、同じエネルギーを有するランダムに(又は順次に)選択された状態に再び追加され、これ自体がオーバーフロー又はアンダーフローに影響されることはない。この質量及びエネルギーの追加によって生じるさらなる運動量を蓄積して、切り捨てからの運動量に追加する。同じエネルギー状態のみに質量を追加することにより、質量カウンタがゼロに達した時に質量及びエネルギーがいずれも補正される。最後に、運動量積算器がゼロに戻るまでプッシング/プリング法を用いて運動量を補正する。
【0113】
7.流体力学の実行
流体力学を実行する(
図11、ステップ288)。このステップは、マイクロ動力学操作又はボクセル内操作と呼ぶことができる。同様に、移流手順は、ボクセル間操作と呼ぶことができる。後述するマイクロ動力学操作を用いて、ファセットにおける粒子を衝突させてボルツマン分布を生成することもできる。
【0114】
流体力学は、格子ボルツマン方程式モデルにおいて、BGK衝突モデルとして知られている特定の衝突演算子によって保証される。この衝突モデルは、実際の流体系における分布の動力学を模倣する。衝突プロセスは、方程式1及び方程式2の右辺によって十分に説明することができる。移流ステップ後には、方程式3を用いた分布関数から流体系の保存量、具体的には密度、運動量及びエネルギーが取得される。これらの量から、方程式(2)にfeqで示す平衡分布関数が方程式(4)によって十分に規定される。いずれも表1に列挙する速度ベクトルセットci、重みの選択は、式2と相まって、巨視的挙動が正しい流体動力学方程式に従うことを保証する。
【0115】
可変分解能
例えば、粗ボクセル及び微小ボクセルなどの異なるサイズのボクセルを使用する(米国特許出願公開第2013/0151221号に記載されるような)可変分解能を使用することもできる。
【0116】
システムは、固有の過渡的な格子ボルツマンベースの物理学を活用することによって、現実世界の状態を正確に予測するシミュレーションを実行することができる。例えば、技術者らは、変更の影響が設計及び予算にとって最も重要である場合、いずれかの試作品を構築する前の設計プロセスの早期に製品性能を評価する。システムは、CAD形状を使用して、空気力学的シミュレーション、空気音響シミュレーション及び熱管理シミュレーションを正確かつ効率的に実行することができる。システムは、以下のような用途に対応するシミュレーションを実行することができる:空気力学(空力効率、車両操縦、汚れ及び水の管理、パネル変形、運転動特性)、空気音響学(温室の風切り音、車体底部の風騒音、隙間/シールの騒音、ミラー、警笛及び音色の騒音、サンルーフ及びウィンドウの打撃、通過騒音/都市騒音、冷却ファン騒音)、熱管理(冷却空気流、熱防護、ブレーキ冷却、ROA/吸気ポート)、環境制御(車室の快適性、HVACユニット及び分配システムの性能、HVACシステムとファン騒音、除霜と防曇)、動力伝達系(駆動系冷却、排気系、冷却ジャケット、エンジンブロック)、汚れ及び水の管理(ピラーのオーバーフロー、塵埃の蓄積、タイヤの水しぶき)。
【0117】
本明細書で説明した主題及び機能動作の実施形態は、(本明細書に開示した構造及びこれらの構造的同等物を含む)デジタル電子回路、有形的に具体化されたコンピュータソフトウェア又はファームウェア、コンピュータハードウェア、或いはこれらのうちの1つ又は2つ以上の組み合わせで実装することができる。本明細書で説明した主題の実施形態は、1又は2以上のコンピュータプログラム(すなわち有形の非一時的プログラムキャリア上に符号化された、データ処理装置が実行するための、又はこれらのデータ処理装置の動作を制御するためのコンピュータプログラム命令の1又は2以上のモジュール)として実装することができる。コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダム又はシリアルアクセスメモリデバイス、或いはこれらのうちの1つ又は2つ以上の組み合わせとすることができる。
【0118】
「データ処理装置」という用語はデータ処理ハードウェアを意味し、データを処理する全ての種類の装置、デバイス及び機械を含み、一例としてプログラマブルプロセッサ、コンピュータ、或いは複数のプロセッサ又はコンピュータを含む。この装置は、(例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)などの)専用論理回路を含むこともできる。この装置は、ハードウェアに加えて、任意に(例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、或いはこれらのうちの1つ又は2つ以上の組み合わせを構成するコードなどの)コンピュータプログラムの実行環境を形成するコードを含むこともできる。
【0119】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト又はコードと呼ぶこと又は記述することもできるコンピュータプログラムは、コンパイラ型言語又はインタープリタ型言語、宣言型言語又は手続き型言語を含むあらゆる形のプログラミング言語で書くことができ、スタンドアロンプログラム、又はモジュール、コンポーネント、サブルーチン、又はコンピュータ環境で使用するのに適した別のユニットとしての形を含むあらゆる形で展開することができる。コンピュータプログラムは、必須ではないが、ファイルシステム内のファイルに対応することができる。プログラムは、(例えば、対象プログラム専用の単一のファイル内の、又は複数の連動するファイル(例えば、1又は2以上のモジュール、サブプログラム、又はコードの一部を記憶するファイル)内の、マークアップ言語リソースに記憶された1又は2以上のスクリプトなどの)他のプログラム又はデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開することも、或いは1つのサイトに位置する、又は複数のサイトに分散して通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することもできる。
【0120】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサ又は専用マイクロプロセッサ、又はこれらの両方、或いは他のいずれか種類の中央処理装置に基づくことができる。コンピュータプログラム命令及びデータの記憶に適したコンピュータ可動媒体としては、一例として(EPROM、EEPROM及びフラッシュメモリデバイスなどの)半導体メモリデバイス、(内部ハードディスク又はリムーバブルディスクなどの)磁気ディスク、磁気光学ディスク、並びにCD ROM及びDVD-ROMディスクを含む全ての形態の媒体上不揮発性メモリ(non volatile memory on media)及びメモリデバイスが挙げられる。プロセッサ及びメモリは、専用論理回路によって補完することも、又は専用論理回路に組み込むこともできる。
【0121】
本明細書で説明した主題の実施形態は、(例えばデータサーバとしての)バックエンドコンポーネントを含む、又は(アプリケーションサーバなどの)ミドルウェアコンポーネントを含む、又は(ユーザが本明細書で説明した主題の実装と相互作用できるようにするグラフィカルユーザインターフェイス又はウェブブラウザを有するクライアントコンピュータなどの)フロントエンドコンポーネントを含む、或いは1又は2以上のこのようなバックエンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントのいずれかの組み合わせを含むコンピュータシステムに実装することができる。システムのコンポーネントは、(通信ネットワークなどの)いずれかの形又は媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)及びワイドエリアネットワーク(WAN)(例えば、インタネット)が挙げられる。
【0122】
コンピュータシステムは、クライアント及びサーバを含むことができる。クライアントとサーバは一般に、互いに遠く離れており、典型的には通信ネットワークを介して対話する。このクライアントとサーバの関係は、それぞれのコンピュータ上で実行される、互いにクライアント-サーバの関係を有するコンピュータプログラムによって生じる。実施形態によっては、(例えば、ユーザ装置とやりとりするユーザにデータを表示し、このユーザからユーザ入力を受けるために)クライアントとして機能するユーザ装置にサーバがデータ(例えば、HTMLページ)を送信することもある。ユーザ装置で生成されたデータ(例えば、ユーザインタラクションの結果)は、サーバにおいてユーザ装置から受け取ることができる。
【0123】
本主題の特定の実施形態について説明した。以下の特許請求の範囲には他の実施形態も含まれる。例えば、特許請求の範囲に記載した動作を異なる順序で実行しても望ましい結果を得ることができる。一例として、望ましい結果を達成するために、添付図に示した処理を必ずしも図示の特定の順序又は順番で行う必要はない。場合によっては、マルチタスク及び並行処理が有利な場合もある。