(57)【要約】      （修正有）【課題】コンピュータ支援設計におけるギャップを自動的に識別して埋めることができる方法及びコンピュータシステムを提供する。【解決手段】方法は、ＣＡＤ設計内の第１の立体上の第１の点集合を識別するステップと、ＣＡＤ設計内の第２の立体上の第２の点集合を識別するステップと、第１の点集合及び第２の点集合のドロネー四面体に基づいて、第１の立体と第２の立体との間のギャップの体積を求めるステップを含む。【選択図】図８
2020035434.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムがコンピュータ支援設計（ＣＡＤ）生成図面における第１の立体上の第１の点集合を選択するステップと、
前記ＣＡＤ生成図面における第２の立体上の第２の点集合を識別するステップと、
前記第１の点集合における少なくとも１つの点（第１の点）と、前記第２の点集合における少なくとも１つの点（第２の点）との間の少なくとも１つのギャップを識別するステップと、
前記第１の点と前記第２の点との間の前記ギャップを、有意なギャップ又は有意でないギャップとして分類するステップと、
を含むことを特徴とするコンピュータ実装方法。
【請求項２】
前記ギャップを分類するステップは、
前記ギャップを表す一連の基準を決定するステップと、
前記決定された基準を該基準の閾値と比較するステップと、
前記決定された基準と前記閾値との比較に従って前記ギャップを分類するステップと、
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記基準は、前記第１の点と前記第２の点との間の物理的距離に対応する長さ値と、前記それぞれの第１の点及び第２の点における前記第１及び第２の各立体の表面に垂直な２つの半直線の交点によって形成される角度を表す角度値とを含む、
請求項１に記載のコンピュータ実装方法。
【請求項４】
少なくとも１つのギャップを識別するステップは、前記第１の点を含む前記第１の点集合及び前記第２の点を含む前記第２の点集合の点が所与の四面体の内部に存在しないような四面体で構成されたドロネー３次元メッシュ（ドロネーメッシュ）を前記ギャップに適用することによって、前記第１の立体と前記第２の立体との間の前記識別された少なくとも１つギャップの体積を求めるステップをさらに含む、
請求項１に記載のコンピュータ実装方法。
【請求項５】
前記第１の立体にも前記第２の立体にも接するエッジの長さに基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも１つの四面体を前記体積から除外するステップをさらに含む、
請求項４に記載のコンピュータ実装方法。
【請求項６】
前記四面体のエッジである底辺と、前記第１の立体の前記表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも１つの四面体を前記体積から除外するステップをさらに含む、
請求項４に記載のコンピュータ実装方法。
【請求項７】
前記四面体のエッジである底辺と、前記第１の立体の前記表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも１つの四面体を前記体積から除外するステップをさらに含む、
請求項４に記載のコンピュータ実装方法。
【請求項８】
前記ＣＡＤ生成図面において少なくとも有意として分類された前記ギャップを充填形状で埋めて、補正されたＣＡＤ生成図面を提供するステップをさらに含む、
請求項１に記載のコンピュータ実装方法。
【請求項９】
前記ギャップ充填プロセスは、前記ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合を識別する、
請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記補正されたＣＡＤ生成図面は、物理的対象の表現であり、前記方法は、
前記補正されたＣＡＤ生成図面から、前記物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成するステップと、
前記１又は２以上のコンピュータシステムが前記シミュレーション空間において流体流をシミュレートするステップと、
をさらに含む、請求項９に記載のコンピュータ実装方法。
【請求項１１】
１又は２以上の処理装置と、
前記１又は２以上の処理装置に動作可能に結合されたメモリと、
命令を記憶した１又は２以上の記憶装置と、
を備えたシステムであって、前記命令は、前記１又は２以上の処理装置によって実行された時に、前記システムを、
物理的対象のコンピュータ支援設計（ＣＡＤ）生成図面における第１の立体上の第１の点集合を識別し、
前記ＣＡＤ設計における前記第２の立体上の第２の点集合を識別し、
前記第１の点集合及び前記第２の点集合の四面体のドロネーメッシュを前記ギャップに適用することによって、前記第１の立体と前記第２の立体との間の前記ギャップの体積を求める、
ように構成する、
ことを特徴とするシステム。
【請求項１２】
前記ギャップの前記体積を求めるように構成された前記システムは、前記第１の立体及び前記第２の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するようにさらに構成される、
請求項１１に記載のシステム。
【請求項１３】
前記第１の立体にも前記第２の立体にも接するエッジの長さに基づいて、前記ドロネーメッシュの前記四面体のうちの少なくとも１つの四面体を前記体積から除外するようにさらに構成される、
請求項１２に記載のシステム。
【請求項１４】
前記四面体のエッジである底辺と、前記第１の立体の前記表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも１つの四面体を前記体積から除外するようにさらに構成される、
請求項１２に記載のシステム。
【請求項１５】
前記ＣＡＤ生成図面において少なくとも有意として分類された前記ギャップを充填形状で埋めて、前記ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合である補正されたＣＡＤ生成図面を提供するようにさらに構成される、
請求項１１に記載のシステム。
【請求項１６】
前記補正されたＣＡＤ生成図面は、物理的対象の表現であり、前記システムは、
前記補正されたＣＡＤ生成図面から、前記物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成し、
前記シミュレーション空間において流体流をシミュレートする、
ようにさらに構成される、請求項１５に記載のシステム。
【請求項１７】
非一時的ハードウェア記憶装置に有形的に記憶された、コンピュータ支援設計図におけるギャップを識別するためのコンピュータプログラム製品であって、該コンピュータプログラム製品は命令を含み、該命令は、システムによって実行された時に、前記システムに、
ＣＡＤ設計における第１の立体上の第１の点集合を識別することと、
前記ＣＡＤ設計における前記第２の立体上の第２の点集合を識別することと、
前記第１の点集合及び前記第２の点集合のドロネー３次元四面体メッシュを前記ギャップに適用することによって、前記第１の立体と前記第２の立体との間の前記ギャップの体積を求めることと、
を行わせる、ことを特徴とするコンピュータプログラム製品。
【請求項１８】
前記ギャップの前記体積を求めるための前記命令は、前記第１の立体及び前記第２の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するための命令をさらに含む、
請求項１７に記載のコンピュータプログラム製品。
【請求項１９】
前記ギャップの前記体積を求めるための前記命令は、前記第１の立体にも前記第２の立体にも接するエッジの長さに基づいて、少なくとも１つの四面体を前記体積から除外するための命令をさらに含む、
請求項１８に記載のコンピュータプログラム製品。
【請求項２０】
前記ギャップの前記体積を求めるための前記命令は、前記四面体のエッジである底辺と、前記第１の立体の前記表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも１つの四面体を前記体積から除外するための命令をさらに含む、
請求項１８に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
〔優先権の主張〕
本出願は、２０１８年７月３０日に出願された「ＣＡＤ形状間ギャップの検出（Ｄｅｔｅｃｔｉｏｎ  ｏｆ  Ｇａｐ  ｂｅｔｗｅｅｎ  ＣＡＤ  Ｇｅｏｍｅｔｒｉｅｓ）」という名称の米国仮特許出願第６２／７１２０９９号に対する合衆国法典第３５編第１１９条（ｅ）に基づく優先権を主張するものであり、この文献の内容は全体が引用により本明細書に組み入れられる。
【０００２】
本開示は、物体の形状を規定する技術に関する。
【背景技術】
【０００３】
コンピュータ支援設計（ＣＡＤ）は、コンピュータシステムを使用して設計の作成、補正、分析又は最適化を支援するものである。コンピュータ支援設計（ＣＡＤ）には多くの用途がある。ＣＡＤの１つの用途は、ＣＡＤ図面が、流体流（fluid flow）シミュレーションのための物体形状を定める基礎としての役割を果たすことである。
【０００４】
計算流体力学（ＣＦＤ）は、流体流にまつわる問題を解決する流体力学の一分野である。いくつかの実装では、コンピュータシステムが、液体及び気体と境界条件によって定められた表面との相互作用をシミュレートするのに必要な計算を実行する。計算流シミュレーションの一種が、いわゆる格子ボルツマン法である。流体シミュレーションを実行するプロセスの一部は、シミュレーションに関連する物体の形状を規定することを含む。この形状は、しばしばコンピュータ支援設計（ＣＡＤ）を用いて規定することができる。例えば、ＣＡＤシステムを使用して、自動車、風力タービン、空気ダクトなどのシミュレートすべき物理的対象の形状を規定することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第１１／４６３６７３号明細書
【特許文献２】米国特許第７５５８７１４号明細書
【特許文献３】米国特許第５５９４６７１号明細書
【特許文献４】米国特許出願公開第２０１３／０１５１２２１（Ａ１）号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＣＡＤシステムを用いた作業時にしばしば発生する１つの問題は、規定した形状内に意図せぬギャップが存在することである。この問題を解決する従来の手法は大部分が手動であり、非常に面倒である。
【０００７】
１つの方法では、各内部ノードが正確に８つの子ノードを有するツリーデータ構造である八分木ベースの干渉検出コードを使用する。八分木を使用して、３次元空間を再帰的に８つの象限に細分化することによって分割することができる。この従来の解決法は、ギャップがどこに存在するかについての概算を行うものにすぎず、有意義なギャップの記述を行うものではない。残りの従来の解決法は手動であり、一連の面が識別されると、ユーザがこれらの面の境界エッジの最近点射影又は延長（nearest-point projection or extension）を適用して、ギャップを埋める一連の新たな表面を生成する。この解決法の有効性は、ギャップを埋めるために形成される新たな表面の輪郭を境界エッジがどれほど良好に表すかに依存する。いくつかの例では、ギャップ領域の周囲のＣＡＤエッジが好適なギャップ面を生成できない場合、関与する表面上にユーザが手動で（単複の）線を引いて一連の輪郭を生成し、これらを結んでギャップ面を形成する。
【課題を解決するための手段】
【０００８】
ある態様によれば、コンピュータ実装方法が、コンピュータシステムがコンピュータ支援設計（ＣＡＤ）生成図面における第１の立体（solid）上の第１の点集合（set of points）を選択するステップと、ＣＡＤ生成図面における第２の立体上の第２の点集合を識別するステップと、第１の点集合における少なくとも１つの点（第１の点）と、第２の点集合における少なくとも１つの点（第２の点）との間の少なくとも１つのギャップを識別するステップと、第１の点と第２の点との間のギャップを、有意なギャップ又は有意でないギャップとして分類するステップと、を含む。
【０００９】
以下の特徴のうちの１つ又は２つ以上は、上記の態様に含めることができるさらなる特徴の一部である。
【００１０】
ギャップを分類するステップは、ギャップを表す一連の基準を決定するステップと、決定された基準を基準の閾値と比較するステップと、決定された基準と閾値との比較に従ってギャップを分類するステップと、をさらに含む。基準は、第１の点と第２の点との間の物理的距離に対応する長さ値と、それぞれの第１の点及び第２の点における第１及び第２の各立体の表面に垂直な２つの半直線の交点によって形成される角度を表す角度値とを含む。
【００１１】
少なくとも１つのギャップを識別するステップは、第１の点を含む第１の点集合及び第２の点を含む第２の点集合の点が所与の四面体の内部に存在しないような四面体で構成されたドロネー（Delaunay）３次元メッシュ（ドロネーメッシュ）をギャップに適用することによって、第１の立体と第２の立体との間の識別された少なくとも１つギャップの体積を求めるステップをさらに含む。方法は、第１の立体にも第２の立体にも接するエッジの長さに基づいて、ドロネーメッシュの四面体のうちの少なくとも１つの四面体を体積から除外するステップをさらに含む。方法は、四面体のエッジである底辺と、第１の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、ドロネーメッシュの四面体のうちの少なくとも１つの四面体を体積から除外するステップをさらに含む。方法は、四面体のエッジである底辺と、第１の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、ドロネーメッシュの四面体のうちの少なくとも１つの四面体を体積から除外するステップをさらに含む。
【００１２】
方法は、ＣＡＤ生成図面において少なくとも有意として分類されたギャップを充填形状で埋めて、補正されたＣＡＤ生成図面を提供するステップをさらに含む。ギャップ充填プロセスは、ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合を識別する。補正されたＣＡＤ生成図面は、物理的対象の表現であり、方法は、補正されたＣＡＤ生成図面から、物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成するステップと、１又は２以上のコンピュータシステムがシミュレーション空間において流体流をシミュレートするステップと、をさらに含む。
【００１３】
さらなる態様によれば、システムが、１又は２以上の処理装置と、１又は２以上の処理装置に動作可能に結合されたメモリと、命令を記憶した１又は２以上の記憶装置とを備え、命令が、１又は２以上の処理装置によって実行された時に、システムを、物理的対象のコンピュータ支援設計（ＣＡＤ）生成図面における第１の立体上の第１の点集合を識別し、ＣＡＤ設計における第２の立体上の第２の点集合を識別し、第１の点集合及び第２の点集合の四面体のドロネーメッシュをギャップに適用することによって、第１の立体と第２の立体との間のギャップの体積を求めるように構成する。
【００１４】
以下の特徴のうちの１つ又は２つ以上は、上記の態様に含めることができるさらなる特徴の一部である。
【００１５】
システムは、ギャップの体積を求めるように構成されるとともに、第１の立体及び第２の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するようにさらに構成される。システムは、第１の立体にも第２の立体にも接するエッジの長さに基づいて、ドロネーメッシュの四面体のうちの少なくとも１つの四面体を体積から除外するようにさらに構成される。システムは、四面体のエッジである底辺と、第１の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも１つの四面体を体積から除外するようにさらに構成される。
【００１６】
システムは、ＣＡＤ生成図面において少なくとも有意として分類されたギャップを充填形状で埋めて、ギャップを埋めるためのユーザ定義基準を満たすマルチ立体の和集合である補正されたＣＡＤ生成図面を提供するようにさらに構成される。補正されたＣＡＤ生成図面は、物理的対象の表現であり、システムは、補正されたＣＡＤ生成図面から、物理的対象の表面を考慮するのに適した分解能を有するボクセルの集合として表される格子構造を含むシミュレーション空間のモデルを生成し、シミュレーション空間において流体流をシミュレートするようにさらに構成される。
【００１７】
さらなる態様によれば、非一時的ハードウェア記憶装置に有形的に記憶された、コンピュータ支援設計図におけるギャップを識別するためのコンピュータプログラム製品が命令を含み、この命令は、システムによって実行された時に、システムに、ＣＡＤ設計における第１の立体上の第１の点集合を識別することと、ＣＡＤ設計における第２の立体上の第２の点集合を識別することと、第１の点集合及び第２の点集合のドロネー３次元四面体メッシュをギャップに適用することによって、第１の立体と第２の立体との間のギャップの体積を求めることと、を行わせる。
【００１８】
以下の特徴のうちの１つ又は２つ以上は、上記の態様に含めることができるさらなる特徴の一部である。
【００１９】
ギャップの体積を求めるための命令は、第１の立体及び第２の立体のそれぞれに接する角部を有するドロネーメッシュの四面体を識別するための命令をさらに含む。ギャップの体積を求めるための命令は、第１の立体にも第２の立体にも接するエッジの長さに基づいて、少なくとも１つの四面体を体積から除外するための命令をさらに含む。ギャップの体積を求めるための命令は、四面体のエッジである底辺と、第１の立体の表面に垂直である一辺とを有する二等辺三角形の頂角に基づいて、少なくとも１つの四面体を体積から除外するための命令をさらに含む。
【００２０】
上記の態様のうちの１つ又は２つ以上は、以下の利点のうちの１つ又は２つ以上を含むことができる。
【００２１】
上記の態様は、コンピュータ支援設計（ＣＡＤ）図面が、流体流シミュレーション、コンピュータ支援製造などの物体の形状（特徴）を定める基礎として現行の方法よりも良好に機能できるようにすることができる。本明細書で説明する方法は、現在使用されている手動の面倒な技法を避けることができる方法を提供すると同時に、全体として現行の方法よりも効率的なプロセスを提供する。本明細書で説明する方法は、より正確なギャップ位置の推定及び有意義なギャップ規模の記述をもたらす一方で、識別されたギャップをユーザが手動で埋める必要がある手動解決策を回避する。
【００２２】
いくつかの実装では、補正された（単複の）ＣＡＤ図面を用いて、流体流シミュレーションを実行するシステム内にシミュレーション環境を生成することができる。流体流シミュレーションは、これらの流体と、補正された（単複の）ＣＡＤ図面によって表される物体の境界条件によって定められる表面との相互作用を伴い、この場合、シミュレーションに関連する物体の形状（物理的特徴）は、規定された形状内に意図しない有意なギャップを含まずに定められる。
【００２３】
添付図面及び以下の説明には、本明細書で説明する主題の１又は２以上の実施形態の詳細を示す。説明、図面及び特許請求の範囲からは、本主題のその他の特徴、態様及び利点が明らかになるであろう。
【図面の簡単な説明】
【００２４】
【図１】流体流シミュレーションシステムを示す図である。
【図２】格子ボルツマンモデルシミュレーションを構築する動作を示すフローチャートである。
【図３】２つのＣＡＤ生成立体間ギャップのギャップ処理の態様を示すフロー図である。
【図４】ギャップ処理の態様を理解する上で有用な、ＣＡＤ立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【図４Ａ】２つのＣＡＤ生成立体間ギャップのギャップ処理の態様を示すフロー図である。
【図５】ギャップ処理の態様を理解する上で有用な、ＣＡＤ立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【図６】ギャップ処理の態様を理解する上で有用な、ＣＡＤ立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【図７】ギャップ処理の態様を理解する上で有用な、ＣＡＤ立体のモザイク面及びギャップ体積近似の例示を含む、ギャップを有する物体の図である。
【図８】２つのＣＡＤ生成立体間ギャップのギャップ処理の態様を示すフロー図である。
【図９】ユークリッド空間で表した１つのＬＢＭモデルの速度成分を示す図である（先行技術）。
【図１０】ユークリッド空間で表した別のＬＢＭモデルの速度成分を示す図である（先行技術）。
【図１１】補正されたＣＡＤ図面を使用する物理プロセスシミュレーションシステムが従う手順のフローチャートである。
【図１２】マイクロブロックの透視図である（先行技術）。
【図１３Ａ】図１のシステムが使用する格子構造の図である（先行技術）。
【図１３Ｂ】図１のシステムが使用する格子構造の図である（先行技術）。
【図１４】可変分解能技術を示す図である（先行技術）。
【図１５】可変分解能技術を示す図である（先行技術）。
【図１６】粒子の動きを示す図である（先行技術）。
【図１７】表面のファセットの影響を受ける領域を示す図である（先行技術）。
【図１８】表面動力学のフローチャートを示す図である（先行技術）。
【図１９】表面動力学の実行手順のフローチャートである（先行技術）。
【発明を実施するための形態】
【００２５】
現在のギャップ検出／補正法の問題点は、これらの手法が、正しいギャップ充填を生成できないことが多い個々のＣＡＤ表面形状及びこれらの境界エッジに依存しきったほとんど又は完全に手動的なプロセスである点である。２つの立体間のギャップは、２つの立体の基本特性であり、これらの２つの立体がコンピュータ支援設計及び／又は製造の目的で（面に関して）どのように個別に区分的に表現されたものであるかには依存しない。
【００２６】
図１に、例えば物理的対象表現の周囲の流体流をシミュレートするためのシステム１０を示す。この実装のシステム１０は、クライアント−サーバアーキテクチャに基づくものであり、超並列コンピュータシステム１２として実装されるサーバシステム１２と、クライアントシステム１４とを含む。サーバシステム１２は、メモリ１８と、バスシステム１１と、インターフェイス２０（例えば、ユーザインターフェイス／ネットワークインターフェイス／ディスプレイ又はモニタインターフェイスなど）と、処理装置２４とを含む。メモリ１８内には、メッシュ準備エンジン３２及びシミュレーションエンジン３４が存在する。
【００２７】
図１では、メッシュ準備エンジン３２をメモリ１８内に示しているが、メッシュ準備エンジンは、サーバ１２とは異なるシステム上で実行されるサードパーティアプリケーションとすることもできる。メッシュ準備エンジン３２は、メモリ１８内で実行されるか、それともサーバ１２とは異なるシステム上で実行されるかにかかわらず、ユーザ指定のメッシュ定義３０を受け取り、メッシュを準備してシミュレーションエンジン３４に送信する。シミュレーションエンジン３４は、粒子衝突相互作用モジュールと、粒子境界モデルモジュールと、移流動作を実行する移流モジュールとを含む。システム１０は、２Ｄ及び／又は３Ｄメッシュ及びライブラリを記憶するデータリポジトリ３８にアクセスする。
【００２８】
シミュレーションエンジンにおけるシミュレーションの実行前に、シミュレーション空間をボクセルの集合としてモデル化する。通常、シミュレーション空間は、コンピュータ支援設計（ＣＡＤ）プログラムを用いて生成される。例えば、ＣＡＤプログラムを用いて、風洞内に位置するマイクロデバイスを描くことができる。その後、ＣＡＤプログラムによって生成されたデータを処理して適切な分解能の格子構造を追加し、シミュレーション空間内の物体及び表面を考慮する。上述したように、ＣＡＤ図面を使用してシミュレーション空間を生成する課題の１つとして、ＣＡＤ生成形状におけるギャップの識別とその正しい充填とに対処する問題が挙げられる。
【００２９】
以下では、有意なギャップをほとんど又は全く有していない好適な品質の（単複の）ＣＡＤ図面を構築する、メッシュ準備エンジンと共に使用されるコンピュータ支援設計（ＣＡＤ）補正プロセス４０について説明する。基本的に、（図３で説明する）ＣＡＤ補正プロセス４０は、メッシュ準備エンジン３２の（単複の）ＣＡＤ図面３１を強化するものである。
【００３０】
次に、図２に、物理的対象表現の周囲の流体流をシミュレートするプロセスを示す。本明細書で説明する例では、物理的対象が翼形部である。しかしながら、物理的対象はあらゆる形状とすることができ、具体的には平面及び／又は（単複の）曲面を有することもできるので、翼形部の使用は例示にすぎない。プロセスは、例えばクライアントシステム１４から、又はデータリポジトリ３８からの検索によって、シミュレートする物理的対象のメッシュを受け取る（３４ａ）。このメッシュは、ＣＡＤ補正プロセス４０（図３）によって提供される、有意なギャップをほとんど又は全く有していない、メッシュ準備エンジンと共に使用される好適な品質の（単複の）ＣＡＤ図面に基づくものである。他の実施形態では、外部システム又はサーバ１２のいずれかが、シミュレートする物理的対象のメッシュをユーザ入力に基づいて生成する。このプロセスは、検索したメッシュから幾何学量を事前計算し（３４ｂ）、検索したメッシュに対応する事前計算された幾何学量を用いて動的格子ボルツマンモデルシミュレーションを実行する（３４ｃ）。格子ボルツマンモデルシミュレーションは、粒子分布の発展のシミュレーションと、ＬＢＭメッシュにおける次のセル
2020035434.tif 000003
への粒子の移流とを含む。
【００３１】
次に、図３に、ＣＡＤ設計ギャップ補正プロセス４０（ＣＡＤ設計プロセス４０）を示す。ＣＡＤ設計プロセス４０では、ＣＡＤ設計プログラムに、いくつかの規定のギャップ基準パラメータを構成する（４２）。１つの規定パラメータの組は、頂角サイズの閾値αthであり、他のパラメータはギャップ長の閾値ｄthである。ＣＡＤ設計プロセスは、例えばシミュレートする立体物の規定表現からの比較的複雑な形状などの形状を表す（単複の）ＣＡＤ図面を生成する（４４）。（単複の）ＣＡＤ図面を生成したら（又は、（単複の）ＣＡＤ図面の生成中に）、ギャップ検出処理４６を適用する。検出された全ての有意なギャップ４７についてギャップ充填処理４８を適用して、ユーザ定義基準に従って埋められた検出された（有意な）ギャップを有する修正された一連の（単複の）ＣＡＤ図面を生成する（４９）。
【００３２】
ユーザ定義基準は、予想されるＣＡＤ図面の使用態様に基づく。例えば、翼形部を横切る高マッハ数の流動シミュレーションでは、車のミラーを横切る低マッハ数のシミュレーションと比べて厳しい基準を適用することができる。ユーザ定義基準は、閾値ｄth及びαthの設定値を伴う。以下では、ＣＡＤ設計プロセス４０をＬＢＭシミュレーションのギャップ補正に適用するが、これはＣＡＤ設計プロセス４０を使用できる方法の一例にすぎない。例えば、ＣＡＤ設計プロセス４０は、他の計算流動力学問題、及び設計又はシミュレーション環境などを提供する上でＣＡＤ図面を使用する他の用途におけるギャップ補正に使用することもできる。
【００３３】
図４に、有意なギャップと有意でないギャップとを含む立体物５２の一部と立体物５４の一部とを示す。この例では立体５２である第１の立体の表面上に点５６（ｂ’）を与えると、点５６において立体５２の表面に垂直な半直線５８（単一の端点を有して一方向に無限に延びる線）が得られる。半直線５８上の点６２（ｃ’）では、立体５４の表面上の点６０（ａ’）が、点５６から点６２に延びる、点６０から点６２までの線分（参照せず）と同じ長さの半直線５８の線分（参照せず）を定める。点５６、６０及び６２は、頂角アルファ６４（α’）を有する二等辺三角形を形成する。三角形の底辺６８の長さ（ｄ’）及び頂角６４のサイズは、設定された基準パラメータと比較されるギャップのパラメータである。
【００３４】
また、図４にはギャップの例も示す（表面５２及び５４の点ａ、ｂと半直線ｂｃ上の点ｃとの間で検出された角度アルファ（α）における長さ（ｄ）の線分ａｂは、長さｄ及び角度αの閾値基準ｄth及びαthの値と比べて有意ではない）。
【００３５】
次に、図４Ａに、図４の立体物５２の一部及び立体物５４の一部に適用されるギャップ検出処理４６を示す。ＣＡＤ設計プロセス４０では、システムが、ギャップ検出処理４６によって立体５２の表面上の点５６を識別し（４６ａ）、点５６における立体５２の表面に垂直な半直線５８を決定する（４６ｂ）。システムは、半直線５８上の点６２について、点５６から点６２までの線分と点６０から点６２までの線分とが同じ長さであるように立体５４の表面上の点６０を決定する（４６ｃ）。
【００３６】
システムは、三角形６８の底辺の長さ及び頂角６４のサイズを基準パラメータ値と比較する（４６ｄ）。底辺６８の長さが閾値長さ以下であって頂角６４のサイズが閾値角以上である場合には、点５６及び６０が有意であり、ギャップの一部を埋めるべきであると判断する。
【００３７】
次に、図５に、ギャップ識別アルゴリズムが異なる点をどのように包含又は除外できるかを２つの立体物の図によって示す。この例では、システムが、立体１００及び立体７０ａである２つの立体間のギャップを識別する。システムは、立体７０ｂ上の点７２を識別する。システムは、立体７０ａ上における点７２の最近接点として点７４を識別する。これらの点間の線７６の長さ（距離）を閾値距離ｄthと比較する。底辺としての線７６と、点７２における立体７０ｂの表面に垂直な線分で構成される辺８０とを有する二等辺三角形の頂角７８を閾値角αthと比較する。この例では、点７２と点７４との間の距離が閾値距離未満であるが、頂角７８が閾値角未満であり、従って点７２はギャップから除外される。
【００３８】
別の例として、システムは、立体７０ｂ上の点８２を識別する。システムは、立体７０ａ上における点８２の最近接点として点８４を識別する。点間の線８６の長さ（距離）を閾値距離ｄthと比較する。底辺としての線８６と、点８２における立体７０ｂの表面に垂直な線分で構成される辺９０とを有する二等辺三角形の頂角８８を閾値角αthと比較する。この例では、点８２と点８４との間の距離が閾値距離未満であって頂角８８が閾値角を上回り、従って点８２はギャップに含まれる。
【００３９】
最後の例として、システムは、立体７０ｂ上の点９２を識別する。システムは、立体７０ａ上における点９２の最近接点として点９４を識別する。点間の線９６の長さ（距離）を閾値距離ｄthと比較する。底辺としての線９６と、点９２における立体７０ｂの表面に垂直な線分で構成される辺１００とを有する二等辺三角形の頂角９８を閾値角αthと比較する。この例では、点９２と点９４との間の距離が閾値距離を上回っていて頂角９８が閾値角未満であり、両基準が満たされていないので、点９２はギャップから除外される。
【００４０】
実際問題として、ユーザ定義基準を満たすことができるような点対の組は無限に存在するので、一連のＣＡＤ立体から全ての点対（ａ，ｂ）を見つけることは明らかに困難な作業である。しかしながら、近似を適用することによって同様の結果を取得することができる。
【００４１】
次に、図６に、ＣＡＤ生成立体物１２２及び立体１２４の「モザイク」面の対を示す。「モザイク」とは、１種類又は数種類の合同な平面図形によるギャップ又は重複を含まないギャップの被覆（一部又は全体）を意味する。上述したようにギャップの近似位置を識別したら、ギャップに近い立体１２２の表面と立体１２４の表面とをモザイク化して、立体１２２の表面領域をサンプリングした点集合１３２ａと、立体１２４の表面領域をサンプリングした点集合１３４とを生成する。なお、ＣＡＤ立体は３次元物体として表される。本明細書では、説明を目的として図形を２次元で表現している。
【００４２】
点集合１３２及び１３４を共に入力として提供して、これらの点集合を含む３次元体積のドロネー四面体分割を形成することができる。２次元空間では、平面内の所与の離散点集合Ｐのドロネー三角形分割が、Ｐ内の点がＤＴ（Ｐ）内のいずれの三角形の外接円の内部にも存在しない三角形分割ＤＴ（Ｐ）である。ドロネー三角形分割は、三角形分割における三角形の全ての角度の最小角を最大化して、細長い三角形を避ける傾向にある。３次元空間（３Ｄ）では、点集合のドロネー四面体分割が、４つの点に及ぶ各四面体の外接球に集合内の他の全ての点が存在しない四面体を生成する。
【００４３】
システムは、本明細書では「マルチ立体」と呼ぶＡにもＢにも接する四面体（例えば、マルチ立体１３６及びマルチ立体１３８）を識別する。システムは、全ての識別されたマルチ立体の組から、ユーザが提供した許容値（ｄth，αth）を満たすマルチ立体を選択し、ここでの距離閾値パラメータ（ｄth）は、ｄthよりも長い底辺１４０を有するセルを排除するために使用され、角度パラメータ（αth）は、セルの外心がαthよりも小さな立体角を成すセルを排除するために使用される。
【００４４】
ここで図７も参照すると、この基準を満たすマルチ立体１３６及び１３８の和集合（まとめて１４０）が、２つの立体間のギャップの近似体積を与える。ギャップが定められると、マルチ立体１３６、１３８の和集合で構成される形状によってギャップを埋めることができる。システムは、マルチ立体の和集合を使用して立体間のギャップを埋めることができる。
【００４５】
次に、図８に、ＣＡＤ形状のギャップを規定するプロセス例１５０を示す。プロセス１５０は、ＣＡＤ設計の第１の立体上の第１の点集合を識別する（１５２）。第１の点集合は、例えばモザイク化アルゴリズムを用いて識別することができる。プロセス１５０は、ＣＡＤ設計の第２の立体上の第２の点集合を識別する（１５４）。第２の点集合は、例えばモザイク化アルゴリズムを用いて識別することができる。プロセスは、所与の１つの四面体形状（図示せず）の体積内に第１の点集合及び第２の点集合の点が存在しないような四面体（四面体形状）で構成されたドロネーメッシュに基づいて、第１の立体と第２の立体との間のギャップの体積を求める（１５６）。
【００４６】
いくつかの実装では、プロセス１５０が、例えば第１の立体及び第２の立体のそれぞれに接する角部を有する四面体を識別することによって、第１の立体と第２の立体との間のギャップを規定する体積を求める。いくつかの実装では、プロセス１５０が、第１の立体にも第２の立体にも接するエッジの長さに基づいて、体積から四面体を除外することができる。プロセス１５０は、底辺が四面体のエッジであって一辺が第１の立体の表面に垂直である二等辺三角形の頂角に基づいて、体積から四面体を除外することができる。ＣＡＤ図面内のギャップを埋めたら、このＣＡＤ図面を使用して、流体シミュレーションに使用されるシミュレーション体積を規定することができる。
【００４７】
（単複の）ＣＡＤ図面内の有意なギャップを埋めたら、この（単複の）ＣＡＤ図面を使用して、シミュレーションエンジン３４が実行する流体流シミュレーションに使用されるシミュレーション体積又はメッシュを規定することができる。例えば、全体が引用により本明細書に組み入れられる「物理プロセスのコンピュータシミュレーション（ＣＯＭＰＵＴＥＲ  ＳＩＭＵＬＡＴＩＯＮ  ＯＦ  ＰＨＹＳＩＣＡＬ  ＰＲＯＣＥＳＳ）」という名称の（今では米国特許第７５５８７１４号として取得されている）米国特許出願第１１／４６３６７３号に記載されるように。
【００４８】
以下の図１１において説明する手順では、ギャップ補正されたＣＡＤ図面を使用してシミュレーション空間を構成する流動シミュレーションプロセスについて説明する。以下のマイクロブロックの斜視図である図１２、格子構造の図である図１３Ａ〜図１３Ｂ、可変分解能技術の図である図１４及び図１５粒子の動きの図である図１６、並びに表面のファセットの影響を受ける領域の図である図１７などの図では、これらの図１２〜図１７の各々に、上記で参照した特許に示されているという理由で先行技術とのラベルを付けている。
【００４９】
しかしながら、これらの図は、上記の特許に示した時には、本明細書で説明するギャップ補正プロセスについての説明を行っていないため、ギャップ補正されたＣＡＤ図面を使用してシミュレーション空間を構成する流動シミュレーションに対して行われる修正を全く考慮していない。
【００５０】
モデルシミュレーション空間
ＬＢＭベースの物理プロセスシミュレーションシステムでは、一連の離散速度ｃiで評価した分布関数値ｆiによって流体流が表現される。分布関数の動力学は、ｆi（０）が平衡分布関数として知られている以下のように定義される方程式Ｉ１によって制御され、
【数１】
2020035434.tif 000004
方程式（Ｉ１）
式中、
【数２】
2020035434.tif 000005
である。
【００５１】
この方程式は、分布関数ｆiの時間発展を表す周知の格子ボルツマン方程式である。左辺は、いわゆる「流動過程」による分布の変化を表す。流動過程は、あるメッシュ位置において流体ポケットが開始した後に、複数の速度ベクトルのうちの１つに沿って次のメッシュ位置に移動する時点である。この時点で、「衝突係数」、すなわち開始流体ポケットに対する近隣の流体ポケットの影響を計算する。流体は別のメッシュ位置に移動することしかできず、従って全ての速度の全ての成分が共通速度の倍数になるように正しい速度ベクトルの選択が必要である。
【００５２】
第１の方程式の右辺は、流体ポケット同士の衝突に起因する分布関数の変化を表す上述した「衝突演算子」である。特定の形の衝突演算子は、Ｂｈａｔｎａｇａｒ−Ｇｒｏｓｓ−Ｋｒｏｏｋ（ＢＧＫ）演算子のものである。衝突演算子は、「平衡」形態である第２の方程式によって与えられる規定値に分布関数を至らしめる。
【００５３】
ＢＧＫ演算子は、たとえ衝突の詳細がどうであろうと、分布関数は、衝突を通じて｛ｆeq（ｘ，ｖ，ｔ）｝によって与えられる明確に定義された局所平衡に近付くという物理的議論に従って構築される。
【数３】
2020035434.tif 000006
方程式（Ｉ２）
ここでのパラメータτは、衝突を介した平衡までの特性緩和時間を表す。粒子（例えば、原子又は分子）に関して言えば、通常、この緩和時間は定数と見なされる。
【００５４】
このシミュレーションから、質量ρ及び流体速度ｕなどの従来の流体変数が方程式（Ｉ３）の単純和として得られる。
【数４】
2020035434.tif 000007
方程式（Ｉ３）
ここでのρ、ｕ及びＴは、それぞれ流体の密度、速度及び温度であり、Ｄは、（必ずしも物理的空間次元とは等しくない）離散化速度空間の次元である。
【００５５】
対称性を考慮することにより、速度値の集合は、配置空間内でスパニングした時に特定の格子構造を形成するように選択される。このような離散系の動特性は、以下の形を有するＬＢＥに従い、
ｆi（ｘ＋ｃi，ｔ＋１）−ｆi（ｘ，ｔ）＝Ｃi（ｘ，ｔ）
ここでの衝突演算子は、通常は上述したようなＢＧＫの形を取る。平衡分布形態を正しく選択することにより、格子ボルツマン式が正しい流体力学及び熱流体力学をもたらすことを理論的に示すことができる。すなわち、ｆi（ｘ，ｔ）から導き出される流体力学的モーメントは、巨視的極限ではナヴィエ・ストークス式に従う。これらのモーメントは、上記の方程式（Ｉ３）によって定義される。
【００５６】
ｃi及びｗiの集合的な値はＬＢＭモデルを規定する。ＬＢＭモデルは、スケーラブルコンピュータプラットフォーム上に効率的に実装して、時間非定常流（ｔｉｍｅ  ｕｎｓｔｅａｄｙ  ｆｌｏｗｓ）及び複雑な境界条件のために高いロバスト性を伴って実行することができる。
【００５７】
ボルツマン式から流体系の動きの巨視的方程式を取得する標準技術は、完全なボルツマン式の連続近似を取るチャップマン−エンスコッグ法（Ｃｈａｐｍａｎ−Ｅｎｓｋｏｇ  ｍｅｔｈｏｄ）である。流体系では、密度のわずかな乱れが音速で伝わる。気体系では、一般に音速が温度によって決まる。流れにおける圧縮率の影響の重要性は、特性速度と音速との比率によって測定され、これはマッハ数として知られている。
【００５８】
以下では、上記のギャップ充填ＣＡＤプロセスと併用して流体流シミュレーションを行うことができるＬＢＭベースのシミュレーションシステムの一般的説明を行う。ＬＢＭベースの物理プロセスシミュレーションシステムのさらなる説明については、上記で引用により組み入れた米国特許を参照されたい。
【００５９】
図９を参照すると、第１のモデル（２Ｄ−１）２００は、２１個の速度を含む２次元モデルである。これらの２１個の速度のうち、１つ（２０５）は動いていない粒子を表し、３組の４つの速度は、格子のｘ軸又はｙ軸のいずれかに沿って正の方向又は負の方向のいずれかに正規化速度（ｒ）（２１０〜２１３）、正規化速度の２倍（２ｒ）（２２０〜２２３）、又は正規化速度の３倍（３ｒ）（２３０〜２３３）のいずれかで動いている粒子を表し、２組の４つの速度は、ｘ格子軸及びｙ格子軸の両方に関して正規化速度（ｒ）（２４０〜２４３）又は正規化速度の２倍（２ｒ）（２５０〜２５３）で動いている粒子を表す。
【００６０】
図１０に、各速度が図１０の矢印のうちの１つによって表される３９個の速度を含む３次元モデルである第２のモデル（３Ｄ−１）２６０を示す。これらの３９個の速度のうち、１つは動いていない粒子を表し、３組の６つの速度は、格子のｘ軸、ｙ軸又はｚ軸に沿って正の方向又は負の方向のいずれかに正規化速度（ｒ）、正規化速度の２倍（２ｒ）、又は正規化速度の３倍（３ｒ）のいずれかで動いている粒子を表し、８つの速度は、ｘ、ｙ、ｚ格子軸の３つ全てに関して正規化速度（ｒ）で動いている粒子を表し、１２個の速度は、ｘ、ｙ、ｚ格子軸の２つに関して正規化速度の２倍（２ｒ）で動いている粒子を表す。
【００６１】
１０１個の速度を含む３Ｄ−２モデル及び３７個の速度を含む２Ｄ−２モデルなどのさらに複雑なモデルを使用することもできる。１０１個の速度から成る３次元モデル３Ｄ−２では、１つが動いていない粒子（グループ１）を表し、３組の６つの速度が、格子のｘ、ｙ又はｚ軸に沿って正の方向又は負の方向のいずれかに正規化速度（ｒ）、正規化速度の２倍（２ｒ）、又は正規化速度の３倍（３ｒ）のいずれかで動いている粒子（グループ２、４及び７）を表し、３組の８つの速度が、ｘ、ｙ、ｚ格子軸の３つ全てに関して正規化速度（ｒ）、正規化速度の２倍（２ｒ）、又は正規化速度の３倍（３ｒ）で動いている粒子（グループ３、８及び１０）を表し、１２個の速度が、ｘ、ｙ、ｚ格子軸の２つに関して正規化速度の２倍（２ｒ）で動いている粒子（グループ６）を表し、２４個の速度が、ｘ、ｙ、ｚ格子軸のうちの２つに対して正規化速度（ｒ）及び正規化速度の２倍（２ｒ）で動いていて残りの軸に関しては動いていない粒子（グループ５）を表し、２４個の速度が、ｘ、ｙ、ｚ格子軸のうちの２つに対して正規化速度（ｒ）で動いていて残りの軸に関して正規化速度の３倍（３ｒ）で動いている粒子（グループ９）を表す。
【００６２】
３７個の速度から成る２次元モデル２Ｄ−２では、１つが動いていない粒子（グループ１）を表し、３組の４つの速度が、格子のｘ軸又はｙ軸のいずれかに沿って正の方向又は負の方向のいずれかに正規化速度（ｒ）、正規化速度の２倍（２ｒ）、又は正規化速度の３倍（３ｒ）のいずれかで動いている粒子（グループ２、４及び７）を表し、２組の４つの速度が、ｘ及びｙ格子軸の両方に関して正規化速度（ｒ）又は正規化速度の２倍（２ｒ）で動いている粒子を表し、８つの速度が、ｘ及びｙ格子軸の一方に関して正規化速度（ｒ）で動いていて他方の軸に関して正規化速度の２倍（２ｒ）で動いている粒子を表し、８つの速度が、ｘ及びｙ格子軸の一方に関して正規化速度（ｒ）で動いていて他方の軸に対して正規化速度の３倍（３ｒ）で動いている粒子を表す。
【００６３】
上述したＬＢＭモデルは、２次元及び３次元の両方における流れの数値シミュレーションのための特定のクラスの効率的でロバストな離散速度動力学モデルを提供する。この種のモデルは、特定の離散速度の組と、これらの速度に関連する重みとを含む。これらの速度は、特に格子ボルツマンモデルとして知られている種類の離散速度モデルの正確で効率的な実装を容易にする速度空間におけるデカルト座標の格子点と一致する。このようなモデルを用いて、高い忠実度で流れをシミュレートすることができる。
【００６４】
図１１に、手順２７０に従って動作して流体流などの物理プロセスをシミュレートする物理プロセスシミュレーションシステムを示す。流動シミュレーションの前に、上述した補正されたＣＡＤ図面を用いて、シミュレーション空間をボクセルの集合としてモデル化する（ステップ２７２）。シミュレーション空間は、コンピュータ支援設計（ＣＡＤ）プログラムと、ＣＡＤ生成図面のギャップ補正処理とを用いて生成される。例えば、ＣＡＤプログラムを用いて、風洞内に位置するマイクロデバイスを描くことができ、ギャップ補正プロセスは、（ｄth及びαthの閾値設定以外の）大幅なユーザ介入を伴わずに有意なギャップを識別してこれらを埋めることができる。その後、ＣＡＤプログラムによって生成された補正データを処理して適切な分解能の格子構造を追加し、シミュレーション空間内の物体及び表面を考慮する。
【００６５】
格子の分解能は、シミュレートされるシステムのレイノルズ数に基づいて選択することができる。レイノルズ数は、流れの粘度（ｖ）、流れにおける物体の特性長（Ｌ）及び流れの特性速度（ｕ）に関連する。
Ｒｅ＝ｕＬ／ｖ            方程式（Ｉ４）
【００６６】
物体の特性長は、物体の大規模な特徴を表す。例えば、マイクロデバイスの周囲の流れをシミュレートする場合には、マイクロデバイスの高さを特性長と見なすことができる。小さな物体領域（例えば、自動車のサイドミラー）の周囲の流れに関心がある時には、シミュレーションの分解能を高めるか、或いは関心領域の周囲に高分解能の領域を使用することができる。格子の分解能が高まるにつれてボクセルの次元は減少する。
【００６７】
状態空間はｆi（ｘ，ｔ)として表され、ここでのｆiは、時点ｔにおいて３次元ベクトルｘによって示される、ある格子サイトにおける状態ｉの単位容積当たりの要素又は粒子の数（すなわち、状態ｉの粒子の密度）を表す。既知の時間増分では、粒子の数が単純にｆi（ｘ）として示される。格子サイトの全ての状態の組み合わせは、ｆ（ｘ）として示される。
【００６８】
状態の数は、各エネルギーレベル内の考えられる速度ベクトル数によって決まる。速度ベクトルは、ｘ、ｙ及びｚの３次元を有する空間内の整数の線形速度から成る。多重種シミュレーションでは状態の数が増加する。
【００６９】
各状態ｉは、特定のエネルギーレベル（すなわち、エネルギーレベル０、１又は２）における異なる速度ベクトルを表す。各状態の速度ｃiは、以下のように３次元の各次元における「速度」と共に示される。
ｃi＝（ｃix，ｃiv，ｃiz）                      方程式（Ｉ５）
【００７０】
エネルギーレベルゼロの状態は、どの次元においても動いていない停止した粒子を表し、すなわちｃstopped＝（０，０，０）である。エネルギーレベル１の状態は、３次元のうちの１つの次元において±１の速度を有し、他の２つの次元においてゼロ速度を有する粒子を表す。エネルギーレベル２の状態は、３次元全てにおいて±１の速度を有する粒子、或いは３次元のうちの１つの次元において±２の速度を有し、他の２つの次元においてゼロ速度を有する粒子を表す。
【００７１】
３つのエネルギーレベルの考えられる順列を全て生成すると、全部で３９個の可能な状態（１つのエネルギー０状態、６つのエネルギー１状態、８つのエネルギー３状態、６つのエネルギー４状態、１２のエネルギー８状態及び６つのエネルギー９状態）が得られる。
【００７２】
各ボクセル（すなわち、各格子サイト）は、状態ベクトルｆ（ｘ）によって表される。状態ベクトルは、ボクセルの状態を完全に定め、３９個のエントリを含む。３９個のエントリは、１つのエネルギー０状態、６つのエネルギー１状態、８つのエネルギー３状態、６つのエネルギー４状態、１２のエネルギー８状態及び６つのエネルギー９状態に対応する。システムは、この速度集合を使用することによって、達成された平衡状態ベクトルのためのマクスウェル−ボルツマン統計を生じることができる。
【００７３】
ボクセルは、処理効率のためにマイクロブロックと呼ばれる２×２×２の容量にグループ化される。これらのマイクロブロックは、ボクセルの並行処理を可能にして、データ構造に関連するオーバーヘッドを最小化するように編成される。マイクロブロック内のボクセルの略語はＮi（ｎ）として定義され、ここでのｎは、マイクロブロック内の格子サイトの相対的位置を表し、ｎ∈｛０，１，２，．．．，７｝である。
【００７４】
図１２にマイクロブロックを示す。
【００７５】
図１３Ａ及び図１３Ｂを参照すると、表面Ｓ（図１３Ａ）をシミュレーション空間（図１３Ａ）内にファセットＦαの集合として表している。
Ｓ＝｛Ｆα｝              方程式（Ｉ６）
ここでのαは、特定のファセットを列挙する指数である。ファセットはボクセル境界に制限されず、比較的少数のボクセルにファセットが影響を与えるように、典型的にはファセットに隣接するボクセルのサイズと同程度又はそれよりもわずかに小さなサイズを有する。ファセットには、表面動力学を実装する目的で特性が割り当てられる。具体的に言えば、各ファセットＦαは、単位法線（ｎα）と、表面積（Ａα）と、中心位置（ｘα）と、ファセットの表面動特性を表すファセット分布関数（ｆi（α））とを有する。総エネルギー分布関数ｑi（α）は、ファセットとボクセルの相互作用の流量分布と同様に扱われる。
【００７６】
図１４を参照すると、シミュレーション空間の異なる領域内で異なるレベルの分解能を用いて処理効率を高めることができる。通常は、物体３２２の周囲の領域３２０に最も関心があり、従ってこの領域を最高分解能でシミュレートする。粘度の効果は物体からの距離と共に減少するので、減少レベルの分解能（すなわち、拡大されたボクセル容積）を用いて、物体３２２から増加する距離に配置された領域３２４、３２６をシミュレートする。
【００７７】
同様に、図１５に示すように、低レベルの分解能を用いて物体３４２のそれほど重要でない特徴の周囲の領域３４０をシミュレートする一方で、最高レベルの分解能を用いて物体３４２の最も重要な特徴（例えば、先端面及び後端面）の周囲の領域３４４をシミュレートすることもできる。中心から遠い領域３４６は、最低レベルの分解能及び最大ボクセルを用いてシミュレートされる。
【００７８】
Ｃ．ファセットの影響を受けるボクセルの識別
再び図１１を参照すると、シミュレーション空間をモデル化したら（ステップ２７２）、１又は２以上のファセットの影響を受けるボクセルを識別する（ステップ２７４）。ボクセルは、複数の形でファセットの影響を受けることができる。まず、１又は２以上のファセットが交わるボクセルは、交わっていないボクセルに比べて容量が減少するという点で影響を受ける。この理由は、ファセットと、ファセットが表す表面の下にある材料とがボクセルの一部を占有するからである。分数係数（ｆｒａｃｔｉｏｎａｌ  ｆａｃｔｏｒ）Ｐf（ｘ）は、ファセットの影響を受けないボクセルの部分（すなわち、流れをシミュレートする対象である流体又は他の材料が占有できる部分）を示す。交わっていないボクセルでは、Ｐf（ｘ）が１に等しい。
【００７９】
ファセットへの粒子の移動又はファセットからの粒子の受け取りを行うことによって１又は２以上のファセットと相互作用するボクセルも、ファセットの影響を受けるボクセルとして識別される。ファセットが交わる全てのボクセルは、ファセットから粒子を受け取る少なくとも１つの状態と、ファセットに粒子を移動させる少なくとも１つの状態とを含むようになる。ほとんどの場合、さらなるボクセルもこのような状態を含む。
【００８０】
図１６を参照すると、ファセットＦαは、非ゼロの速度ベクトルｃiを有する各状態ｉについて、速度ベクトルＣiとファセットの単位法線ｎαとのベクトルドット積（｜ｃiｎi｜）の大きさによって定められる高さと、ファセットの表面積Ａαによって定められる底面とを有する平行六面体Ｇiαによってその容積Ｖiαが次式に等しくなるように定められた領域から粒子を受け取り、又はこの領域に粒子を移動させる。
Ｖiα＝｜ｃiｎα｜Ａα  方程式（Ｉ７）
【００８１】
ファセットＦαは、状態の速度ベクトルがファセットの方に向いている（｜ｃiｎi｜＜０の）時には容積Ｖiαから粒子を受け取り、状態の速度ベクトルがファセットから離れる方に向いている（｜ｃiｎi｜＞０の）時にはこの領域に粒子を移動させる。後述するように、内角などの非凸面特徴の近傍で起こり得る状態である、別のファセットが平行六面体Ｇiαの一部を占有する時には、この式を修正しなければならない。
【００８２】
ファセットＦαの平行六面体Ｇiαは、複数のボクセルの一部又は全部に重なり合うことができる。ボクセルの数又はその一部は、ボクセルのサイズに対するファセットのサイズと、状態のエネルギーと、格子構造に対するファセットの配向とに依存する。影響を受けるボクセルの数は、ファセットのサイズと共に増加する。従って、上述したように、通常、ファセットのサイズは、ファセットの近くに位置するボクセルのサイズと同程度又はそれよりも小さくなるように選択される。
【００８３】
平行六面体Ｇiαが重なり合ったボクセルの部分Ｎ（ｘ）は、Ｖiα（ｘ）として定められる。この項を使用すると、ボクセルＮ（ｘ）とファセットＦαとの間を移動する状態ｉの粒子の流束Γiα（ｘ）は、ボクセルの状態ｉの粒子の密度（Ｎi（ｘ））と、ボクセルが重なり合った領域の容積（Ｖiα（ｘ））とを乗算したものに等しい。
Γiα（ｘ）＝Ｎi（ｘ）Ｖiα（ｘ）              方程式（Ｉ８）
【００８４】
平行六面体Ｇiαに１又は２以上のファセットが交わる時には、以下の条件が当てはまり、
Ｖiα＝ΣＶα（ｘ）＋ΣＶiα（β）              方程式（Ｉ９）
ここでの第１の加算は、Ｇiαが重なり合った全てのボクセルに相当し、第２項は、Ｇiαに交わる全てのファセットに相当する。平行六面体Ｇiαに別のファセットが交わらない時には、この式が以下のように変形する。
Ｖiα＝ΣＶiα（ｘ）    方程式（Ｉ１０）
【００８５】
Ｄ．シミュレーションの実行
１又は２以上のファセットの影響を受けるボクセルが識別されたら（ステップ２７４）、タイマを初期化してシミュレーションを開始する（ステップ２７６）。シミュレーションの各時間増分中には、粒子と表面ファセットとの相互作用を考慮した移流段階（ステップ２７８〜２８６）によってボクセルからボクセルへの粒子の移動をシミュレートする。次に、衝突段階（ステップ２８８）によって各ボクセル内の粒子の相互作用をシミュレートする。その後、タイマを増分する（ステップ２００）。増分したタイマによってシミュレーションが完了した旨が示されない（ステップ２０２）場合には、移流段階と衝突段階と（ステップ２７８〜２００）を繰り返す。増分したタイマによってシミュレーションが完了した旨が示された（ステップ２０２）場合には、シミュレーションの結果を記憶及び／又は表示する（ステップ２０４）。
【００８６】
１．表面の境界条件
表面との相互作用を正しくシミュレートするために、各ファセットは４つの境界条件を満たさなければならない。まず、ファセットが受け取った粒子の合計質量が、ファセットが移動させた粒子の合計質量に等しくなければならない（すなわち、ファセットへの正味質量流束がゼロに等しくなければならない）。次に、ファセットが受け取った粒子の合計エネルギーが、ファセットが移動させた粒子の合計エネルギーに等しくなければならない（すなわち、ファセットへの正味エネルギー流束がゼロに等しくなければならない）。これらの２つの条件は、各エネルギーレベル（すなわち、エネルギーレベル１及び２）での正味質量流束がゼロに等しくなるよう求めることによって満たすことができる。
【００８７】
他の２つの境界条件は、ファセットと相互作用する粒子の正味運動量に関連する。本明細書では滑り面と呼ぶ表面摩擦がない表面では、正味接線運動量流束がゼロに等しくなければならず、正味法線運動量流束がファセットの局所圧力に等しくなければならない。従って、ファセットの法線ｎαに垂直な受け取った合計運動量の成分と、ファセットの法線ｎαに垂直な移動させた合計運動量の成分と（すなわち、接線成分）が等しくなければならず、ファセットの法線ｎαに平行な受け取った合計運動量の成分と、ファセットの法線ｎαに平行な移動させた合計運動量の成分と（すなわち、法線成分）の差分がファセットの局所圧力に等しくなければならない。非滑り面では、ファセットが受け取った粒子の合計接線運動量に対するファセットが移動させた粒子の合計接線運動量が、表面の摩擦によって摩擦量に関連する倍数だけ減少する。
【００８８】
２．ボクセルからファセットへの収集
粒子と表面との間の相互作用をシミュレートする最初のステップとして、ボクセルから粒子を集めてファセットに提供する（ステップ２７８）。上述したように、ボクセルＮ（ｘ）とファセットＦαとの間の状態ｉの粒子の流束は以下の通りである。
Γiα（ｘ）＝Ｎi（ｘ）Ｖiα（ｘ）              方程式（Ｉ１１）
【００８９】
この式から、各状態ｉがファセットＦαの方を向いている（ｃiｎα＜０の）場合、ボクセルによってファセットＦαに提供される粒子の数は以下の通りである。
ΓiαＶ→Ｆ＝ΣXΓiα（ｘ）＝ΣXＮi（ｘ）Ｖiα（ｘ）            方程式（Ｉ１２）
【００９０】
Ｖiα（ｘ）が非ゼロの値を有するボクセルのみを加算しなければならない。上述したように、ファセットのサイズは、Ｖiα（ｘ）が少数のボクセルのみについて非ゼロの値を有するように選択される。Ｖiα（ｘ）及びＰf（ｘ）は非整数値を有することもできるので、Γα（ｘ）は実数として記憶され処理される。
【００９１】
３．ファセットからファセットへの移動
次に、粒子がファセット間を移動する（ステップ２８０）。ファセットＦαが流入状態（ｃiｎα＜０）にある平行六面体Ｇiαに別のファセットＦβが交わる場合、ファセットＦαが受け取る状態ｉの粒子の一部はファセットＦβから流入するようになる。具体的に言えば、ファセットＦαは、前回の時間増分中にファセットＦβによって生成された状態ｉの粒子の一部を受け取るようになる。この関係を図１９に示しており、ここでは、ファセットＦβが交わる平行六面体Ｇiαの一部３８０が、ファセットＦαが交わる平行六面体Ｇiβの一部３８２に等しい。上述したように、交わった部分をＶiα（β）として示す。この項を用いて、ファセットＦβとファセットＦαとの間の状態ｉの粒子の流束を以下のように表すことができ、
Γiα（β，ｔ−１）＝Γi（β）Ｖiα（β）／Ｖiα  方程式（Ｉ．１３）
ここでのΓi（β，ｔ−１）は、前回の時間増分中にファセットＦβによって生成された状態ｉの粒子の測定量である。この式から、各状態ｉがファセットＦαの方を向いている（ｃiｎα＜０の）場合、他のファセットによってファセットＦαに提供される粒子の数は以下のようになり、
ΓiαF→F＝ΣβΓiα（β）＝ΣβΓi（β，ｔ−１）Ｖiα（β）／Ｖiα    方程式（Ｉ．１４）
ファセット内への状態ｉの粒子の全流束は以下のようになる。
ΓiIN（α）＝ΓiαF→F＋ΓiαF→F＝ΣxＮi（ｘ）Ｖiα＋ΣβΓi（β，ｔ−１）Ｖiα（β）／Ｖiα            方程式（Ｉ．１５）
【００９２】
ファセット分布関数とも呼ばれるファセットの状態ベクトルＮ（α）は、ボクセル状態ベクトルのＭ個のエントリに対応するＭ個のエントリを有する。Ｍは、離散格子速度の数である。ファセット分布関数の入力状態Ｎ（α）は、これらの状態になる粒子の流束を容積Ｖiαで除算したものに等しく設定され、
ｃiｎα＜０の場合、以下のようになる。
Ｎi（α）＝ΓiIN（α）／Ｖiα                方程式（Ｉ．１６）
【００９３】
ファセット分布関数は、ファセットからの出力流束を生成するためのシミュレーションツールであり、必ずしも実際の粒子を表すものではない。正確な出力流束を生成するには、分布関数の他の状態に値を割り当てる。上述した内向き状態を投入する手法を用いて外向き状態を投入すると、
ｃiｎα≧０の場合、
Ｎi（α）＝ΓiOTHER（α）／Ｖiα        方程式（Ｉ．１７）
となり、ここでのΓiOTHER（α）は、上述したΓiIN（α）を生成するための手法を用いて、ただしこの手法を流入状態（ｃiｎα＜０））以外の状態（ｃiｎα≧０）に適用して決定される。別の方法では、以前の時間からのΓiOUT（α）の値を用いて以下のようにΓiOTHER（α）を生成することもできる。
ΓiOTHER（α，ｔ）＝ΓiOUT（α，ｔ−１）    方程式（Ｉ．１８）
【００９４】
平行状態（ｃiｎα＝０）では、Ｖiα及びＶiα（ｘ）がいずれもゼロである。Ｎi（α）を求める式では、Ｖiα（ｘ）が（ΓiOTHER（α）の式からの）分子に現れ、Ｖiαが（Ｎi（α）の式からの）分母に現れる。従って、Ｖiα及びＶiα（ｘ）がゼロに近付くと、平行状態のＮi（α）は、Ｎi（α）の極限として決定される。ゼロ速度を有する状態の値（すなわち休止状態、並びに状態（０，０，０，２）及び（０，０，０，−２））は、シミュレーションの最初に温度及び圧力の初期条件に基づいて初期化される。その後、これらの値は時間をかけて調整される。
【００９５】
４．ファセット表面動力学の実行
次に、各ファセットが上述した４つの境界条件を満たすように表面動力学を実行する（ステップ２８２）。図２０に、ファセットの表面動力学の実行手順を示す。最初に、ファセットにおける粒子の合計運動量Ｐ（α）を以下のように求めることによって、ファセットＦαに垂直な合計運動量を求める（ステップ３９２）。
全てのｉについて、
【数５】
2020035434.tif 000008
方程式（Ｉ．１９）
この式から、以下のように法線運動量Ｐn（α）を求める。
Ｐn（α）＝ｎα・Ｐ（α）              方程式（Ｉ．２０）
【００９６】
次に、プッシング／プリング法を用いてこの法線運動量を排除（ステップ３９４）してＮn-（α）を取り出す。この手法によれば、粒子は、法線運動量にのみ影響を与える形で状態間を移行する。このプッシング／プリング法は、引用により組み入れられる米国特許第５，５９４，６７１号に記載されている。
【００９７】
その後、Ｎn-（α）の粒子を衝突させてボルツマン分布Ｎn-β（α）を生じさせる（ステップ３９６）。以下で流体力学の実行に関して説明するように、ボルツマン分布は、Ｎn-（α）に一連の衝突則を適用することによって達成することができる。
【００９８】
次に、流入流束分布とボルツマン分布とに基づいてファセットＦαの流出流束分布を求める（ステップ３９８）。まず、流入流束分布Γi（α）とボルツマン分布との差分を以下のように求める。
ΔΓi（α）＝ΓiIN(α）−Ｎn-βi（α）Ｖiα  方程式（Ｉ．２１）
【００９９】
この差分を使用すると、流出流束分布は、
ｎαｃi＞０の場合、以下のようになり、
ΓiOUT（α）＝Ｎn-βi（α）Ｖiα−．Δ．Γi＊（α）            方程式（Ｉ．２２）
ここでのｉ＊は、状態ｉとは逆方向を有する状態である。例えば、状態ｉが（１，１，０，０）である場合、状態ｉ＊は（−１，−１，０，０）である。流出流束分布は、表面摩擦及びその他の因子を考慮してさらに精緻化することができ、
ｎαｃｉ＞０の場合、以下のようになり、
ΓiOUT（α）＝Ｎn-Bi（α）Ｖiα−ΔΓi＊（α）＋Ｃf（ｎα・ｃi）−［Ｎn-βi＊（α）−Ｎn-βi（α）］Ｖiα＋（ｎα・ｃi）（ｔ1α・ｃi）ΔＮj,1Ｖiα＋（ｎα・ｃi）（ｔ2α・ｃi）ΔＮj,2Ｖiα                    方程式（Ｉ．２３）
ここでのＣfは、表面摩擦の関数であり、ｔiαは、ｎαに垂直な第１の接線ベクトルであり、ｔ2αは、ｎαとｔiαの両方に垂直な第２の接線ベクトルであり、ΔＮj,1及びΔＮj,2は、状態ｉのエネルギー（ｊ）及び指示される接線ベクトルに対応する分布関数である。分布関数は、次式に従って決定され、
【数６】
2020035434.tif 000009
方程式（Ｉ．２４）
ここでのｊは、エネルギーレベル１状態では１に等しく、エネルギーレベル２状態では２に等しい。
【０１００】
ΓiOUT（α）の方程式の各項の関数は以下の通りである。第１項及び第２項は、ボルツマン分布を生じる上で衝突が効果的である限りは法線運動量流束境界条件を強制するが、接線運動量流束の例外を含む。第４項及び第５項は、この不十分な衝突に起因する離散性効果又は非ボルツマン構造を原因として生じ得る例外を補正する。最後に、第３項は、表面上の接線運動量流束の所望の変化を強制するように一定量の表面摩擦を追加する。摩擦係数Ｃfの生成については以下で説明する。なお、ベクトル操作に関与する全ての項は、シミュレーションの開始前に計算できる幾何学的因子である。
【０１０１】
この式から、接線速度が以下のように求められ、
ｕi（α）＝（Ｐ（α）−Ｐn（α）ｎα）／ρ          方程式（Ｉ．２５）
ここでのρは、以下のようなファセット分布の密度である。
【数７】
2020035434.tif 000010
方程式（Ｉ．２６）
【０１０２】
前回と同様に、流入流束分布とボルツマン分布との差分を以下のように求める。
ΔΓi（α）＝ΓiIN（α）−Ｎn-βi（α）Ｖiα  方程式（Ｉ．２７）
【０１０３】
すると、流出流束分布は以下のようになり、
ΓiOUT（α）＝Ｎn-βi（α）Ｖiα−ΔΓi＊（α）＋Ｃf（ｎαｃi）［Ｎn-βi＊（α）−Ｎn-βi（α）］Ｖiα              方程式（Ｉ．２８）
この式は、先の手法によって求めた流出流束分布の最初の２行に対応するが、異常な接線流束のための補正を必要としない。
【０１０４】
いずれかの方法を使用すると、結果として得られる流束分布は運動量流束条件を全て満たし、すなわち、
【数８】
2020035434.tif 000011
方程式（Ｉ．２９）
となり、ここでのｐαは、ファセットＦαにおける平衡圧であって、ファセットに粒子を提供するボクセルの平均密度及び温度値に基づき、ｕαは、ファセットにおける平均速度である。
【０１０５】
質量及びエネルギー境界条件が確実に満たされるように、各エネルギーレベルｊについて入力エネルギーと出力エネルギーとの差分を以下のように測定する。
【数９】
2020035434.tif 000012
方程式（Ｉ．３０）
ここでの添字ｊは、状態ｉのエネルギーを示す。次に、このエネルギー差を用いて差分項（ｄｉｆｆｅｒｅｎｃｅ  ｔｅｒｍ）を生成すると、
ｃjiｎα＞０の場合、以下のようになる。
【数１０】
2020035434.tif 000013
方程式（Ｉ．３１）
この差分項を用いて流出流束を修正すると、流速は、
ｃjiｎα＞０の場合、以下のようになる。
ΓαjiOUTf＝ΓαjiOUT＋δΓαji          方程式（Ｉ．３２）
この演算は、接線運動量流束をそのままにした状態で質量及びエネルギー流束を訂正する。ファセットの近傍において流れがおおよそ均一であって平衡に近い場合には、この調整はわずかなものである。結果として得られる調整後の法線運動量流束は、近傍の平均特性に近傍の非均一性又は非平衡特性に起因する補正をプラスしたものに基づく平衡圧である値へとわずかに変化する。
【０１０６】
５．ボクセルからボクセルへの移動
再び図１１を参照すると、３次元直線格子に沿ってボクセル間で粒子を移動させる（ステップ２８４）。このボクセルからボクセルへの移動は、ファセットと相互作用しないボクセル（すなわち、表面付近に存在しないボクセル）に対して行われる唯一の移動操作である。典型的なシミュレーションでは、表面と相互作用するほど十分に表面近くに存在しないボクセルがボクセルの大多数を構成する。
【０１０７】
この分離状態の各々は、３次元のｘ、ｙ及びｚの各々において格子に沿って整数速度で移動する粒子を表す。整数速度は、０、±１及び±２を含む。速度の符号は、対応する軸に沿った粒子の移動方向を示す。
【０１０８】
表面と相互作用しないボクセルの場合、この移動操作は計算的に極めて単純である。毎時間増分中に、状態の集団全体をその現在のボクセルから宛先ボクセルに移動させる。同時に、宛先ボクセルの粒子を、そのボクセルから独自の宛先ボクセルに移動させる。例えば、＋１ｘ及び＋１ｙ方向に移動しているエネルギーレベル１の粒子（１，０，０）は、その現在のボクセルから、ｘ方向に＋１上回り他の方向が０であるボクセルに移動させる。この粒子は、最後には移動前の状態と同じ状態の宛先ボクセル（１，０，０）に行き着く。ボクセル内の相互作用は、他の粒子及び表面との局所的相互作用に基づいてその状態の粒子総数を変化させることがある。変化しなければ、粒子は格子に沿って同じ速度で同じ方向に移動し続ける。
【０１０９】
この移動操作は、１又は２以上の表面と相互作用するボクセルでは若干複雑になる。この結果、１又は２以上の端数粒子（ｆｒａｃｔｉｏｎａｌ  ｐａｒｔｉｃｌｅｓ）がファセットに移動することがある。このような端数粒子のファセットへの移動により、ボクセルに端数粒子が留まるようになる。これらの端数粒子を、ファセットに占有されたボクセルに移動させる。
【０１１０】
図１７を参照すると、ボクセル３６２の状態ｉの粒子の一部３６０がファセット３６４に移動した時には（ステップ２７８）、残り部分３６６をファセット３６４が位置するボクセル３６８に移動させ、ここから状態ｉの粒子をファセット３６４に向ける。従って、状態集団が２５に等しく、Ｖiα（ｘ）が０．２５に等しい（すなわち、ボクセルの４分の１が平行六面体Ｇiαに交わる）場合には、６．２５の粒子がファセットＦαに移動し、１８．７５の粒子を、ファセットＦαに占有されたボクセルに移動させる。１つのボクセルに複数のファセットが交わることもあるので、１又は２以上のファセットに占有されたボクセルに移動する状態ｉの粒子の数Ｎ（ｆ）は以下のようになり、
【数１１】
2020035434.tif 000014
方程式（Ｉ．３３）
ここでのＮ（ｘ）はソースボクセルである。
【０１１１】
６．ファセットからボクセルへの散乱
次に、各ファセットからの流出粒子をボクセルに散乱させる（ステップ２８６）。基本的に、このステップは、ボクセルからファセットに粒子が移動する収集ステップの逆である。ファセットＦαからボクセルＮ（ｘ）に移動する状態ｉの粒子の数は以下のようになり、
【数１２】
2020035434.tif 000015
方程式（Ｉ．３４）
ここでのＰf（ｘ）は、部分的なボクセルの容積縮小に相当する。この式から、各状態ｉについて、ファセットからボクセルに向かう粒子の総数Ｎ（ｘ）は以下のようになる。
【数１３】
2020035434.tif 000016
方程式（Ｉ．３５）
【０１１２】
粒子をファセットからボクセルに散乱させ、これらの粒子を周囲のボクセルから移流した粒子と組み合わせて結果を整数化した後には、一定のボクセルの一定の方向がアンダーフロー（負になる）又はオーバーフロー（８ビット実装において２５５を超える）のいずれかになることがある。この結果、これらの量を許容できる値の範囲に収まるように切り捨てた後には、質量、運動量及びエネルギーが増加又は減少するようになる。このような発生を防ぐために、有害な状態を切り捨てる前に、限界を超えた質量、運動量及びエネルギーを蓄積する。状態を有するエネルギーでは、（アンダーフローに起因して）得られた又は（オーバーフローに起因して）失われた値に等しい質量が、同じエネルギーを有するランダムに（又は順次に）選択された状態に再び追加され、これ自体がオーバーフロー又はアンダーフローに影響されることはない。この質量及びエネルギーの追加によって生じるさらなる運動量を蓄積して、切り捨てからの運動量に追加する。同じエネルギー状態のみに質量を追加することにより、質量カウンタがゼロに達した時に質量及びエネルギーがいずれも補正される。最後に、運動量積算器がゼロに戻るまでプッシング／プリング法を用いて運動量を補正する。
【０１１３】
７．流体力学の実行
流体力学を実行する（図１１、ステップ２８８）。このステップは、マイクロ動力学操作又はボクセル内操作と呼ぶことができる。同様に、移流手順は、ボクセル間操作と呼ぶことができる。後述するマイクロ動力学操作を用いて、ファセットにおける粒子を衝突させてボルツマン分布を生成することもできる。
【０１１４】
流体力学は、格子ボルツマン方程式モデルにおいて、ＢＧＫ衝突モデルとして知られている特定の衝突演算子によって保証される。この衝突モデルは、実際の流体系における分布の動力学を模倣する。衝突プロセスは、方程式１及び方程式２の右辺によって十分に説明することができる。移流ステップ後には、方程式３を用いた分布関数から流体系の保存量、具体的には密度、運動量及びエネルギーが取得される。これらの量から、方程式（２）にｆeqで示す平衡分布関数が方程式（４）によって十分に規定される。いずれも表１に列挙する速度ベクトルセットｃｉ、重みの選択は、式２と相まって、巨視的挙動が正しい流体動力学方程式に従うことを保証する。
【０１１５】
可変分解能
例えば、粗ボクセル及び微小ボクセルなどの異なるサイズのボクセルを使用する（米国特許出願公開第２０１３／０１５１２２１号に記載されるような）可変分解能を使用することもできる。
【０１１６】
システムは、固有の過渡的な格子ボルツマンベースの物理学を活用することによって、現実世界の状態を正確に予測するシミュレーションを実行することができる。例えば、技術者らは、変更の影響が設計及び予算にとって最も重要である場合、いずれかの試作品を構築する前の設計プロセスの早期に製品性能を評価する。システムは、ＣＡＤ形状を使用して、空気力学的シミュレーション、空気音響シミュレーション及び熱管理シミュレーションを正確かつ効率的に実行することができる。システムは、以下のような用途に対応するシミュレーションを実行することができる：空気力学（空力効率、車両操縦、汚れ及び水の管理、パネル変形、運転動特性）、空気音響学（温室の風切り音、車体底部の風騒音、隙間／シールの騒音、ミラー、警笛及び音色の騒音、サンルーフ及びウィンドウの打撃、通過騒音／都市騒音、冷却ファン騒音）、熱管理（冷却空気流、熱防護、ブレーキ冷却、ＲＯＡ／吸気ポート）、環境制御（車室の快適性、ＨＶＡＣユニット及び分配システムの性能、ＨＶＡＣシステムとファン騒音、除霜と防曇）、動力伝達系（駆動系冷却、排気系、冷却ジャケット、エンジンブロック）、汚れ及び水の管理（ピラーのオーバーフロー、塵埃の蓄積、タイヤの水しぶき）。
【０１１７】
本明細書で説明した主題及び機能動作の実施形態は、（本明細書に開示した構造及びこれらの構造的同等物を含む）デジタル電子回路、有形的に具体化されたコンピュータソフトウェア又はファームウェア、コンピュータハードウェア、或いはこれらのうちの１つ又は２つ以上の組み合わせで実装することができる。本明細書で説明した主題の実施形態は、１又は２以上のコンピュータプログラム（すなわち有形の非一時的プログラムキャリア上に符号化された、データ処理装置が実行するための、又はこれらのデータ処理装置の動作を制御するためのコンピュータプログラム命令の１又は２以上のモジュール）として実装することができる。コンピュータ記憶媒体は、機械可読記憶装置、機械可読記憶基板、ランダム又はシリアルアクセスメモリデバイス、或いはこれらのうちの１つ又は２つ以上の組み合わせとすることができる。
【０１１８】
「データ処理装置」という用語はデータ処理ハードウェアを意味し、データを処理する全ての種類の装置、デバイス及び機械を含み、一例としてプログラマブルプロセッサ、コンピュータ、或いは複数のプロセッサ又はコンピュータを含む。この装置は、（例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）などの）専用論理回路を含むこともできる。この装置は、ハードウェアに加えて、任意に（例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、或いはこれらのうちの１つ又は２つ以上の組み合わせを構成するコードなどの）コンピュータプログラムの実行環境を形成するコードを含むこともできる。
【０１１９】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト又はコードと呼ぶこと又は記述することもできるコンピュータプログラムは、コンパイラ型言語又はインタープリタ型言語、宣言型言語又は手続き型言語を含むあらゆる形のプログラミング言語で書くことができ、スタンドアロンプログラム、又はモジュール、コンポーネント、サブルーチン、又はコンピュータ環境で使用するのに適した別のユニットとしての形を含むあらゆる形で展開することができる。コンピュータプログラムは、必須ではないが、ファイルシステム内のファイルに対応することができる。プログラムは、（例えば、対象プログラム専用の単一のファイル内の、又は複数の連動するファイル（例えば、１又は２以上のモジュール、サブプログラム、又はコードの一部を記憶するファイル）内の、マークアップ言語リソースに記憶された１又は２以上のスクリプトなどの）他のプログラム又はデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、１つのコンピュータ上で実行されるように展開することも、或いは１つのサイトに位置する、又は複数のサイトに分散して通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することもできる。
【０１２０】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサ又は専用マイクロプロセッサ、又はこれらの両方、或いは他のいずれか種類の中央処理装置に基づくことができる。コンピュータプログラム命令及びデータの記憶に適したコンピュータ可動媒体としては、一例として（ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリデバイスなどの）半導体メモリデバイス、（内部ハードディスク又はリムーバブルディスクなどの）磁気ディスク、磁気光学ディスク、並びにＣＤ  ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む全ての形態の媒体上不揮発性メモリ（ｎｏｎ  ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ  ｏｎ  ｍｅｄｉａ）及びメモリデバイスが挙げられる。プロセッサ及びメモリは、専用論理回路によって補完することも、又は専用論理回路に組み込むこともできる。
【０１２１】
本明細書で説明した主題の実施形態は、（例えばデータサーバとしての）バックエンドコンポーネントを含む、又は（アプリケーションサーバなどの）ミドルウェアコンポーネントを含む、又は（ユーザが本明細書で説明した主題の実装と相互作用できるようにするグラフィカルユーザインターフェイス又はウェブブラウザを有するクライアントコンピュータなどの）フロントエンドコンポーネントを含む、或いは１又は２以上のこのようなバックエンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントのいずれかの組み合わせを含むコンピュータシステムに実装することができる。システムのコンポーネントは、（通信ネットワークなどの）いずれかの形又は媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）（例えば、インタネット）が挙げられる。
【０１２２】
コンピュータシステムは、クライアント及びサーバを含むことができる。クライアントとサーバは一般に、互いに遠く離れており、典型的には通信ネットワークを介して対話する。このクライアントとサーバの関係は、それぞれのコンピュータ上で実行される、互いにクライアント−サーバの関係を有するコンピュータプログラムによって生じる。実施形態によっては、（例えば、ユーザ装置とやりとりするユーザにデータを表示し、このユーザからユーザ入力を受けるために）クライアントとして機能するユーザ装置にサーバがデータ（例えば、ＨＴＭＬページ）を送信することもある。ユーザ装置で生成されたデータ（例えば、ユーザインタラクションの結果）は、サーバにおいてユーザ装置から受け取ることができる。
【０１２３】
本主題の特定の実施形態について説明した。以下の特許請求の範囲には他の実施形態も含まれる。例えば、特許請求の範囲に記載した動作を異なる順序で実行しても望ましい結果を得ることができる。一例として、望ましい結果を達成するために、添付図に示した処理を必ずしも図示の特定の順序又は順番で行う必要はない。場合によっては、マルチタスク及び並行処理が有利な場合もある。
【図１】
2020035434.tif 000017
【図２】
2020035434.tif 000018
【図３】
2020035434.tif 000019
【図４】
2020035434.tif 000020
【図４Ａ】
2020035434.tif 000021
【図５】
2020035434.tif 000022
【図６】
2020035434.tif 000023
【図７】
2020035434.tif 000024
【図８】
2020035434.tif 000025
【図９】
2020035434.tif 000026
【図１０】
2020035434.tif 000027
【図１１】
2020035434.tif 000028
【図１２】
2020035434.tif 000029
【図１３Ａ】
2020035434.tif 000030
【図１３Ｂ】
2020035434.tif 000031
【図１４】
2020035434.tif 000032
【図１５】
2020035434.tif 000033
【図１６】
2020035434.tif 000034
【図１７】
2020035434.tif 000035
【図１８】
2020035434.tif 000036
【図１９】
2020035434.tif 000037
【外国語明細書】
2020035434000001.pdf