従来の有限要素法や有限体積法等の数値解析手法のように、ソルバ処理において分割領域の幾何学的形状を用いる場合には、当然ながら計算用データモデルに対して、分割領域の幾何学的形状を示すデータを持たせることが必須となる。
分割領域の幾何学的形状を定義するためには、Vertexに加えて、頂点の連結情報(Connectivity of Vertex、以下ではConnectivityと略記する)が必要となる。したがって、有限要素法や有限体積法では、計算用データモデルにVertexとConnectivityと持たせる必要がある。
なお、具体的には、Connectivityは、全分割領域の頂点に対して順番に付された全体ノード番号と、1つの分割領域内において頂点に対して順番に付された局所ノード番号との対応情報によって定義される。
このようなVertexとConnectivityとを有する計算用データモデルは、周知のように作成に非常に膨大な作業が必要となる。例えば、有限要素法で用いられる計算用データモデルでは、図1に示すように、隣接する分割領域が必ずVertexを共有するという条件を満足するように計算用データモデルを作成する必要があり、全ての分割領域がこの条件を満足させるためには、非常に膨大な時間を必要とする。
一方、有限体積法で用いられる計算用データモデルは、図2に示すように、隣接する分割領域に共有されないVertexの存在を許容できる分、有限要素法と比較すればメッシュ生成の自由度が増す。しかしながら、有限体積法においても、共有されないVertexが少なくとも隣接する分割領域の辺上に存在すること、また一般的に分割領域の形状を予め設定された解析要素タイプに合わせることといった条件の中で計算用データモデルを作成する必要があり、メッシュ生成の自由度が高いとは言い難い。
また、近年においては、3次元CAD(Computer Aided Design)データ等の3次元形状データから抽出される解析領域に対する数値解析が行われている。しかしながら、3次元形状データは、数値解析用に形成されたデータではなく、面の重なり、面の交差、面間の隙間、微小穴等を示すデータが含まれており、VertexとConnectivityとを有する計算用データモデルの作成に適さない条件を多く含んでいる。このため、これらのVertexとConnectivityとを有する計算用データモデルの作成が出来るように、3次元形状データを修正あるいは変更する必要がある。そして、VertexとConnectivityとを有する計算用データモデルが作成可能なように、3次元形状データを修正あるいは変更するためには、経験や試行錯誤を要する非常に膨大な手作業を行う必要がある。これが、有限要素法や有限体積法を実用で利用する際の大きな問題である。
また、有限体積法のようにソルバ処理において分割領域の体積、境界面の面積及び境界面の法線ベクトルの算出を行う場合には、ソルバ処理における計算量がさらに増えることとなり、ソルバ処理における計算負荷がさらに増大する。
ボクセル法では、短時間で計算用データモデルを作成することができるものの、以下の点で問題がある。ボクセル法は、基本的に解析領域が全て同一サイズのボクセル(直交格子)によって定義される。通常、有限要素法や有限体積法では、より高い解析精度を得たい領域の要素サイズ(分割領域のサイズ)を小さく設定することによって当該領域について正確な物理量計算を行い、また他の領域の要素サイズを大きく設定することによって当該領域についての計算負荷を低減させている。ところが、ボクセル法においては、全てのボクセルが基本的に同一サイズであるため、ボクセルを小さく設定した場合には計算負荷が非常に大きくなり、ボクセルを大きく設定した場合には解析精度が悪化することとなる。
また、ボクセル法では、同一サイズのボクセル(直交格子)を配列することによって解析領域を定義する必要があることから、外部領域との境界付近において解析領域を滑らかにすることができずに階段状となる場合がある。つまり、実際に解析したい領域が斜面や曲面等を有している場合であっても、ボクセルデータにおいてその領域は階段状に表されることとなる。このため、ボクセル法における解析領域形状が実際に解析したい領域形状と異なることとなり、解析精度は悪化する。
これに対して、ボクセルデータの階段状の領域を、実際に解析したい領域が有する斜面や曲面に沿って切断(境界補正)するカットセル法と呼ばれる改良方法が提案されている。しかしながら、この改良方法によると、この境界補正によって非常に小さな分割領域が生成されやすく、このような小さな分割領域が生成された場合には、解析精度の悪化を招く。また、この改良方法では、カットセルの形成のため及びソルバ処理において、Vertexを利用することとなる。
以上のように、境界補正を行わないボクセル法においては、Vertex等が必要ないものの、ボクセルの生成、いわゆるメッシュ生成には限界がある。すなわち、十分な解析精度を得ようとすると、ボクセルの数が増え、ソルバ処理における計算負荷も増え、問題となる。さらに、境界補正を行うボクセル法の改良方法では、結果としてVertexが必要となるため、結局、分割領域の幾何学的形状の影響を受けることなり、外部領域との境界周辺での分割領域形成のための処理に、経験や試行錯誤を要する非常に膨大な手作業を伴い、形状データモデルを短時間に作成することができないことになる。
一方、粒子法では、ある特定の粒子と他の粒子との結合関係を算出する必要がある。このため、当該特定粒子の近傍に存在する粒子を探索する必要がある。そして、この粒子の近傍探索処理は、原則として全ての粒子に対して行われる。しかしながら、粒子法においては、時刻の変化と共に各粒子が移動し、これによって常に粒子同士の結合関係が変化する。このため、解析における時刻が変化するたびに近傍探索処理を行う必要があり、計算負荷の増大を招く。近傍探索の対象となる粒子を厳選する等して近傍探索処理の計算負荷を低減させる試みがなされているものの、例えば、解析精度を向上させるために粒子数を増大させた場合には、粒子数の2乗に比例して計算負荷が増大する。
このような粒子法において実用時間内における数値解析を実現するためには、大型の並列計算機で多くのCPU(Central Processing Unit)を使用する必要がある。例えば、百万個程度の粒子を用いた粒子法による数値解析が、VertexとConnectivityを使用した一般的な有限体積法ソルバで、1CPUで半日の計算が、粒子法では32CPUを使用した並列計算で1週間以上かかった実例がある。また、粒子法においても、粒子を密に配置された場合には計算負荷が非常に大きくなり、粒子を粗く配置した場合には解析精度が悪化することとなる。
さらに、粒子法では、後に詳説するが、流体、構造、熱、拡散等の物理量の保存則に基づく物理現象を解析する場合には、その保存性が十分に満足されていない。例えば、解析領域と外部領域との境界面に臨んで配置される粒子が、境界面においてどれだけの面積を有しているかの情報がない。このため、境界面から熱を入熱させる条件を与えようとした場合であっても、各粒子にどれだけの熱が入熱されるかを正確に把握することができず、精度の良い定量値が得られない。
本発明は、前述する従来の数値解析手法である有限要素法、有限体積法、ボクセル法、ボクセル法の改良手法、及び粒子法の問題点に鑑みてなされたもので、解析精度の悪化を伴わずにソルバ処理における計算負荷の低減を図ることができる数値解析装置に入力する計算用データの作成における作業負担を軽減することができる計算用データ生成装置、計算用データ生成方法及び計算用データ生成プログラムを提供することを目的とする。
上記課題を解決するために、本発明は、物理現象を数値的に解析する数値解析方法において物理量を計算する物理量計算方法であって、直交格子形状のみによらない複数の分割領域に分割された解析領域における物理量を計算する物理量計算工程を含み、該物理量計算工程にて、前記分割領域の頂点の座標(Vertex)及び該頂点の連結情報(Connectivity)を必要としない量のみを使用すると共に重み付き残差積分法に基づいて導出された離散化された支配方程式と、各前記分割領域の体積及び隣り合う前記分割領域同士の境界面の特性を示す境界面特性量を、前記分割領域の頂点の座標(Vertex)及び該頂点の連結情報(Connectivity)を必要としない量として有する計算用データモデルと、を用いて前記物理量を計算するという構成を採用する。
本発明で用いられる離散化支配方程式は、従来のように分割領域の幾何学的形状を規定する量(VertexとConnectivity)を含んだ形式で表現されるものではなく、分割領域の幾何学的形状を規定する量を必要としないものである。本発明で用いられる離散化支配方程式は、従来の幾何学的形状を規定する量を使用する方程式を重み付き残差積分法に基づいて導出する過程で敢えて途中にて留めることによって得ることができる。このような本発明で用いられる離散化支配方程式は、分割領域の幾何学的形状を必要としない量(すなわちVertexとConnectivityとを必要としない量)で表現され、例えば分割領域の体積と境界面特性量の2つのみに依存する形式とすることができる。
つまり、従来の有限要素法や有限体積法では、前提として解析対象物を微小領域に分割するため、この微小領域の幾何学的形状を規定する量、すなわちVertexとConnectivityを用いることを前提にして離散化支配方程式の導出をしているが、本発明で用いられる離散化支配方程式は、従来と異なるまったく新しい発想に基づいて導出されるものである。そして、本発明は、このような新しい発想に基づいて導出された離散化支配方程式を用いることを特徴とするものであり、従来の数値解析方法と異なり、幾何学的形状に依存せず、従来の問題を解決し、種々の顕著な効果を奏する。
ここで、分割領域の体積と境界面特性量とが、分割領域の特定の幾何学的形状を規定するVertexとConnectivityとを必要としない量であることについて説明する。なお、VertexとConnectivityとを必要としない量とは、VertexとConnectivityとを用いなくとも定義が可能な量である。例えば、分割領域の体積について考えると、分割領域の体積がある所定の値となるための分割領域の幾何学的形状は複数存在する。つまり、体積がある所定の値をとる分割領域の幾何学的形状は、立方体である場合や球である場合も考えられる。そして、例えば、分割領域の体積は、全分割領域の総和が解析領域全体の体積と一致するという制約条件の下で、例えば分割領域の体積が隣接分割領域との平均距離の3乗にできるだけ比例するような最適化計算により定義することができる。したがって、分割領域の体積は、分割領域の特定の幾何学的形状を必要としない量(VertexとConnectivityとを必要としない量)と捉えることができる。
また、境界面特性量としては、例えば境界面の面積や、境界面の法線ベクトル、境界面の周長等が考えられるが、これらの境界面特性量がある所定の値となるための分割領域の幾何学的形状(すなわち境界面の幾何学的形状)は複数存在する。そして、例えば、境界面特性量は、各分割領域を取り囲む全境界面に対して、法線ベクトルの面積加重平均ベクトルの長さがゼロとなる制約条件の下で、境界面の法線ベクトルの方向を隣接する2つの分割領域のコントロールポイント(図5参照)を結ぶ線分に近づけ、かつ、分割領域を取り囲む全境界面面積の総和が当該分割領域の体積の2分の3乗にできるだけ比例するような最適化計算により定義することができる。したがって、境界面特性量は、分割領域の特定の幾何学的形状を必要としない量(VertexとConnectivityとを必要としない量)と捉えることができる。
また、本発明において「直交格子形状のみによらない複数の分割領域に分割された解析領域」とは、解析領域を構成する複数の分割領域の少なくともいずれかが直交格子形状を取らないことを意味する。つまり、解析領域が直交格子形状以外の形状の分割領域を含むことを意味する。また、本発明において「VertexとConnectivityとを必要としない量のみを使用する」とは、離散化支配方程式に代入される値がVertexとConnectivityとを必要としない量のみであることを意味する。
次に、図3の概念図を参照して、本発明を用いた数値解析手法と従来の数値解析手法とにおけるプリ処理及びソルバ処理を対比しながら、本発明の顕著な効果についてより詳細な説明を行う。
本発明を用いる数値解析手法の場合には、図3に示すように、ソルバ処理(本発明の物理量計算工程)にて、VertexとConnectivityとを必要としない量のみを使用する離散化支配方程式を用いて分割領域における物理量の算出が行われる。このため、離散化支配方程式を解くにあたり、プリ処理にて作成される計算用データモデルにVertexとConnectivityとを含める必要がない。
そして、本発明を用いる場合には、VertexとConnectivityとを必要としない量として、分割領域の体積と境界面特性量とが使用される。このため、プリ処理にて作成される計算用データモデルは、VertexとConnectivityとを持たず、分割領域の体積と、境界面特性量と、その他補助データ(例えば、後述する、分割領域の係合情報やコントロールポイント座標等)とを有するものとなる。
このように本発明を用いた場合には、前述のように、分割領域の体積と上記境界面特性量、すなわち分割領域の幾何学的形状を必要としない量に基づいて各分割領域における物理量が計算可能とされる。このため、計算用データモデルに、分割領域の幾何学的形状、すなわちVertexとConnectivityとを持たせることなく物理量を算出することが可能となる。したがって、本発明を用いることにより、プリ処理において、少なくとも分割領域の体積と境界面特性量(境界面の面積及び境界面の法線ベクトル)とを有する計算用データモデルを作成すれば良くなり、VertexとConnectivityとを有する計算用データモデルを作成することなく物理量の計算を行うことが可能となる。
VertexとConnectivityとを持たない計算用データモデルは、分割領域の幾何学的形状を必要としないため、分割領域の幾何学的形状に縛られることなく作成することができる。このため、3次元形状データの修正作業に対する規制も大幅に緩和される。よって、VertexとConnectivityとを持たない計算用データモデルは、VertexとConnectivityとを有する計算用データモデルと比較して遥かに容易に作成することが可能となる。したがって、本発明によれば、計算用データモデルの作成における作業負担を軽減することが可能となる。
また、本発明を用いる場合であっても、プリ処理においては、VertexとConnectivityとを使用しても構わない。つまり、プリ処理においてVertexとConnectivityを用いて分割領域の体積や境界面特性値等を算出しても良い。このような場合であっても、ソルバ処理においては分割領域の体積や境界面特性値があれば物理量の計算が可能であるため、プリ処理においてVertexとConnectivityとを利用するにしても、分割領域の幾何学的形状に対する制約、例えば分割領域の歪みや捩じれ等に起因する制約がなく、計算用データモデルの作成における作業負担の軽減が可能である。
また、本発明を用いることによって、プリ処理において、分割領域の幾何学的形状に対する制約がなくなるため、分割領域を任意の形状に変更させることができる。このため、分割領域の数を増やすことなく、解析領域を実際に解析したい領域に容易にフィッティングさせることが可能となり、計算負荷を増大させることなく解析精度を向上させることが可能となる。さらに、本発明を用いることによって分割領域の分布密度も任意に変更することができるため、必要な範囲で計算負荷の増大を許容しながらさらに解析精度を向上させることも可能である。
また、本発明を用いることによって、従来の数値解析手法と異なり、ソルバ処理においてVertexとConnectivityとを用いて分割領域の体積及び境界面特性量を算出する必要がない。したがって、ソルバ処理における計算負荷を低減させることも可能となる。
また、本発明では、解析領域の形状が変化しない場合には分割領域の移動を必要としないため、粒子法のように時刻が変化するごとに近傍探索処理を行う必要がなく、計算負荷が小さい。また、後に詳説するが、本発明を用いることによって、粒子法と異なり、物理量の保存則を満たしながら物理量の計算を行うことができる。
一方、従来の数値解析手法である有限体積法は、プリ処理にて分割領域の幾何学的形状を示すVertexとConnectivityとを有する計算用データモデルを作成し、ソルバ処理にて計算用データモデルに含まれるVertexとConnectivityとを用いて分割領域の体積と境界面特性量(境界面の面積及び境界面の法線ベクトル)とを算出してから各分割領域における物理量を計算する。この場合には、幾何学的形状に対する制約、すなわちVertexとConnectivityとの関係に問題ないことが要求される。このため、分割領域の歪み、捩じれ等の制約の中で計算用データモデル(すなわちメッシュ)を作成する必要があり、前述のように計算用データモデル作成上における膨大な手作業が発生するという問題がある。
また、有限要素法も、ソルバ処理にて計算用データモデルに含まれるVertexとConnectivityとを用いて物理量を計算するため、プリ処理にて分割領域の幾何学的形状を示すVertexとConnectivityとを有する計算用データモデルを作成する必要があり、計算用データモデル作成上における膨大な手作業が発生する。
また、従来の数値解析手法であるボクセル法は、図3に示すように、ソルバ処理において物理量を算出するにあたり、VertexとConnectivityとが必要ないものの、分割領域の形状がボクセルに限定されることから、前述したように外部領域との境界が階段状になるという問題がある。このため、前述のように十分な解析精度を得ようとすると、ボクセルの数も増え、ソルバ処理における計算負荷が増え問題となる。また、境界補正を行うボクセル法では、結局、分割領域の体積等を算出するにあたりVertexを利用することとなり、計算用データモデルを作成するにあたり分割領域の幾何学的形状の影響を受けることになる。
また、従来の数値解析手法である粒子法は、分割領域という概念が存在しないため、図3に示すように、ソルバ処理において物理量を算出するにあたり、VertexとConnectivityとが必要ないものの、分割領域の代わりに計算用データモデルを定義する粒子の移動に起因し、前述のように計算負荷が増大する。また、粒子法では、保存則を満たしながら物理量の計算を行うことは難しい。
続いて、図4を参照して、本発明と従来の有限体積法とについてさらに詳しく比較を行う。従来の有限体積法では、前述のように、プリ処理において、メッシュ分割で得られる分割領域の幾何学的な形状を定義するためのVertexとConnectivityとを有する計算用データモデルを作成する。また、一般的には、ソルバ処理において分割領域の係合情報(以下linkと呼ぶ)が必要となる。このため、プリ処理においては、VertexとConnectivityとlinkとを有する計算用データモデルが作成される。
そして、従来の有限体積法では、図4に示すように、プリ処理から、VertexとConnectivityとlinkとを有する計算用データモデルと、ソルバ処理において必要となる境界条件や初期条件等とをソルバ処理に受け渡す。ソルバ処理では、受け渡された計算用データモデルに含まれるVertexやConnectivity等を使用して離散化支配方程式を解くことによって物理量の算出を行う。
一方、本発明では、プリ処理において、任意に配置された分割領域の体積、境界面特性量(境界面の面積、境界面の法線ベクトル)及びlinkを有する計算用データモデルを作成する。また、後に詳説するが、本発明では、必要に応じて、分割領域の内部に配置されるコントロールポイントの座標を計算用データモデルに持たせる場合もある。
そして、本発明では、図4に示すように、プリ処理から、分割領域の体積、境界面特性量及びlink(必要に応じてコントロールポイントの座標)を有する計算用データモデルと、境界条件や初期条件等とをソルバ処理に受け渡す。ソルバ処理では、受け渡された計算用データモデルに含まれる分割領域の体積、境界面特性量等を使用して離散化支配方程式を解くことによって物理量の算出を行う。
そして、図4から分かるように、本発明では、ソルバ処理において、VertexとConnectivityとを使用しないで物理量を計算している点が従来の有限体積法と大きく異なり、この点が本発明の大きな特徴である。このような特徴は、ソルバ処理にて、VertexとConnectivityとを必要としない量のみを使用する離散化支配方程式を用いることによって得られるものである。
この結果、図4に示すように、本発明では、ソルバ処理にVertexとConnectivityとを受け渡す必要がなくなり、プリ処理において、VertexとConnectivityとを持たない計算用データモデルを作成すれば良いこととなる。したがって、従来の有限体積法と比較して本発明では、遥かに容易に計算用データモデルを作成することが可能となり、計算用データモデルの作成における作業負担を軽減することが可能となる。
また、数値解析を行う解析領域の形状が時系列的に変化する場合、すなわち解析領域が移動境界を含む場合がある。このような場合、移動境界に合わせて分割領域を移動及び変形させる必要がある。
従来の有限体積法では、移動境界の移動ごとにおけるVertexを予めストアする方法か、分割領域のいびつな変形により計算不可となった場合に領域分割を再実行する方法によって、移動境界を含む場合の物理量の計算を行っている。これに対して、本発明では、Vertexに替えて分割領域の体積や境界面特性値等を予め求めておいてストアしておく方法か、領域分割の再実行によって移動境界を含む場合の物理量の計算を行うことができる。
従来の有限体積法または本発明において、前述のいずれの方法を採用する場合であっても、複数の計算用データモデルを作成する必要がある。しかしながら、従来の有限体積法では、1つでも膨大な作業量が必要となる計算用データモデルを複数作成するとなると、その作業量は、多くの場合において現実的に負担可能な範囲で行えるものではなくなる。
一方、本発明では、計算用データモデルがVertexとConnectivityとを持つ必要がなく、領域分割過程でVertexやConnectivityの整合性を考慮する必要がないため、とても高速に計算用データモデルを作成することができ、移動境界を含む場合の物理量の計算を容易に行うことができる。
ここで、前述のlinkについて補足をする。linkは、物理量のやり取りを行う分割領域同士を関連付ける情報である。そして、このlinkによって関連付けられる分割領域は、必ずしも空間的に隣接されている必要はなく、空間的に離間していても構わない。このようなlinkは、VertexやConnectivityと関連するものではなく、Vertex及びConnectivityと比較すると、極めて短時間で作成することができるものである。
次に、本発明を用いた数値解析手法(以下、本数値解析手法と称する)の原理、すなわち重み付き残差積分法に基づいて導出された離散化支配方程式と、分割領域の体積と境界面特性量とによって物理量を算出可能となる原理について詳細に説明する。なお、以下の説明において、[]にて挟まれた文字は、図面において太字で記されたベクトルを示す。
まず、本数値解析手法における計算用データモデルは、解析領域を分割して得られる各分割領域の体積と、隣り合う分割領域同士の境界面の特性を示す境界面特性量とを用いて定義されている。図5は、このような本数値解析手法の計算用データモデルの一例を示す概念図である。この図において、セルR1,R2,R3・・・は、解析領域を分割して得られる分割領域であり、各々が体積Va,Vb,Vc・・・を有している。また、境界面Eは、セルR1とセルR2との間において物理量の交換が行われる面であり、本発明における境界面に相当するものである。また、面積Sabは、境界面Eの面積を示し、本発明における境界面特性量の1つである。また、[n]abは、境界面Eの法線ベクトルを示し、本発明における境界面特性量の1つである。
また、コントロールポイントa,b,c・・・は、各セルR1,R2,R3の内部に配置されおり、図5においては各セルR1,R2,R3・・・の重心位置に配置されている。ただし、コントロールポイントa,b,c・・・は、必ずしも各セルR1,R2,R3・・・の重心位置に配置される必要はない。また、αは、コントロールポイントaからコントロールポイントbまでの距離を1とした場合におけるコントロールポイントaから境界面Eまでの距離を示し、境界面Eがコントロールポイントaとコントロールポイントbとを結ぶ線分のどの内分点に存在するかを示す比率である。
なお、境界面は、セルR1とセルR2との間のみに限らず、隣り合う全てのセル間に存在する。そして、境界面の法線ベクトル及び境界面の面積も、境界面ごとに与えられるものである。
そして、実際の計算用データモデルは、各コントロールポイントa,b,c・・・の配置データと、各コントロールポイントa,b,c・・・が存在するセルR1,R2,R3・・・の体積Va,Vb,Vc・・・を示す体積データと、各境界面の面積を示す面積データと、各境界面の法線ベクトルを示す法線ベクトルデータとを有するデータ群として構築されている。すなわち、本数値解析手法の計算用データモデルは、セルR1,R2,R3・・・の体積Va,Vb,Vc・・・と、隣り合うセルR1,R2,R3・・・同士の境界面の特性を示す境界面特性量である境界面の面積と、隣り合うセルR1,R2,R3・・・同士の境界面の特性を示す境界面特性量である境界面の法線ベクトルとを有して定義されている。
なお、各セルR1,R2,R3・・・は、コントロールポイントa,b,c・・・を有している。このため、セルR1,R2,R3・・・の体積Va,Vb,Vc・・・は、コントロールポイントa,b,c・・・が仮想的に占める空間(コントロールボリューム)の体積として捉えることができる。また、本数値解析手法の計算用データモデルは、必要に応じて、境界面が挟まれたコントロールポイント同士を結ぶ線分のどの内分点に存在するかの比率αを示す比率データを有する。
以下では、前述の計算用データモデルを用いて解析領域の各セル(分割領域)における流速を求める物理量計算例について説明する。なお、ここでは、各コントロールポイントにおける流速を各セルにおける流速として求める。
まず、本物理量計算において本数値解析手法は、流体解析の場合、下式(1)で示すナビエ・ストークスの式と、下式(2)で示す連続の式とを用いる。
なお、式(1),(2)において、tが時間を示し、xi(i=1,2,3)がカーテシアン系における座標を示し、ρが流体密度を示し、ui(i=1,2,3)が流体の流速成分を示し、Pが圧力を示し、μが流体の粘性係数を示し、添字i(i=1,2,3),j(j=1,2,3)がカーテシアン座標系における各方向成分を示している。また、添字jに関しては総和規約に従うものとする。
そして、式(1),(2)を、重み付き残差積分法に基づいて、コントロールボリュームの体積に対して積分して示すと、式(1)が下式(3)のように示され、式(2)が下式(4)のように示される。
なお、式(3),(4)において、Vがコントロールボリュームの体積を示し、∫VdVが体積Vに関する積分を示し、Sがコントロールボリュームの面積を示し、∫SdSが面積Sに関する積分を示し、[n]がSの法線ベクトルを示し、ni(i=1,2,3)が法線ベクトル[n]の成分を示し、∂/∂nが法線方向微分を示している。
ここで、説明を簡単化するために、流体の密度ρと粘性係数μを定数とする。ただし、以下の定数化は、流体の物性値が、時間、空間、温度等によって変化する場合に対して拡張可能である。そして、図5のコントロールポイントaについて、境界面Eの面積Sabについて離散化し、代数方程式による近似式に変換すると、式(3)が下式(5)、式(4)が下式(6)のように示される。
ここで、添字abが付く、[n]ab,[u]ab,uiab,niab,Pab,(∂ui/∂n)abは、コントロールポイントaとコントロールポイントbとの間の境界面E上における物理量であることを示す。また、niabは[n]abの成分である。また、mは、コントロールポイントaと結合関係(境界面を挟む関係)にある全てのコントロールポイントの数である。
そして、式(5),(6)をVa(コントロールポイントaのコントロールボリュームの体積)で割ると、式(5)が下式(7)のように示され、式(6)が下式(8)のように示される。
ここで、下式(9)とする。
すると、式(7)が下式(10)のように示され、式(8)が下式(11)のように示される。
式(10),(11)において、[u]ab、uiab、Pab、(∂ui/∂n)abは、コントロールポイントaとコントロールポイントb上の物理量の重み付け平均(移流項については、風上性を考慮した重み付け平均)により近似的に求められ、コントロールポイントa,b間の距離及び向きと、その間に存在する境界面Eとの位置関係(上記比率α)と、境界面Eの法線ベクトルの向きに依存して決定される。ただし、[u]ab、uiab、Pab、(∂ui/∂n)abは、境界面Eの幾何学的な形状には無関係な量(すなわちセル形状を規定するVertexとConnectivityを必要としない量)である。
また、式(9)で定義されるφabも(面積/体積)という量であり、コントロールボリュームの幾何学的形状には無関係な量(すなわちセル形状を規定するVertexとConnectivityを必要としない量)である。つまり、このような式(10),(11)は、セル形状を規定するVertexとConnectivityを必要としない量のみを使用して物理量が算出可能な、重み付き残差積分法に基づく演算式である。
このため、物理量計算(ソルバ処理)に先立って前述の計算用データモデルを作成し、物理量計算において当該計算用データモデルと、式(10),(11)の離散化支配方程式とを用いることによって、物理量計算においてコントロールボリュームの幾何学的形状(すなわちセルの形状を規定するVertexとConnectivity)を全く使用せずに、流速の計算を行うことが可能である。
このように、物理量計算においてVertexとConnectivityとを全く使用せずに流速の計算が行えることから、計算用データモデルにVertexとConnectivityとを持たせる必要がなくなる。よって、計算用データモデルの作成にあたり、セルの幾何学的形状に縛られる必要がなくなるため、セルの形状を任意に設定することができる。このため、本数値解析手法によれば、前述のように3次元形状データの修正作業に対する規制を大幅に緩和することができる。
なお、実際に式(10),(11)を解くにあたり、[u]abやPab等の境界面E上の物理量は、通常、線形補間によって補間される。例えば、コントロールポイントaの物理量をψa、コントロールポイントbの物理用をψbとすると、境界面E上の物理量ψabは、下式(12)によって求めることができる。
また、物理量ψabは、境界面が挟まれたコントロールポイント同士を結ぶ線分のどの内分点に存在するかの比率αを用いることによって、下式(13)によって求めることもできる。
したがって、計算用データモデルが比率αを示す比率データを有している場合には、式(13)を用いて境界面E上の物理量をコントロールポイントaとコントロールポイントbとからの離間する距離に応じた重み付け平均を用いて算出することができる。
また、連続体モデルの方程式(ナビエ・ストークスの式等)には、式(1)に示すように、1階の偏導関数(偏微分)が含まれる。
ここで、連続体モデルの方程式の微係数を部分積分、ガウスの発散定理、あるいは一般化されたグリーンの定理を利用して、体積分を面積分に変換し、微分の次数を下げる。これによって1次微分は0次微分(スカラー量またはベクトル量)とすることができる。例えば一般化されたグリーンの定理では、物理量をψとすると、下式(14)という関係が成り立つ。
なお、式(14)において、ni(i=1,2,3)は、表面S上の単位法線ベクトル[n]のi方向の成分である。連続体モデルの方程式の1次微分項は、体積分から面積分の変換により、境界面上ではスカラー量またはベクトル量として取り扱われる。そして、これらの値は、前述の線形補間等によって、各コントロールポイント上の物理量から補間することができる。
また、後述するが、連続体モデルの方程式によっては、2階の偏導関数が含まれる場合もある。
式(14)の被積分関数をさらに1階微分した式は下式(15)となり、連続体モデルの方程式の2次微分項は、体積分から面積分の変換により境界面E上では下式(16)となる。
なお、式(15)において∂/∂nは法線方向微分を示し、式(16)において∂/∂nabは、[n]ab方向微分を示す。つまり、連続体モデルの方程式の2次微分項は、体積分から面積分の変換により、物理量ψの法線方向微分(Sabの法線[n]ab方向への微分)に、[n]の成分niab、njabを乗じた形となる。
ここで式(16)中の∂ψ/∂nabは、下式(17)と近似される。
なお、コントロールポイントaとコントロールポイントbとのコントロールポイント間ベクトル[r]abは、コントロールポイントaの位置ベクトル[r]aとコントロールポイントbの位置ベクトル[r]bから下式(18)のように定義される。
したがって、境界面Eの面積がSabであるため、式(16)は下式(19)となり、これを利用して式(16)を計算することができる。
なお、式(16)の導出にあたり、次のことがわかる。すべての線形偏微分方程式は、定数と、1次、2次、その他の偏導関数に係数を乗じた項の線形和で表わされる。式(15)から式(18)において、物理量ψをψの1次偏導関数に置き換えると、より高次の偏導関数の体積分を、式(14)のように低次の偏導関数の面積分により求めることができる。この手順を、低次の偏微分から順次繰り返すと、線形偏微分方程式を構成するすべての項の偏導関数は、コントロールポイントの物理量ψと、式(12)又は式(13)で計算される境界面上のψであるψabと、式(18)で定義されるコントロールポイント間ベクトルから求められるコントロールポイント間距離と、式(5)に示される境界面Eの面積Sab、式(16)に示される法線ベクトルの成分niabとnjabから、すべて求めることができる。
次に非線形の偏微分方程式では、例えば、式(20)に示す非線形項であるψとψの一次偏導関数とを乗算した項や、一次偏導関数の二乗は、反復計算により数値計算することができる。すなわち、それぞれの項のψ、一次偏導関数の方を反復計算における一反復前の計算値として、近似して、反復計算をすればよい。このような方法により、偏微分方程式における非線形項はすべて数値計算が可能になる。以上から、前述では特に連続体モデルの方程式について説明したが、それ以外のいかなる偏微分方程式に対しても、VertexとConnectivityとを必要としない離散化が可能であることがわかった。ただし、保存則については別の成立条件が必要である。これについては後述する。
さて、本数値解析手法において物理量計算にあたりVertexとConnectivityとを必要としないことは前述した。このため、計算用データモデルの作成(プリ処理)にあたり、コントロールボリュームの体積と、境界面の面積及び法線ベクトルとを、VertexとConnectivityと使用しないで求めれば、式(10),(11)の離散化支配方程式を用いて、コントロールボリュームの幾何学的形状(すなわちセルの幾何学的形状)を全く使用せずに、流速の計算を行うことが可能である。
ただし、本数値解析手法においては、必ずしも、コントロールボリュームの体積と、境界面の面積及び法線ベクトルとを、コントロールボリュームの具体的な幾何学的形状を使用しないで求める必要はない。すなわち、ソルバ処理においてVertexとConnectivityを利用しないので、コントロールボリュームの具体的な幾何学的形状、具体的にはVertexとConnectivityを利用するとしても、従来の有限要素法、有限体積法のような分割領域に関わる制約、すなわち分割領域の歪みや捩じれに対する制約がないため、前述のように容易に計算用データモデルの作成が可能となる。
さて、本数値解析手法においては、条件によっては、前述の法線ベクトルを、コントロールボリューム同士を結ぶ距離ベクトルに置き換えることも可能である。以下にその理由について説明する。図5において示す境界面Eの法線ベクトル[n]abが、コントロールポイントaとコントロールポイントbとを結ぶ距離ベクトル[r]abと同じ方向を向く場合には、法線ベクトル[n]は、下式(21)のように示すことができる。
したがって、境界面Eの法線ベクトル[n]abが距離ベクトル[r]abと同じ方向を向く場合には、式(10),(11)で示す離散化支配方程式に式(21)を代入することによって、法線ベクトル[n]abがコントロールポイントa,b間方向を向いている場合の離散化支配方程式が得られる。すなわち、境界面と該境界面を挟むコントロールポイントを結ぶベクトルが直交する場合には、離散化支配方程式における法線ベクトルを距離ベクトルに置き換えることができる。このような離散化支配方程式によれば、コントロールポイントの位置座標だけから、境界面Eの法線ベクトル[n]abを決定することができる。また、境界面Eと距離ベクトルとを出来るだけ直交に近づけることによって物理量を計算する際の精度が向上する。したがって、法線ベクトルを、距離ベクトルに置き換えることによって、計算精度の向上を図ることができる。さらに、法線ベクトルの任意性を、コントロールポイントを結ぶ方向に固定化することができる。
ただ、法線ベクトルの任意性がなくなることで境界面の姿勢に自由度を持たせることができなくなる場合がある。このような場合には、法線ベクトルの任意性が存在する場合と比較して、計算用データモデルを作成する際にコントロールボリュームの体積と境界面の設定に制約が生じることとなる。また、法線ベクトルを、コントロールポイントを結ぶベクトルに置き換える場合には、距離ベクトルが必要となり、該距離ベクトルを算出するためにコントロールポイントの座標が必要となるため、計算用データモデルにコントロールポイントの座標データあるいは距離ベクトルデータを持たせる必要がある。ただし、この場合でも、本数値解析手法においては、物理量計算にてVertexとConnectivityとは必要ない。
次に、本発明と粒子法との違いを明確にするために、物理量計算にあたり、物理量の保存則が満足される条件について説明する。
例えば、図6に示すように、L字形の流路を4つに分割するセルRa,Rb,Rc,Rdについて考える。なお、各セルRa,Rb,Rc,Rdの内部に配置されるコントロールポイントa,b,c,dは、セルRa,Rb,Rc,Rdの中心に設置されている。また、各境界面における流速ベクトルは、境界面に対して垂直であるものとする。
なお、図6において、VaがセルRaの体積(コントロールポイントaのコントロールボリュームの体積)、VbがセルRbの体積(コントロールポイントbのコントロールボリュームの体積)、VcがセルRcの体積(コントロールポイントcのコントロールボリュームの体積)、VdがセルRdの体積(コントロールポイントdのコントロールボリュームの体積)、ρaがセルRaにおける密度、ρbがセルRbにおける密度、ρcがセルRcにおける密度、ρdがセルRdにおける密度、SaがセルRaと外部領域との境界面の面積、ScがセルRcと外部領域との境界面の面積、SdがセルRdと外部領域との境界面の面積、SabがセルRaとセルRbとの境界面の面積、SacがセルRaとセルRcとの境界面の面積、SbdがセルRbとセルRdとの境界面の面積、ScdがセルRcとセルRdとの境界面の面積、uaがセルRaと外部領域との境界面における流速、ucがセルRcと外部領域との境界面における流速、udがセルRdと外部領域との境界面における流速、uabがセルRaとセルRbとの境界面における流速、uacがセルRaとセルRcとの境界面における流速、ubdがセルRbとセルRdとの境界面における流速、ucdがセルRcとセルRdとの境界面における流速、ρaがセルRaにおける密度、ρabがセルRaとセルRbとの境界面における密度、ρacがセルRaとセルRcとの境界面における密度、ρbdがセルRbとセルRdとの境界面における密度、を示している。
図6に示すような4つのコントロールポイントa,b,c,d(4つのセルRa,Rb,Rc,Rd)上で質量保存の式を離散化することを考える。なお、質量保存の式を離散化した離散化支配方程式は、後述の式(43)に示す。
コントロールポイントaにおける離散化支配方程式は、下式(22)に示される。
コントロールポイントbにおける離散化支配方程式は、下式(23)に示される。
コントロールポイントcにおける離散化支配方程式は、下式(24)に示される。
コントロールポイントdにおける離散化支配方程式は、下式(25)に示される。
そして、式(22)~(25)を全て足し加えると、下式(26)を得る。
各コントロールポイントa,b,c,dのコントロールボリュームの体積Va,Vb,Vc,Vdが時間について一定であることを利用して時間微分項の中にくり入れると、式(26)は、下式(27)となる。
今、各コントロールポイントa,b,c,dのコントロールボリュームが占める全体積をVabcd、平均密度ρ(オーバーライン)abcdとすると、全体積をVabcdが下式(28)で示され、平均密度ρ(オーバーライン)abcdが下式(29)で示される。
したがって式(27)は、下式(30)のように示される。
式(30)は、コントロールポイントa,b,c,dのコントロールボリュームが占める全領域に流入する質量流束と流出する質量流束の差が単位時間にコントロールポイントa,b,c,dのコントロールボリュームが占める全領域の平均密度の時間変化(質量の時間変化)に等しいことを意味する。つまり、各コントロールポイントa,b,c,dごとに離散化した質量保存の式は、全コントロールポイントのコントロールボリュームが占める領域に対しても成立する。すなわち、コントロールポイントが示すコントロールボリューム領域についての離散化支配方程式は、全てのコントロールポイントについて足し加えると、計算対象である解析領域の全領域に関する保存則を満足する方程式にならなくてはならない。
続いて、コントロールポイントの全数をNとし、式(43)に示される質量保存の式を足し加えると、下式(31)が得られる。
式(31)において、各コントロールポイント間の境界面の面積は、コントロールポイントa側から見てもコントロールポイントb側から見ても等しいとすると、各コントロールポイント間の質量流束(ρ[n]・[u])・Sは、コントロールポイントa側とコントロールポイントb側で正負が逆で絶対値が等しくなるので差し引きゼロとなりキャンセルされる。つまり、式(31)は、計算する全領域に対して、流入する質量と流出する質量との差が全領域での質量の単位時間変化に等しいことを示す。したがって、式(31)は、解析領域全体における質量保存の式となる。よって、式(31)が、計算する全領域についての質量保存則を満足するためには、2つのコントロールポイント間の境界面の面積と一致するという条件及び法線ベクトルが一方のコントロールポイント側から見た場合と他方のコントロールポイント側から見た場合とで絶対値が一致するという条件が必要である。
また、質量保存則を満足するためには、下式(32)に示される全コントロールポイントのコントロールボリュームの占める体積が解析領域の全体積と一致するという条件が必要である。
これは、連続体の密度ρが、ρ1=ρ2=・・・=ρと1つの変数で表されることを考えれば容易に理解される。
このように質量保存則を満足するためには、全コントロールポイントのコントロールボリュームの体積の総和が解析領域の体積と一致するという条件が必要である。
なお、ここでは、質量保存の式に対して説明を行ったが、保存則は、連続体の運動量やエネルギに対しても成立しなければならない。これらの物理量に対しても、後述の式(50)、(55)において全コントロールポイントに対して足し加えることによって、保存側が満足されるためには、全コントロールポイントのコントロールボリュームの占める体積が解析領域の全体積と一致するという条件と、2つのコントロールポイント間の境界面の面積が一致する条件及び法線ベクトルが一方のコントロールポイント側から見た場合と他方のコントロールポイント側から見た場合とで絶対値が一致する(正負逆符号)という条件とが必要であることが分かる。
また、保存則を満たすためには、図7に示すように、コントロールポイントaの占めるコントロールボリュームを考えた場合に、コントロールポイントaを通り、任意の向きの単位法線ベクトル[n]pを持つ無限に広い投影面Pを考えたときに下式(33)が成り立つという条件が必要である。
なお、図7及び式(33)において、Siが境界面Eiの面積、[n]iが境界面Eiの単位法線ベクトル、mがコントロールボリュームの面の総数を示す。
式(33)は、コントロールボリュームを構成する多面体が、閉包空間を構成することを示す。この式(33)は、コントロールボリュームを構成する多面体の一部が凹んでいる場合であっても成立する。
なお、図8に示すように、2次元における三角形についても式(33)が成り立つ。また、多面体の1つの面を微小面dSとし、mを∞とする極限を取ると、下式(34)となり、図9に示すような閉包曲面体についても成り立つことが分かる。
式(33)が成り立つという条件は、ガウスの発散定理や、式(14)に示す一般化されたグリーンの定理が成り立つために必要な条件である。
そして、一般化されたグリーンの定理は、連続体の離散化のための基本となる定理である。したがって、グリーンの定理にしたがって体積分を面積分に変化し離散化させる場合において、保存則を満足させるためには式(33)が成り立つという条件は必須となる。
このように、前述の計算用データモデル及び物理量計算を用いて数値解析を行う際に、物理量の保存則が満足されるためには、以下の3つの条件が必要となる。
(a)全コントロールポイントのコントロールボリュームの体積(全分割領域の体積)の総和が解析領域の体積と一致する。
(b)2つのコントロールポイント間の境界面の面積が一致する及び法線ベクトルが一方のコントロールポイント側(境界面を挟む一方の分割領域)から見た場合と他方のコントロールポイント側(境界面を挟む他方の分割領域)から見た場合とで絶対値が一致する。
(c)コントロールポイントを通り(分割領域を通り)、任意の向きの単位法線ベクトル[n]pを持つ無限に広い投影面Pを考えたときに式(33)が成り立つ。
つまり、保存則を満足させる場合には、これらの条件を満足するように計算用データモデルを作成する必要がある。ただし、前述のように本数値解析手法においては、計算用データモデルの作成にあたり、セル形状を任意に変形することができることから、容易に上記3つの条件を満足するように計算用データモデルを作成することができる。
次に、従来の粒子法であるMPS(Moving Particle Semi-Implicit)法が保存則を満足できない理由、計算負荷が増大する理由、及び本数値解析手法の粒子法に対する優位性について詳説する。
MPS法は、適切に設定された半径reの球内に存在する粒子を検出し、それらと結合関係を結んで計算する手法であり、例えば図10に示すように、粒子i周りに複数の粒子jが存在する場合に、粒子iにおけるラプラシアン(∇2ψ)iは、下式(35)のように近似される。
なお、図10において、ψiが粒子iにおける物理量を示し、ψjが粒子jにおける物理量を示し、[r]ijが粒子iから粒子jへの距離ベクトルを示している。
また、式(35)におけるdは次元数を示す定数であり、3次元である場合には3となる。また式(35)におけるω(r)は重み関数であり、下式(36)のように示される。また、式(35)におけるmは、結合関係にある粒子の数を示す。
一方、図11に示すように、粒子i,jをコントロールポイントとして捉え、粒子iのコントロールボリュームがVi、粒子iと粒子jとの間の境界面の面積がSij、粒子iと粒子jとの間の境界面の法線ベクトルが[n]ij、粒子iから粒子jへの距離ベクトルが[r]ijである場合には、粒子iにおけるラプラシアン(∇2ψ)iは、下式(37)のように近似される。
そして、式(36)と式(37)とを比較すると、仮に[r]ijと[n]ijが同じ向きであるとした場合には、下式(38),(39)が得られる。
式(39)は、左辺と右辺の次元が(1/距離)で一致している。したがって、右辺のMPS法定式化は、2つの粒子i,j間の距離のみから、下式(40)に示す(面積/体積)という量(すなわち式(9)で定義された比率)を算出する手法と解釈出来る。
しかし、m個の粒子の結合関係のみから、境界面の面積Sijと体積Viを求めるには、関係式が不足しており、具体的な数値は決定できず、あくまでも、式(40)の比率のみが決定される。このため、仮に、MPS法の離散化支配方程式から、境界面の面積Sijと体積Viを求めたとしても、前述した保存則が満足される条件(a)~(c)を満足する保証は全くない。このことは、MPS法が、保存則の満足性という点で大きな問題を有していることを示している。
数値解析を工学上の問題、特に機械設計問題やプラント設計問題に適用した場合において、定量値(圧力、温度、熱量等)の評価は極めて重要であるが、数値解析が保存則を満足しない場合には、定量性が保証されなくなる。つまり、MPS法では、質量保存、運動量保存、エネルギ保存という保存則が満足される保証がなく、定量性が保証されない。これに対して、本数値解析手法によれば、保存則を満足させることができ、定量性を保証することができる。
なお、MPS法は、前述のように、時刻の変化に伴って粒子が移動するため、例えば、その都度、前述の半径reの球内に存在する粒子を検出する近傍探索処理を行う必要があり、物理量計算における計算負荷が大きくなる。これに対して、本数値解析手法においてコントロールボリューム及びコントロールポイントは、時刻が変化した場合であっても移動しない。このため、予めコントロールボリュームやコントロールポイントの配置関係が分かっている場合は近傍探索処理を行うことなく物理量計算を行うことができる。このため、物理量計算における計算負荷をMPS法と比較して小さくすることができる。なお、コントロールボリューム及びコントロールポイントの配置関係が予め分かっていない場合であっても、最初に一度のみ、コントロールボリュームやコントロールポイントの配置関係を定める処理を行えば良い。
なお、前述の説明においては、ナビエ・ストークスの式及び連続の式から重み付き残差積分法に基づいて導出した離散化支配方程式を用いる物理量の計算例について説明したが、本数値解析手法において用いられる離散化支配方程式はこれに限られるものではない。つまり、種々の方程式(質量保存の方程式、運動量保存の方程式、エネルギ保存の方程式、移流拡散方程式、及び波動方程式等)から重み付き残差積分法に基づいて導出されると共に、VertexとConnectivityとを必要としない量のみを使用して物理量を算出可能な離散化支配方程式であれば本数値解析手法に用いることができる。
そして、このような離散化支配方程式の特性によって、従来の有限要素法や有限体積法のようにいわゆるメッシュを必要としない、メッシュレスでの計算が可能となる。また、たとえ、プリ処理において、セルの幾何学的形状を規定するVertexとConnectivityとを利用するとしても、従来の有限要素法、有限体積法、ボクセル法のようなメッシュに対する制約がないため、計算用データモデルの作成に伴う作業負荷を低減できる。
以下に、質量保存の方程式、運動量保存の方程式、エネルギ保存の方程式、移流拡散方程式、及び波動方程式から、重み付き残差積分法に基づいて、VertexとConnectivityとを必要としない量のみを使用する離散化支配方程式が導出可能であること、すなわち本数値解析手法において他の支配方程式を用いることができることについて説明する。
(1)質量保存の方程式
オイラー座標系における質量保存の方程式は、下式(41)のように微分形式で示される。
なお、式(41)においてtが時間、xi(i=1,2,3)がカーテシアン系における座標、ρが密度、ui(i=1,2,3)が変形速度の成分、添字i(i=1,2,3)がカーテシアン座標系における各方向成分を示している。また、添字iに関しては総和規約に従うものとする。
そして、式(41)を、重み付き残差積分法に基づいて、コントロールポイントのコントロールボリュームの体積Vに対して積分すると下式(42)と示される。
さらに、図5に示すコントロールポイントaについて離散化し、代数方程式に変換すると、下式(43)のように示される。
ここで、添字abが付く、ρab、[n]abは、コントロールポイントaとコントロールポイントbとの間の境界面E上における物理量であることを示す。また、mは、コントロールポイントaと結合関係(境界面を挟む関係)にある全てのコントロールポイントの数である。
そして、式(43)をコントロールポイントaのコントロールボリュームの体積であるVaで割ると、下式(44)が得られ、さらに下式(45)とすると、質量保存の方程式が離散化された下式(46)を得る。
このような式(46)は、重み付き残差積分法に基づいて導出されると共に、VertexとConnectivityとを必要としない量のみを使用する方程式であるため、本数値解析手法の離散化支配方程式として用いることができる。
なお、本数値解析手法で用いられる離散化支配方程式は、従来の幾何学的形状を示す量を使用する方程式を重み付き残差積分法に基づいて導出する過程で敢えて途中にて留めることによって得られることは前述した。つまり式(46)は、質量保存の方程式を、重み付き残差積分法に基づいて、Vertex等を使用する方程式を導出する過程で得られるものである。ここで、図12は、2次元三角形状のセルを示す模式図である。図12における三角形aの面積、辺の長さ、法線ベクトルを下表に示す。なお、下表において記号×は、外積を示している。
図12に示すように、セルが2次元三角形状である場合において、質量保存の方程式を、重み付き残差積分法に基づいて、Vertex等を使用する離散化支配方程式とすると、下式(47)となる。
ただし、式(47)において、[r]iが頂点(Vertex)iの位置ベクトル(座標)であり、記号×がベクトルの外積を示している。また、ρab及びρを一定とし、[r]ijを[r]j-[r]iとし、[r]4を[r]1とする。
(2)運動量保存の方程式
オイラー座標系における運動量保存の方程式は、下式(48)のように微分形式で示される。
なお、式(48)においてσij(i,j=1,2,3)が連続体内部応力、fi(i=1,2,3)が連続体に作用する外力(例えば重力)を示し、他の量は式(41)と同様である。また、添字jに関しては総和規約に従うものとする。
この式(47)は、構造体や材料、流体等の応力場の基礎方程式である。
そして、式(47)を、重み付き残差積分法に基づいて、コントロールポイントのコントロールボリュームの体積Vに対して積分すると下式(49)と示される。
さらに、図5に示すコントロールポイントaについて離散化し、代数方程式に変換すると、下式(50)のように示される。
式(50)をコントロールポイントaのコントロールボリュームの体積であるVaで割り、さらに式(45)を導入すると、運動量保存の方程式が離散化された下式(51)が得られる。
なお、運動量保存の方程式において応力テンソルの対称性を考慮すると、角運動量保存の方程式も、運動量保存の方程式と同様に離散化できる。
(3)移流拡散方程式
ある物質Cの連続体内への移流拡散現象は、下式(52)の移流拡散方程式で示される。
なお、式(52)において、Cが物質Cの濃度、μCが物質Cの拡散係数、qCが物質Cのソース(シンク)項、ρが連続体の密度、uiが連続体の変形速度を示す。
そして、式(52)を、重み付き残差積分法に基づいて積分し、さらに離散化して離散化支配方程式に変換すると、下式(53)を得る。
なお、Ca等の添字aが付く量がコントロールポイントaの物理量であり、Cab等の添字abが付く量がコントロールポイントaとコントロールポイントbとの間の境界面における物理量である。
(4)エネルギ保存の方程式
エネルギ保存則は、熱エネルギ保存と運動エネルギ保存に分けられるが、運動エネルギの保存は前述の運度量保存に含まれるため、ここでは熱エネルギ保存の方程式の一般形を下式(54)に示す。
なお、式(54)において、Uが連続体の内部エネルギ、qiが熱流束ベクトル、rが熱源,熱エネルギのソース(シンク)項、σijが応力テンソル、Dijが変形速度テンソルを示す。なお、σij・Dijのテンソル2重積の項は、応力仕事率と呼ばれる。また、添字i,jについては、総和規約を適用する。
そして、式(54)を、重み付き残差積分法に基づいて積分し、さらに離散化して離散化支配方程式に変換すると、下式(55)を得る。
そして、熱流束ベクトル[q]に、熱流束に加えて電気的または化学的エネルギ等の全ての非力学的エネルギの流束を加えると、エネルギ保存の方程式は、非常に広い範囲のエネルギの保存を示す方程式となる。
(5)波動方程式
前述の質量保存の方程式、運動量保存の方程式、エネルギ保存の方程式、移流拡散方程式等の保存形で表される物理法則の方程式は、「放物型」と「楕円型」と呼ばれる偏微分方程式の性質を合わせ持った方程式である。これに対して、波の伝わりや振動の伝わりを表す波動方程式は「双曲型」と呼ばれ、一般形として下式(56)と示される。
なお、式(56)において、uが振幅,変位、αが波の伝播速度を示している。
そいして、式(56)を、重み付き残差積分法に基づいて積分し、さらに離散化して離散化支配方程式に変換すると、下式(57)が得られる。
式(56)から、空間方向にはコントロールボリュームの幾何学的形状を必要としない離散化手法がそのまま適用できることが分かる。ただし、時間方向には2階の導関数であるので、高精度な時間積分法が用いられる。
以上のような式(46),(51),(53),(55),(57)は、重み付き残差積分法に基づいて導出されると共に、VertexとConnectivityとを必要としない量のみを使用して物理量を算出可能な方程式であるため、本数値解析手法の離散化支配方程式として用いることができる。そして、本数値解析手法は、上記離散化支配方程式を用いることによって、定常及び非定常の、流体力学、熱伝導、移流拡散、構造力学、波動、及びこれらの物理現象が連成した現象における数値解析に適用することができる。
次に、本数値解析手法を用いる場合には、異なる座標系で設計された部品を容易に組み上げた状態で数値解析を行うことができる。これは、本数値解析手法においては、有限要素法で用いられる要素と異なり、コントロールボリュームの具体的な幾何学的形状を必要とせず、また2つの隣接するコントロールポイント間の「距離」は、絶対座標系における距離である必要はなく、「計算上の距離」であれば良いためである。
したがって、本数値解析手法によれば、図13に示すように、異なる座標系で設計された部品A,B,Cを組み上げた状態で数値解析したい場合において、各部品の座標系を一致させることなく数値解析を行うことができる。
なお、一般的な有限要素法と呼ばれる数値解析手法は、図14や図15に示すような要素の交差を全く許さない手法である。このため、有限要素法において用いられるアプリケーションソフトにて要素の交差が検出されるとエラー出力がなされる。そして、このようなことから、有限要素において計算用データモデルの作成に非常に大きな作業負担がかかることは前述の通りである。
一方、本数値解析手法によれば、図14や図15に示すように、コントロールポイント間の結合に交差を許すことが可能である。これは、各コントロールポイントが占めるコントロールボリュームの体積(分割領域の体積)、境界面の面積、及び境界面の法線ベクトルという情報量は、具体的な幾何学的形状を有している必要がない。したがって、コントロールポイント間の結合が交差する場合であっても物理量計算を実行することが可能である。
したがって、計算用データモデルを作成する際の制約が減り、計算用データモデルの作成の自由度が大幅に拡大する。ただし、流体などにおける物理現象を考えた場合には、1つのコントロールポイントに近接するコントロールポイントからの情報によって、そのコントロールポイントの物理用がアップデートされるという性質を有しているため、遠方のコントロールポイントと結合させると計算精度が悪化する虞がある。このため、本数値解析手法においても適切な範囲においてコントロールポイント間結合を形成することが好ましい。
本発明は、数値解析を行う対象物体を複数の多角形で表現したパッチデータが記憶されたパッチデータ記憶手段と、前記数値解析を行うのに必要なパラメータを記憶するパラメータ記憶手段と、前記対象物体を含む解析領域内を複数の直方体に分割したボクセルデータを記憶するボクセルデータ記憶手段と、前記パラメータ記憶手段に記憶されている前記パラメータに基づき、前記ボクセルデータを定義し、各ボクセルに対して、ボクセル属性を付与して、前記ボクセルデータ記憶手段に記憶するボクセルデータ生成手段と、前記解析領域内の領域分割を行うための初期点データを記憶する初期点データ記憶手段と、前記ボクセルの中心点を使用して、前記ボクセルの数より少ない前記初期点データを生成して、前記初期点データ記憶手段に記憶する初期点データ生成手段と、前記対象物体を複数の分割領域に分割した分割領域データを記憶する分割領域データ記憶手段と、前記ボクセルデータ記憶手段に記憶されている各ボクセルの属性と、前記初期点データ記憶手段に記憶されている前記初期点データとに基づき、前記対象物体内を、複数の前記ボクセルで構成する分割領域を定義し、定義した前記分割領域データを前記分割領域データ記憶手段に記憶する分割領域データ生成手段と、前記数値解析を行うための計算用データを記憶する計算用データ記憶手段と、前記分割領域データ記憶手段に記憶されている前記分割領域データに基づき、各分割領域の境界面データを生成し、該境界面データを前記計算用データとして前記計算用データ記憶手段に記憶する計算用データ生成手段とを備えることを特徴とする。
本発明においては、前記分割領域データ生成手段は、前記初期点データ記憶手段に記憶されている前記初期点データの中から、各ボクセルの中心点に最も距離が近い初期点を選択して、各ボクセルが属する分割領域を特定することにより前記分割領域を生成することを特徴とする。
本発明においては、前記分割領域データ生成手段は、所定の軸に垂直な前記ボクセルの境界面で構成するスライス面と、前記初期点のそれぞれを中心とする球体の交差する断面を定義し、該断面から前記初期点からの距離に応じて高さの異なるポテンシャル立体を定義し、該ポテンシャル立体を3次元の隠面処理を行って描画した画像データに基づいて、前記スライス面上の分割領域を定義する処理を、前記解析領域内の全ての前記スライス面に対して行うことにより前記分割領域を生成することを特徴とする。
本発明においては、前記初期点データ生成手段は、前記パッチデータ記憶手段に記憶されている前記パッチデータと、前記ボクセルデータ記憶手段に記憶されている前記ボクセルデータとから、前記対象物体内部に位置する前記ボクセルの内側ボクセルを選択し、前記内側ボクセルのうち、隣接するボクセルが存在しない内側ボクセルに内接する球を定義し、前記球上に球上点を定義するともに、前記対象物体の壁上に壁上点を定義し、対となる前記球上点と前記壁上点との間に分割点を定義し、該分割点と前記ボクセルの中心点とを前記初期点とすることを特徴とする。
本発明は、数値解析を行う対象物体を複数の多角形で表現したパッチデータが記憶されたパッチデータ記憶手段と、前記数値解析を行うのに必要なパラメータを記憶するパラメータ記憶手段と、前記対象物体を含む解析領域内を複数の直方体に分割したボクセルデータを記憶するボクセルデータ記憶手段と、前記解析領域内の領域分割を行うための初期点データを記憶する初期点データ記憶手段と、前記対象物体を複数の分割領域に分割した分割領域データを記憶する分割領域データ記憶手段と、前記数値解析を行うための計算用データを記憶する計算用データ記憶手段とを備える計算用データ生成装置における計算用データ生成方法であって、前記パラメータ記憶手段に記憶されている前記パラメータに基づき、前記ボクセルデータを定義し、各ボクセルに対して、ボクセル属性を付与して、前記ボクセルデータ記憶手段に記憶するボクセルデータ生成ステップと、前記ボクセルの中心点を使用して、前記ボクセルの数より少ない前記初期点データを生成して、前記初期点データ記憶手段に記憶する初期点データ生成ステップと、前記ボクセルデータ記憶手段に記憶されている各ボクセルの属性と、前記初期点データ記憶手段に記憶されている前記初期点データとに基づき、前記対象物体内を、複数の前記ボクセルで構成する分割領域を定義し、定義した前記分割領域データを前記分割領域データ記憶手段に記憶する分割領域データ生成ステップと、前記分割領域データ記憶手段に記憶されている前記分割領域データに基づき、各分割領域の境界面データを生成し、該境界面データを前記計算用データとして前記計算用データ記憶手段に記憶する計算用データ生成ステップとを有することを特徴とする。
本発明においては、前記分割領域データ生成ステップは、前記初期点データ記憶手段に記憶されている前記初期点データの中から、各ボクセルの中心点に最も距離が近い初期点を選択して、各ボクセルが属する分割領域を特定することにより前記分割領域を生成することを特徴とする。
本発明においては、前記分割領域データ生成ステップは、所定の軸に垂直な前記ボクセルの境界面で構成するスライス面と、前記初期点のそれぞれを中心とする球体の交差する断面を定義し、該断面から前記初期点からの距離に応じて高さの異なるポテンシャル立体を定義し、該ポテンシャル立体を3次元の隠面処理を行って描画した画像データに基づいて、前記スライス面上の分割領域を定義する処理を、前記解析領域内の全ての前記スライス面に対して行うことにより前記分割領域を生成することを特徴とする。
本発明においては、前記初期点データ生成ステップは、前記パッチデータ記憶手段に記憶されている前記パッチデータと、前記ボクセルデータ記憶手段に記憶されている前記ボクセルデータとから、前記対象物体内部に位置する前記ボクセルの内側ボクセルを選択し、前記内側ボクセルのうち、隣接するボクセルが存在しない内側ボクセルに内接する球を定義し、前記球上に球上点を定義するともに、前記対象物体の壁上に壁上点を定義し、対となる前記球上点と前記壁上点との間に分割点を定義し、該分割点と前記ボクセルの中心点とを前記初期点とすることを特徴とする。
本発明は、数値解析を行う対象物体を複数の多角形で表現したパッチデータが記憶されたパッチデータ記憶手段と、前記数値解析を行うのに必要なパラメータを記憶するパラメータ記憶手段と、前記対象物体を含む解析領域内を複数の直方体に分割したボクセルデータを記憶するボクセルデータ記憶手段と、前記解析領域内の領域分割を行うための初期点データを記憶する初期点データ記憶手段と、前記対象物体を複数の分割領域に分割した分割領域データを記憶する分割領域データ記憶手段と、前記数値解析を行うための計算用データを記憶する計算用データ記憶手段とを備える計算用データ生成装置上のコンピュータに計算用データ生成を行わせる計算用データ生成プログラムであって、前記パラメータ記憶手段に記憶されている前記パラメータに基づき、前記ボクセルデータを定義し、各ボクセルに対して、ボクセル属性を付与して、前記ボクセルデータ記憶手段に記憶するボクセルデータ生成ステップと、前記ボクセルの中心点を使用して、前記ボクセルの数より少ない前記初期点データを生成して、前記初期点データ記憶手段に記憶する初期点データ生成ステップと、前記ボクセルデータ記憶手段に記憶されている各ボクセルの属性と、前記初期点データ記憶手段に記憶されている前記初期点データとに基づき、前記対象物体内を、複数の前記ボクセルで構成する分割領域を定義し、定義した前記分割領域データを前記分割領域データ記憶手段に記憶する分割領域データ生成ステップと、前記分割領域データ記憶手段に記憶されている前記分割領域データに基づき、各分割領域の境界面データを生成し、該境界面データを前記計算用データとして前記計算用データ記憶手段に記憶する計算用データ生成ステップとを前記コンピュータに行わせることを特徴とする。
本発明においては、前記分割領域データ生成ステップは、前記初期点データ記憶手段に記憶されている前記初期点データの中から、各ボクセルの中心点に最も距離が近い初期点を選択して、各ボクセルが属する分割領域を特定することにより前記分割領域を生成することを特徴とする。
本発明においては、前記分割領域データ生成ステップは、所定の軸に垂直な前記ボクセルの境界面で構成するスライス面と、前記初期点のそれぞれを中心とする球体の交差する断面を定義し、該断面から前記初期点からの距離に応じて高さの異なるポテンシャル立体を定義し、該ポテンシャル立体を3次元の隠面処理を行って描画した画像データに基づいて、前記スライス面上の分割領域を定義する処理を、前記解析領域内の全ての前記スライス面に対して行うことにより前記分割領域を生成することを特徴とする。
本発明においては、前記初期点データ生成ステップは、前記パッチデータ記憶手段に記憶されている前記パッチデータと、前記ボクセルデータ記憶手段に記憶されている前記ボクセルデータとから、前記対象物体内部に位置する前記ボクセルの内側ボクセルを選択し、前記内側ボクセルのうち、隣接するボクセルが存在しない内側ボクセルに内接する球を定義し、前記球上に球上点を定義するともに、前記対象物体の壁上に壁上点を定義し、対となる前記球上点と前記壁上点との間に分割点を定義し、該分割点と前記ボクセルの中心点とを前記初期点とすることを特徴とする。
本発明によれば、従来の数値解析手法である有限要素法、有限体積法、ボクセル法、ボクセル法の改良手法、及び粒子法の問題点を解決し、解析精度の悪化を伴わずにソルバ処理における計算負荷の低減を図ることができる数値解析装置に入力する計算用データ作成の作業負担を軽減することができるという効果が得られる。
始めに、従来の数値解析手法である有限要素法、有限体積法、ボクセル法、ボクセル法の改良手法、及び粒子法の問題点を解決し、解析精度の悪化を伴わずにソルバ処理における計算負荷の低減を図ることができる数値解析装置について、図面を参照して説明する。ここでは、本発明による計算用データ生成装置が生成した計算用データを入力して数値解析装置について説明する。また、以下の説明においては、車両の室内空間における空気の流速を数値解析によって求める場合について説明する。
図16は、数値解析装置Aのハードウェア構成を概略的に示すブロック図である。この図に示すように、数値解析装置Aは、パーソナルコンピュータやワークステーション等のコンピュータによって構成されるものであり、CPU1、記憶装置2、DVD(Digital Versatile Disc)ドライブ3、入力装置4、出力装置5、及び通信装置6を備えている。
CPU1は、記憶装置2、DVDドライブ3、入力装置4、出力装置5、及び通信装置6と電気的に接続されており、これらの各種装置から入力される信号を処理すると共に、処理結果を出力するものである。
記憶装置2は、メモリ等の内部記憶装置及びハードディスクドライブ等の外部記憶装置によって構成されており、CPU1から入力される情報を記憶すると共にCPU1から入力される指令に基づいて記憶した情報を出力するものである。
そして、記憶装置2は、プログラム記憶部2aとデータ記憶部2bとを備えている。
プログラム記憶部2aは、数値解析プログラムPを記憶している。この数値解析プログラムPは、所定のOSにおいて実行されるアプリケーションプログラムであり、コンピュータから構成される数値解析装置Aを、数値解析を行うように機能させるものである。そして、数値解析プログラムPは、数値解析装置Aを、例えば計算用データモデル作成手段と物理量計算手段として機能させるものである。そして、図16に示すように、数値解析プログラムPは、プリ処理プログラムP1と、ソルバ処理プログラムP2と、ポスト処理プログラムP3とを有している。
プリ処理プログラムP1は、ソルバ処理を実行するための前処理(プリ処理)を数値解析装置Aに実行させるものであり、数値解析装置Aを計算用データモデル作成手段として機能させることによって計算用データモデルを作成させる。また、プリ処理プログラムP1は、数値解析装置Aに、ソルバ処理を実行するにあたり必要となる条件の設定を実行させ、さらには上記計算用データモデルや設定された条件を纏めたソルバ入力データファイルFの作成を実行させる。
そして、プリ処理プログラムP1は、数値解析装置Aを計算用データモデル作成手段として機能させる場合に、まず数値解析装置Aに対して、解析空間を含む3次元形状データを取得させ、この取得させた3次元形状データに含まれる解析空間を示す解析領域の作成を実行させる。
その後、プリ処理プログラムP1は、数値解析装置Aに対して、解析領域全体を有限個の領域に分割した分割領域を形成する。なお、後に詳説するが、ソルバ処理において、数値解析手法にて説明した離散化支配方程式(VertexとConnectivityとを必要としない量のみを使用すると共に重み付き残差積分法に基づいて導出された離散化支配方程式)を用いる。このため、計算用データモデルの作成にあたり、保存則を満たす条件の下、分割領域の形状を任意に選択することができる。
また、プリ処理プログラムP1は、数値解析装置Aを計算用データモデル作成手段として機能させる場合に、数値解析装置Aに対して、作成させた室内空間を示す解析領域に含まれる分割領域の各々の内部に対して1つのコントロールポイントを仮想的に配置する処理を実行させ、コントロールポイントの配置情報、及び各コントロールポイントが占めるコントロールボリュームの体積データを記憶させる。
また、プリ処理プログラムP1は、数値解析装置Aを計算用データモデル作成手段として機能させる場合に、数値解析装置Aに対して、上記分割領域同士の境界面である境界面の面積及び法線ベクトルの算出を実行させ、これらの境界面の面積及び法線ベクトルを記憶させる。
また、プリ処理プログラムP1は、数値解析装置Aを計算用データモデル作成手段として機能させる場合に、コントロールボリューム(コントロールポイント)の結合情報(Link)を作成させ、このLinkを記憶させる。
そして、プリ処理プログラムP1は、数値解析装置Aに対して、上記各コントロールポイントが占めるコントロールボリュームの体積と、境界面の面積及び法線ベクトルと、コントロールポイント(すなわち分割領域)の配置情報(座標)と、Linkとを纏めさせて計算用データモデルを作成させる。
また、プリ処理プログラムP1は、数値解析装置Aに、前述のソルバ処理を実行するにあたり必要となる条件の設定を行わせる場合には、物性値の設定、境界条件の設定、初期条件の設定、計算条件の設定を行わせる。ここで、物性値とは、室内空間における空気の密度、粘性係数等である。境界条件とは、コントロールポイント間の物理量の交換の法則を規定するものであり、前述した式(10)で示されるナビエ・ストークスの式に基づく離散化支配方程式、及び式(11)で示される連続の式に基づく離散化支配方程式である。また、境界条件には、室内空間と外部空間との境界面に臨む分割領域を示す情報が含まれる。初期条件とは、ソルバ処理を実行する際の最初の物理量を示すものであり、各分割領域の流速の初期値である。計算条件とは、ソルバ処理における計算の条件であり、例えば反復回数や収束基準である。
また、プリ処理プログラムP1は、数値解析装置Aに、GUI(Graphical User Interface)を形成させる。より詳細には、プリ処理プログラムP1は、出力装置5が備えるディスプレイ5aに対してグラフィックを表示させると共に、入力装置4が備えるキーボード4aやマウス4bによって操作が可能な状態とさせる。
ソルバ処理プログラムP2(物理量計算プログラム)は、数値解析装置Aにソルバ処理を実行させるものであり、数値解析装置Aを物理量計算装置として機能させる。
そして、ソルバ処理プログラムP2は、数値解析装置Aを物理量計算手段として機能させる場合に、計算用データモデルが有するコントロールボリュームの体積と境界面の面積及び法線ベクトルとを含むソルバ入力データファイルFを用いて、解析領域における物理量を物理量計算させる。
そして、ソルバ処理プログラムP2は、数値解析装置Aを物理量計算手段として機能させる場合に、数値解析装置Aに対して、ソルバ入力データファイルFに含まれるナビエ・ストークスの式及び連続の式の離散化係数行列の作成を実行させると共に、マトリックス形成用のデータテーブルの作成を実行させる。
また、ソルバ処理プログラムP2は、数値解析装置Aを物理量計算手段として機能させる場合に、数値解析装置Aに対して、前述した式(10)で示されるナビエ・ストークスの式に基づく離散化支配方程式、及び前述した式(11)で示される連続の式に基づく離散化支配方程式から、下式(58)で示すマトリックス計算用の大規模粗行列方程式の組み上げを実行させる。
なお、式(58)において[A]が大規模粗行列を示し、[B]が境界条件ベクトルを示し、[X]が流速の解を示す。
また、ソルバ処理プログラムP2は、上記離散化支配方程式に非圧縮性等の付帯条件が存在する場合には、数値解析装置Aに対して、この付帯条件の行列方程式への組み上げを実行させる。そして、ソルバ処理プログラムP2は、数値解析装置Aに対して、CG法(共役勾配法)等による行列方程式の解の計算、当該解の下式(59)を用いた解のアップデート、収束条件の判定を実行させ、最終的な計算結果を取得させる。
ポスト処理プログラムP3は、数値解析装置Aにポスト処理を実行させるものであり、数値解析装置Aに対して、ソルバ処理において取得された計算結果に基づく処理を実行させる。より詳細には、ポスト処理プログラムP3は、数値解析装置Aに対して、計算結果の可視化処理、抽出処理を実行させる。ここで、可視化処理とは、例えば、断面コンタ表示、ベクトル表示、等値面表示、アニメーション表示を出力装置5に出力させる処理である。また、抽出処理とは、作業者が指定する領域の定量値を抽出して数値やグラフとして出力装置5に出力させる、あるいは作業者が指定する領域の定量値を抽出してファイル化したものの出力を実行させる処理である。また、ポスト処理プログラムP3は、数値解析装置Aに対して、自動レポート作成、計算残差の表示及び分析を実行させる。
データ記憶部2bは、図16に示すように、計算用データモデルM、境界条件を示す境界条件データD1、計算条件を示す計算条件データD2、物性値を示す物性値データD3、及び初期条件を示す初期条件データD4を有するソルバ入力データファイルFと、3次元形状データD5と、計算結果データD6等を記憶するものである。また、データ記憶部2bは、CPU1の処理過程において生成される中間データを一時的に記憶する。
DVDドライブ3は、DVDメディアXを取り込み可能に構成されており、CPU1から入力される指令に基づいて、DVDメディアXに記憶されるデータを出力するものである。そして、DVDメディアXに数値解析プログラムPが記憶されており、DVDドライブ3は、CPU1から入力される指令に基づいて、DVDメディアXに記憶される数値解析プログラムPを出力する。
入力装置4は、数値解析装置Aと作業者とのマンマシンインターフェイスであり、ポインティングデバイスであるキーボード4aやマウス4bを備えている。出力装置5は、CPU1から入力される信号を可視化して出力するものであり、ディスプレイ5a及びプリンタ5bを備えている。通信装置6は、数値解析装置AとCAD装置C等の外部装置との間においてデータの受け渡しを行うものであり、社内LAN(Local Area Network)等のネットワークBに対して電気的に接続されている。
次に、このように構成された数値解析装置Aを用いた数値解析方法(数値解析方法)について、図17~図19のフローチャートを参照して説明する。
図17のフローチャートに示すように、数値解析方法は、プリ処理(ステップS1)と、ソルバ処理(ステップS2)と、ポスト処理(ステップS3)とから構成されている。
なお、数値解析方法を行うより前に、CPU1は、DVDドライブ3に取り込まれたDVDメディアXに記憶された数値解析プログラムPをDVDメディアXから取り出し、記憶装置2のプログラム記憶部2aに記憶させる。そして、CPU1は、入力装置4から数値解析の開始を指示する信号が入力されると、記憶装置2に記憶された数値解析プログラムPに基づいて数値解析を実行する。より詳細には、CPU1は、プログラム記憶部2aに記憶されたプリ処理プログラムP1に基づいてプリ処理(ステップS1)を実行し、プログラム記憶部2aに記憶されたソルバ処理プログラムP2に基づいてソルバ処理(ステップS2)を実行し、プログラム記憶部2aに記憶されたポスト処理プログラムP3に基づいてポスト処理(ステップS3)を実行する。なお、このようにCPU1がプリ処理プログラムP1に基づくプリ処理(ステップS1)を実行することによって、数値解析装置Aが計算用データモデル作成手段として機能される。また、CPU1がソルバ処理プログラムP2に基づくソルバ処理(ステップS2)を実行することによって、数値解析装置Aが物理量計算手段として機能される。
図18は、プリ処理(ステップS1)を示すフローチャートである。この図に示すように、プリ処理(ステップS1)が開始されると、CPU1は、通信装置6に、ネットワークBを介してCAD装置Cから車両の室内空間を含む3次元形状データD5を取得させる(ステップS1a)。CPU1は、取得した3次元形状データD5を記憶装置2のデータ記憶部2bに記憶させる。
続いて、CPU1は、計算用データモデルの作成を実行する(ステップS1d)。より詳細には、まずCPU1は、3次元形状データD5から、解析空間の全領域を含む分割領域にて分割された解析領域の作成を実行する。なお、解析領域を構成する分割領域は、前述の原理説明で詳説したように、VertexとConnectivityとを持たない計算用データモデルを作成するため、分割領域の幾何学的形状に制約を課すことなく計算用データモデル作成することができる。つまり、計算用データモデルを作成するにあたり、解析領域を構成する分割領域は、任意の形状を取ることができる。
次にCPU1は、室内空間を示す解析領域に含まれる各分割領域内に1つのコントロールポイントを仮想的に配置する。ここでは、CPU1は、分割領域の重心を算出し、各々の重心に対して1つのコントロールポイントを仮想的に配置する。そして、CPU1は、コントロールポイントの配置情報、各コントロールポイントが占めるコントロールボリュームの体積(コントロールポイントが配置される分割領域の体積)を算出し、記憶装置2のデータ記憶部2bに一時的に記憶させる。また、CPU1は、分割領域同士の境界面である境界面の面積及び法線ベクトルを算出し、これらの境界面の面積及び法線ベクトルを記憶装置2のデータ記憶部2bに一時的に記憶させる。また、CPU1は、Linkを作成し、このLinkを記憶装置2のデータ記憶部2bに一時的に記憶させる。
そして、CPU1は、データ記憶部2bに記憶された、コントロールポイントの配置情報と、各コントロールポイントが占めるコントロールボリュームの体積と、境界面の面積及び法線ベクトルと、Linkとをデータベース化することによって計算用データモデルMを作成し、作成した計算用データモデルを記憶装置2のデータ記憶部2b内に記憶させる。
なお、このようなステップS1dにおいては、室内空間を含む解析領域を同一形状の分割領域にて均等に分割し、さらに室内空間から食み出した分割領域を削除し、さらにその結果生じた解析領域と室内空間との隙間に新たな分割領域を充填することによって最終的な解析領域K2が作成される。このため、室内空間の全領域が重ならない分割領域によって充填された状態とされる。したがって、計算用データモデルは、前述した保存則を満足するための3つの条件(a)~(c)を満たすものとされている。
また、ステップS1dにおいて、先に分割領域を形成し、その後コントロールポイントを配置し、各コントロールポイントに対して、自らが配置された分割領域の体積を割り当てる構成を採用している。
しかしながら、先にコントロールポイントを解析領域に配置し、各コントロールポイントに対して後から体積を割り当てることも可能である。具体的には、例えば、異なるコントロールポイントにぶつかるまでの半径や、結合関係にある(Linkで関連付けられた)コントロールポイントまでの距離に基づいて、各コントロールポイントに対して重み付けを行う。ここでコントロールポイントiの重みをwi、基準体積をV+とし、コントロールポイントiに割り当てられる体積Viを下式(60)とする。
さらに、各コントロールポイントの体積Viの総和は、解析領域の体積Vtotalと等しいため、下式(61)が成り立つ。
この結果、基準体積V+は下式(62)で求めることができる。
したがって、各コントロールポイントに割り当てる体積は、式(61),(62)から求めることができる。このような方法を用いれば、プリ処理において、VertexとConnectivityとを用いることなく、計算用データモデルに持たせる分割領域の体積を求めることができる。
また、当該計算用データモデルの作成(ステップS1d)において、CPU1は、GUIを形成し、GUIから指令(例えば分割領域の密度を示す指令や分割領域の形状を示す指令)が入力された場合には、当該指令を反映させた処理を実行する。したがって、作業者は、GUIを操作することによって、コントロールポイントの配置や分割領域の形状を任意に調節することが可能とされている。ただし、CPU1は、数値解析プログラムに記憶された保存則を満足するための3つの条件に照らし合わせ、GUIから入力される指令が、当該条件から外れる場合には、その旨をディスプレイ5aに表示させる。
続いて、CPU1は、物性値データの設定(ステップS1e)を行う。具体的には、CPU1は、GUIを用いて、ディスプレイ5a上に物性値の入力画面を表示し、キーボード4aあるいはマウス4bから入力される物性値を示す信号を物性値データD3としてデータ記憶部2bに一時的に記憶させることで物性値の設定を行う。なお、ここで言う物性値とは、室内空間における流体(すなわち空気)の特性値であり、空気の密度、粘性係数等である。
続いて、CPU1は、境界条件データの設定(ステップS1f)を行う。具体的には、CPU1は、GUIを用いて、ディスプレイ5a上に境界条件の入力画面を表示し、キーボード4aあるいはマウス4bから入力される境界条件を示す信号を境界条件データD1としてデータ記憶部2bに一時的に記憶させることで境界条件データの設定を行う。なお、ここで言う境界条件とは、室内空間の物理現象を支配する離散化支配方程式や、室内空間と外部空間との境界面に臨むコントロールポイントの特定情報、及び室内空間と外部空間と間における熱の伝熱条件等を示す。
なお、数値解析方法においては、室内空間における流速を数値解析により求めることを目的とするものであるため、上記離散化支配方程式として、前述のナビエ・ストークスの式に基づく離散化支配方程式(10)及び連続の式に基づく離散化支配方程式(11)が用いられる。また、これらの離散化支配方程式は、例えば、数値解析プログラムPに予め記憶された複数の離散化支配方程式をディスプレイ5a上に表示された複数の離散化支配方程式から作業者がキーボード4aやマウス4bを用いることによって選択される。
続いて、CPU1は、初期条件データの設定(ステップS1g)を行う。具体的には、CPU1は、GUIを用いて、ディスプレイ5a上に初期条件の入力画面を表示し、キーボード4aあるいはマウス4bから入力される初期条件を示す信号を初期条件データD4としてデータ記憶部2bに一時的に記憶させることで初期条件データの設定を行う。なお、ここ言う初期条件とは、各コントロールポイント(各分割領域)における初期流速である。
続いて、CPU1は、計算条件データの設定(ステップS1h)を行う。具体的には、CPU1は、GUIを用いて、ディスプレイ5a上に計算条件の入力画面を表示し、キーボード4aあるいはマウス4bから入力される計算条件を示す信号を計算条件データD2としてデータ記憶部2bに一時的に記憶させることで計算条件データの設定を行う。なお、ここで言う計算条件とは、ソルバ処理(ステップS2)における計算の条件であり、例えば、反復回数や収束基準を示す。
続いて、CPU1は、ソルバ入力データファイルFの作成(ステップS1i)を行う。具体的には、CPU1は、ステップS1dにて作成された計算用データモデルMと、ステップS1eで設定された物性値データD3と、ステップS1fで設定された境界条件データD1と、ステップS1gで設定された初期条件データD4と、ステップS1hで設定された計算条件データD2とをソルバ入力データファイルFに格納することによってソルバ入力データファイルFを作成する。なお、このソルバ入力データファイルFは、データ記憶部2bに記憶される。
以上のようなプリ処理(ステップS1)が完了すると、CPU1は、ソルバ処理プログラムP2に基づいて、図19のフローチャートに示すソルバ処理(ステップS2)を実行する。図19に示すように、ソルバ処理(ステップS2)が開始されると、CPU1は、プリ処理(ステップS1)で作成されたソルバ入力データファイルFを取得する(ステップS2a)。なお、前述した数値解析方法のように、単一の装置(数値解析装置A)によってプリ処理及びソルバ処理を実行する場合には、既にデータ記憶部2bにソルバ入力データファイルFが記憶されているため、ステップS2aを省略することができる。ただし、プリ処理(ステップS1)とソルバ処理(ステップS2)とが異なる装置において実行される場合には、ネットワークやリムーバルディスクによって搬送されるソルバ入力データファイルFを取得する必要があるため、本ステップS2aを行う必要がある。
続いて、CPU1は、ソルバ入力データの整合性を判定する(ステップS2b)。なお、ソルバ入力データとは、ソルバ入力データファイルFに格納されたデータを示し、計算用データモデルM、境界条件データD1、計算条件データD2、物性値データD3及び初期条件データD4である。具体的には、CPU1は、ソルバ処理において物理量計算を実行可能なソルバ入力データがソルバ入力データファイルFに全て格納されているかを分析することによってソルバ入力データの整合性の判定を行う。
そして、CPU1は、ソルバ入力データが不整合であると判定した場合には、ディスプレイ5aにエラーを表示させ(ステップS2b)、さらには不整合である部分のデータを入力するための画面を表示させる。その後、CPU1は、GUIから入力される信号に基づいてソルバ入力データの調整を行い(ステップS2c)、再度ステップS2aを実行する。
一方、CPU1は、ステップS2bにおいてソルバ入力データの整合性があると判定した場合には、初期計算処理(ステップS2e)を実行する。具体的には、CPU1は、境界条件データD1に記憶された離散化支配方程式(すなわちナビエ・ストークスの式に基づく離散化支配方程式(10)及び連続の式に基づく離散化支配方程式(11))から離散化係数行列を作成し、さらにマトリクス計算用のデータテーブルの作成を行うことによって初期計算処理を行う。
続いて、CPU1は、大規模粗行列方程式の組み上げ(ステップS2f)を行う。具体的には、CPU1は、ナビエ・ストークスの式に基づく離散化支配方程式(10)及び連続の式に基づく離散化支配方程式(11)から、前述の式(58)で示すマトリックス計算用の大規模粗行列方程式の組み上げを行う。
続いて、CPU1は、離散化支配方程式に、非圧縮性や接触等の付帯条件が存在するかの判定を行う。この付帯条件は、例えば、境界条件データとしてソルバ入力データファイルFに格納されている。そして、CPU1は、離散化支配方程式に付帯条件が存在すると判定した場合には当該付帯条件の大規模行列方程式の組み込み(ステップS2h)を実行した後に大規模行列方程式の計算(ステップS2i)を実行する。一方、CPU1は、離散化支配方程式に付帯条件が存在しないと判定した場合には付帯条件の大規模行列方程式の組み込み(ステップS2h)を実行することなく大規模行列方程式の計算(ステップS2i)を実行する。そしてCPU1は、大規模行列方程式を例えば、CG法(共役勾配法)によって解き、前述の式(59)を用いて解のアップデート(ステップS2j)を行う。
続いて、CPU1は、式(59)の残差が収束条件に達したか否かの判定(ステップS2g)を行う。具体的には、CPU1は、式(59)の残差を計算し、計算条件データD2に含まれる収束条件と比較し、これによって式(59)の残差が収束条件に達したか否かの判定を行う。そして、残差が収束条件に達していないと判定した場合には、CPU1は、物性値のアップデートを行った後、再度ステップS2gを実行する。つまり、CPU1は、式(59)の残差が収束条件に達するまで、物性値のアップデートを行いながらステップS2f~S2gを繰り返し行う。
一方、残差が収束条件に達したと判定した場合には、CPU1は、計算結果の取得を行う(ステップS2l)。具体的には、CPU1は、直前のステップS2iにおいて計算された物理量の解を計算結果データとしてデータ記憶部2bに記憶させることによって計算結果の取得を行う。このようなソルバ処理(ステップS2)によって、室内空間における空気の流速が求められる。
以上のようなソルバ処理(ステップS2)が完了すると、CPU1は、ポスト処理プログラムP3に基づいてポスト処理(ステップS3)を実行する。具体的には、例えばCPU1は、GUIから入力される指令に基づいて、計算結果データから、例えば断面コンタデータ、ベクトルデータ、等値面データ、アニメーションデータを生成し、当該データを、出力装置5に可視化させる。
また、CPU1は、GUIから入力される指令に基づいて、室内空間の一部における定量値(計算結果)を抽出して数値やグラフとし、この数値やグラフを出力装置5に可視化させ、さらには数値やグラフをファイルとして纏めて出力する。また、CPU1は、GUIから入力される指令に基づいて、例えば計算結果データから自動レポート作成、計算残差の表示及び分析を行ってその結果を出力する。
以上のような数値解析装置A、数値解析方法及び数値解析プログラムによれば、プリ処理にてコントロールボリュームの体積と境界面の面積及び法線ベクトルとを有する計算用データモデルMが作成され、ソルバ処理にて計算用データモデルMに含まれるコントロールボリュームの体積と境界面の面積及び法線ベクトルとを用いて各コントロールボリュームにおける物理量が計算される。
つまり、前述の数値解析手法にて説明したように、数値解析装置A、数値解析方法及び数値解析プログラムによれば、VertexとConnectivityを有する計算用データモデルを作成することなく数値解析を行うことが可能となる。このため、3次元形状データの修正あるいは変更作業に対する規制も大幅に緩和され、VertexとConnectivityを有する計算用データモデルと比較して計算用データモデルMを遥かに容易に作成することが可能となる。したがって、計算用データモデルMの作成における作業負担を軽減することが可能となる。
また、数値解析装置A、数値解析方法及び数値解析プログラムにおいては、従来の数値解析手法と異なり、ソルバ処理においてVertexとConnectivityを用いてコントロールボリュームの体積及び境界面の面積及び法線ベクトルを算出する必要がない。したがって、ソルバ処理における計算負荷を低減させることが可能となる。したがって、数値解析装置A、数値解析方法及び数値解析プログラムによれば、計算用データモデルの作成における作業負担を軽減すると共に、ソルバ処理における計算負荷の低減を図ることが可能となる。
また、数値解析装置A、数値解析方法及び数値解析プログラムにおいては、解析領域に分割領域を重なることなく充填させている。このため、前述した保存側を満足するための3つの条件(a)~(c)が満たされることとなり、保存則を満足して流速を計算することができる。
なお、計算用データモデルMは、従来の有限体積法や有限要素法に用いられるメッシュデータや、従来の粒子法に用いられる粒子データ、または単なる点群データから容易に計算用データモデルを作成することができる。この場合でも、ボクセル法のような外部空間との境界領域における分割領域の修正は必要ない。例えば、メッシュデータから計算用データモデルを作成する場合には、各要素を分割領域(コントロールポイントが占めるコントロールボリューム)として捉えることによって容易に行うことができる。また、粒子データから計算用データモデルを作成する場合には、解析領域に配置されたコントロールポイントを囲う閉空間を解析領域に充填して得られる閉空間を分割領域(コントロールポイントが占めるコントロールボリューム)として捉えることによって容易に行うことができる。
また、数値解析装置A、数値解析方法及び数値解析プログラムによれば、前述のように、プリ処理における計算用データモデルの作業負担が大幅に減少し、またソルバ処理における計算負荷を低減させることが可能となる。したがって、解析領域の形状が時系列的に変化する場合、すなわち解析領域が移動境界を含む場合であっても、図20のフローチャートに示すように、解析領域が形状変化するたびにプリ処理とソルバ処理とを繰り返し行うことによって、現実的な時間内で物理量の計算が可能となる。
また、物理量計算において、境界面上における流速を算出する場合に、当該境界面を挟むコントロールポイントにおける流速を当該コントロールポイントから境界面までの距離の比率に応じて重み付け平均した値を境界面上における流速としても良い。
このような場合には、境界面における流速を、単純に当該境界面を挟むコントロールポイントの流速の平均とする場合と比較して、より正確に室内空間の流速を求めることが可能となる。ただし、このような場合には、計算用データモデルが、境界面がコントロールポイントとコントロールポイントとを結ぶ線分のどの内分点に存在するかを示す比率αをデータとして有している必要がある。このため、隣り合うコントロールボリュームの内部に配置された各コントロールポイントから当該コントロールボリュームに挟まれる境界面までの距離の比率をさらに含む計算用データモデルMをプリ処理にて作成し、この比率に基づいて境界面における流速をソルバ処理にて計算する。
なお、物理量計算において、コントロールポイント間を結ぶベクトルと当該コントロールポイントに挟まれた境界面が直交する場合には、法線ベクトルをコントロールポイント間を結ぶ距離ベクトルの単位ベクトルに置き換えて物理量計算することができる。ただし、このような場合には、計算用データモデルに上記距離ベクトルあるいは当該距離ベクトルを算出するためのコントロールポイントの位置座標を示すデータを備えさせる必要がある。このため、隣り合うコントロールボリュームの内部に配置された各コントロールポイントを結ぶ距離ベクトルあるいは該距離ベクトルを算出するためのコントロールポイントの座標をさらに含む計算用データモデルMをプリ処理にて作成し、距離ベクトルが当該コントロールポイントに挟まれた境界面と直交する場合に、距離ベクトルを境界面の法線ベクトルに置き換えて流速を計算する。
前述した説明においては、運動量保存の方程式の変形例であるナビエ・ストークスの式及び連続の式から導出した離散化支配方程式を用いて空気の流速を数値解析によって求める構成について説明した。しかしながら、これに限定されるものではなく、質量保存の方程式、運動量保存の方程式、角運動量保存の方程式、エネルギ保存の方程式、移流拡散方程式及び波動方程式の少なくともいずれかから導出した離散化支配方程式を用いて物理量を数値解析によって求めることが可能である。
また、前述した境界面特性量として、境界面の面積と境界面の法線ベクトルとを用いる構成について説明した。しかしながら、これに限定されるものではなく、境界面特性量として他の量(例えば境界面の周長)を用いることもできる。
また、保存則を満足するために前述の3つの条件を満たすように計算用データモデルを作成する構成について説明した。しかしながら、これに限定されるものではなく、保存則を満足させる必要がない場合には、計算用データモデルを必ずしも前述の3つの条件を満たすように作成する必要はない。
また、分割領域の体積を、当該分割領域の内部に配置されるコントロールポイントが占めるコントロールボリュームの体積として捉えた構成について説明した。しかしながら、これに限定されるものではなく、分割領域の内部に対してコントロールポイントを配置する必要は必ずしもない。このような場合には、コントロールポイントが占めるコントロールボリュームの体積を分割領域の体積に置き換えることによって数値解析を行うことができる。
また、数値解析プログラムPがDVDメディアXに記憶されて搬送可能な構成について説明した。しかしながら、これに限定されるものではなく、数値解析プログラムPを他のリムーバブルメディアに記憶させて搬送可能とする構成を採用することもできる。また、プリ処理プログラムP1とソルバ処理プログラムP2とを別々のリムーバブルメディアに記憶させて搬送可能とすることもできる。また、数値解析プログラムPは、ネットワークを介して伝達することも可能である。
<第1の実施形態>
次に、本発明の第1の実施形態による計算用データ生成装置を説明する。図21は同実施形態の構成を示すブロック図である。この図において、符号Dは、計算用データを生成する計算用データ生成装置であり、コンピュータ装置から構成する。計算用データ生成装置Dは、コンピュータネットワークBと接続されており、このコンピュータネットワークに接続されているCAD装置Cとの間で情報通信が可能である。符号4は、キーボードやマウスから構成する入力部である。符号5は、液晶ディスプレイ装置等から構成する出力装置である。
符号11は、入力装置4から入力されるパラメータを読み込むパラメータ入力部である。符号12は、パラメータ入力部11が入力した数値計算に必要なパラメータを記憶するパラメータ記憶部である。符号13は、コンピュータネットワークBを介して、CAD装置Cとの間で情報通信を行う通信部である。符号14は、通信部13を介して、CAD装置Cから解析対象物体の形状データを入力する形状データ入力部である。符号15は、形状データ入力部14が入力した形状データを記憶する形状データ記憶部である。
符号16は、形状データ記憶部15に記憶されている形状データを入力して、解析対象物体のパッチデータ(物体を多角形で表現したデータ)を生成するパッチデータ生成部である。符号17は、パッチデータ生成部16が生成したパッチデータを記憶するパッチデータ記憶部である。符号18は、パラメータ記憶部12に記憶されているパラメータと、パッチデータ記憶部17に記憶されているパッチデータとを入力して、解析領域を定義するボクセルデータを生成するボクセルデータ生成部である。
符号19は、ボクセルデータ生成部18が生成したボクセルデータを記憶するボクセルデータ記憶部である。符号20は、ボクセルデータ記憶部19に記憶されているボクセルデータに基づいて、初期点データを生成する初期点データ生成部である。符号21は、初期点データ生成部20において生成された初期点データを記憶する初期点データ記憶部である。符号22は、初期点データ記憶部21に記憶されている初期点を間引いて、初期点データ記憶部21に記憶されている初期点データ更新する処理を行うデータ間引き部である。
符号23は、初期点データ記憶部21に記憶されている初期点データと、ボクセルデータ記憶部19に記憶されているボクセルデータとを入力して、解析対象物体の分割領域データを生成する分割領域データ生成部である。符号24は、分割領域データ生成部23が生成した分割領域データを記憶する分割領域データ記憶部である。符号25は、分割領域データ記憶部24に記憶されている分割領域データを入力して、計算用データを生成する計算用データ生成部である。符号26は、計算用データ生成部25が計算用データを生成する際の中間データを記憶する中間データ記憶部である。符号27は、計算用データ生成部25が生成した計算用データを記憶する計算用データ記憶部である。この計算用データ記憶部27に記憶されたデータは、数値解析の入力データとなる。
次に、図22を参照して、図21に示すパラメータ記憶部12のテーブル構造を説明する。図22は、図21に示すパラメータ記憶部12のテーブル構造を示す図である。パラメータ記憶部12は、パラメータ入力部11が入力装置4から入力されたパラメータを記憶するものであり、解析領域データ、解析領域基準点データ、ボクセル分割数データからなる。解析領域データとは、直方体からなる解析領域を定義するためのデータであり、直方体の2点の座標値から構成する。解析領域基準点データは、解析対象物体内に存在する点の座標値であり、物体の内側と外側を判定するためのものである。ボクセル分割数データとは、解析対象物体を完全に含む解析領域の直方体(点(Xmin,Ymin,Zmin)及び点(Xmax, Ymax,Zmax)の2点の解析領域データで定義される直方体)の直交座標系の各軸方向の分割数である。これらのデータは、解析作業者が、入力装置4から入力したものである。
次に、図23を参照して、図21に示す形状データ記憶部15に記憶される形状データについて説明する。図23は、図21に示す形状データ記憶部15に記憶される形状データの一例を示す図である。形状データ記憶部15には、CAD装置Cによって設計された解析対象物体の形状を定義するデータが記憶される。図23に示す例では、説明を簡単にするために、解析対象物体が円柱状の形状であるものとして説明する。形状データは、例えば、形状の稜線を定義するための座標値等から構成する。ここでは、物体の内側か外側かのデータは含まれておらず、解析領域基準点(Bx,By,Bz)を円柱の内側に定義することにより、解析領域基準点が存在する側を物体の内側とする。
次に、図24を参照して、解析領域と解析対象物体の位置関係について説明する。図24は、解析領域と解析対象物体の位置関係を示す図である。解析対象物体は、解析領域データで定義される直方体の中に完全に含まれる位置関係を有している。
次に、図25を参照して、図21に示すパッチデータ記憶部17に記憶されるパッチデータについて説明する。図25は、図21に示すパッチデータ記憶部17に記憶されるパッチデータの一例を示す図である。パッチデータとは、解析対象物体の外形を多角形(ポリゴン)で表現したデータである。ここでは、この多角形をパッチと称する。パッチデータ生成部16は、形状データを読み込んで、公知の方法を用いて、パッチデータを生成して、パッチデータ記憶部17に記憶する。パッチデータの生成方法は、公知の生成方法のいずれでも使用可能であるため、ここでは、パッチデータ生成処理の詳細な説明を省略する。図25に示す例では、三角形のパッチデータを生成した例を示している。各多角形(ここでは三角形)は、各頂点(P1、P2、P3)の座標値によって定義されるものである。図25においては、説明を簡単にするために、円柱を六角柱で表現しているが、実際には、所望の計算精度が得られる多角柱で表現されるものである。
次に、図26を参照して、図21に示すパッチデータ記憶部17のテーブル構造を説明する。図26は、図21に示すパッチデータ記憶部17のテーブル構造を示す図である。パッチデータ記憶部17には、解析対象物体上に生成されたパッチの数と、各パッチ(ここでは三角形)それぞれについて、頂点の3次元座標値が、パッチを一意に特定可能なパッチIDとが関係付けられて記憶される。
次に、図27を参照して、ボクセルデータについて説明する。図27は、ボクセルの構成を示す図である。ボクセルは、解析領域データで定義される解析領域(直方体の領域)を、ボクセル分割数データ(Nx、Ny、Nz)に基づき分割して得られる小さな直方体である。図27に示す例では、Nx=6、Ny=9、Nz=6である場合の分割例を示している。
次に、図28を参照して、図21に示すボクセルデータ記憶部19のテーブル構造を説明する。図28は、図21に示すボクセルデータ記憶部19のテーブル構造を示す図である。ボクセルデータ記憶部19は、Nx×Ny×Nz個のボクセル属性データを記憶することができる3次元テーブルを備えており、ボクセルの分割と一致したテーブル構造になっている。ボクセル属性データは、3つの属性のいずれかを示す値が記憶される。1つ目の属性は、パッチと交差しているボクセルであること示す属性であり、交差しているパッチのパッチIDが記憶される。2つ目の属性は、解析対象物体の内部に存在するボクセルであることを示す属性であり、-2が記憶される。3つ目の属性は、解析対象物体の外部に存在するボクセルであることを示す属性であり、-1が記憶される。
次に、図29を参照して、各ボクセルを定義するデータについて説明する。図29は、各ボクセルを定義するデータを求める方法を示す図である。各ボクセルは、ボクセルの中心点座標値と各軸方向の寸法によって定義される。各ボクセルの寸法(Sx、Sy、Sz:X方向の辺の長さ、Y方向の辺の長さ、Z方向の辺の長さ)は全て同一であり、分割領域の各軸方向の長さをボクセル分割数で除算して求めることができる。また、中心座標値(Xc,Yc,Zc)は、ボクセルの位置(i,j,k:X方向の位置(何番目),Y方向の位置,Z方向の位置)と、分割領域のサイズと、ボクセル分割数とから簡単な計算式によって求めることができる。1つのボクセルを特定するためのデータ(中心座標値と寸法)は、簡単な計算式で求めることができため、必要な時に演算によって求めるようにして、ボクセルデータ記憶部19には、属性データのみが記憶され、中心座標値と寸法については記憶されていない。
次に、図30を参照して、図21に示す初期点データ記憶部21のテーブル構造を説明する。図30は、図21に示す初期点データ記憶部21のテーブル構造を示す図である。初期点データ記憶部21には、初期点の個数と、初期点のそれぞれについて、各初期点を一意に識別可能な初期点IDと、初期点の3次元座標値とが関係付けられて記憶される。この初期点は、各ボクセルの中心点から生成し、データ間引き部22が初期点を間引き、不要な初期点を削除した後の初期点データが記憶されることになる。
次に、図31を参照して、図21に示す分割領域データ記憶部24のテーブル構造を説明する。図31は、図21に示す分割領域データ記憶部24のテーブル構造を示す図である。分割領域データ記憶部24は、Nx×Ny×Nz個(ボクセルと同数)の分割領域データを記憶することができる3次元テーブルを備えており、ボクセルの分割と一致したテーブル構造になっている。分割領域データは、2つの状態のいずれかを示す値が記憶される。一方の状態は、分割領域に含まれる状態を示すものであり、そのボクセルの中心座標から最も近い初期点の初期点IDが記憶される。ここで記憶される初期点IDは、分割領域IDに相当する。他方の状態は、解析対象物体の外部に存在するボクセルである状態を示すものであり、-1が記憶される。分割領域は、解析対象物体内を複数の3次元領域に分割したものであり、解析対象物体の外部に存在するボクセルは、ボクセルデータ記憶19に記憶されるボクセル属性がそのまま記憶されることになる。
次に、図32を参照して、図21に示す中間データ記憶部26のテーブル構造を説明する。図32は、図21に示す中間データ記憶部26のテーブル構造を示す図である。中間データ記憶部26には、分割領域IDが異なる隣り合うボクセルそれぞれが属する分割領域IDの組合せと、法線ベクトルと、法線ベクトルの長さからもとめた境界面の面積を記憶する領域を備えている。この記憶領域は、計算用データを生成するために、分割領域データ記憶部24に記憶されている分割領域データを集計する際に得られる中間データを記憶するものである。
次に、図33を参照して、図21に示す計算用データ記憶部27のテーブル構造を説明する。図33は、図21に示す計算用データ記憶部27のテーブル構造を示す図である。計算用データ記憶部27には、分割領域の個数(初期点の個数と同数)と、分割領域を一意に識別可能な分割領域ID毎に、分割領域の重心座標と分割領域の体積が記憶される。また、分割領域の境界面の個数と、境界面を一意に識別することが可能な境界面ID毎に分割領域IDの組合せと、法線ベクトルと、境界面の面積とが記憶される。
次に、図21に示す計算用データ生成装置Dの処理動作を説明する。まず、計算用データを作成しようとする作業者は、入力装置4から、形状データ入力部14に対して形状データを入力する指示の操作を行う。形状データ入力部14は、通信部13を介して、CAD装置Cから解析対象物体の形状データを入力して、入力した形状データを形状データ記憶部15に記憶する。形状データが形状データ記憶部15に記憶されると、パッチデータ生成部16は、形状データ記憶部15から形状データを読み込み、パッチデータを生成して、パッチデータ記憶部17に記憶する。これにより、パッチデータ記憶部17には、図26に示すパッチデータが記憶されることになる。
また、作業者は、入力装置4からパラメータの入力を行う。これを受けて、パラメータ入力部11は、入力装置から入力されたパラメータを読み込み、パラメータ記憶部12に記憶する。これにより、パラメータ記憶部12には、図22に示すパラメータが記憶されることになる。
次に、作業者は、入力装置4から計算用データの生成を指示する操作を行う。これを受けて、ボクセルデータ生成部18は、パラメータ記憶部12に記憶されているパラメータと、パッチデータ記憶部17に記憶されているパッチデータとを入力して、ボクセルデータの生成を行う。
ここで、図34を参照して、図21に示すボクセルデータ生成部18がボクセルデータを生成する処理動作を説明する。図34は、図21に示すボクセルデータ生成部18がボクセルデータを生成する処理動作を示すフローチャートである。まず、ボクセルデータ生成部18は、パラメータ記憶部12に記憶されている解析領域データとボクセル分割数データを読み込み、これらのデータからボクセルを定義して、各ボクセルの中心座標と寸法を求める(ステップS11)。そして、ボクセルデータ生成部18は、定義したボクセルを1つ選択する(ステップS12)。
次に、ボクセルデータ生成部18は、パッチデータ記憶部17に記憶されているパッチデータを参照して、選択したボクセルとパッチが交差するかを幾何学的に計算して求める(ステップS13)。そして、ボクセルデータ生成部18は、選択したボクセルとパッチが交差するか否かを判定する(ステップS14)。この判定の結果、交差しなければボクセルデータ生成部18は、選択したボクセルと解析対象物体との位置関係を求め(ステップS15)、選択したボクセルが解析対象物体の外部領域であるか否かを判定する(ステップS16)。この判定の結果、ボクセルが解析対象物体の外部に位置するボクセルであれば、ボクセルデータ記憶部19中の選択したボクセルの記憶領域に、-1(解析対象物体外部のボクセルを示す値)を記憶し(ステップS17)、内部に位置するボクセルであれば、-2(解析対象物体内部のボクセルを示す値)を記憶する(ステップS18)。
一方、選択したボクセルとパッチが交差する場合、ボクセルデータ生成部18は、ボクセルデータ記憶部19中の選択したボクセルの記憶領域に、交差するパッチのパッチIDを記憶する(ステップS19)。そして、ボクセルデータ生成部18は、定義したボクセルの全てについて処理を行ったか否かを判定し(ステップS20)、全てのボクセルについて属性データを記憶するまでステップS12~S19の処理動作を繰り返す。この処理動作によって、ボクセルデータ記憶部19には、全てのボクセルについて属性データが関係付けられて記憶されたことになる。
次に、ボクセルデータ記憶部19に属性データが記憶されると、初期点データ生成部20は、ボクセルデータ記憶部19に記憶されているボクセルそれぞれについて、中心座標を求め、この中心座標値を初期点とし、各初期点に初期点IDを付与して、初期点データ記憶部21に記憶する。これにより、初期点データ記憶部21(図30)には、ボクセルと同数の初期点が記憶されたことになる。
次に、データ間引き部22は、初期点データ記憶部21に記憶されている初期点の数を減らすために、初期点データの間引きを行う。ここで行う間引き処理は、公知の方法を用いて行う。例えば、所定の空間間隔で所定の数の初期点データを削除するなどの処理によって行えばよい。そして、データ間引き部22は、削除するべき初期点データを初期点データ記憶部21上から削除し、残った初期点データの数をカウントして、初期点個数として初期点データ記憶部21に記憶する。
次に、分割領域データ生成部23は、初期点データ記憶部21に記憶されている初期点データと、ボクセルデータ記憶部19に記憶されているボクセルデータとを参照して、分割領域データを生成して、分割領域データ記憶部24に記憶する。
ここで、図35を参照して、分割領域データ生成部23が分割領域データを生成して、分割領域データ記憶部24に記憶する処理動作を説明する。図35は、分割領域データ生成部23が分割領域データを生成して、分割領域データ記憶部24に記憶する処理動作を示すフローチャートである。まず、分割領域データ生成部23は、分割領域データ記憶部24のテーブルに全て-1を記憶する(ステップS21)。続いて、分割領域データ生成部23は、ボクセルデータ記憶部19に記憶されているボクセルの属性データが-2またはパッチIDであるボクセルの中からボクセルを1つ選択し(ステップS22)、この選択したボクセルの中心座標を求める。そして、分割領域データ生成部23は、初期点データ記憶部21を参照して、求めたボクセルの中心座標に最も近い(直線距離が最も短い)初期点を選択し(ステップS23)、選択した初期点の初期点IDを分割領域データ記憶部24中の選択したボクセルの記憶領域に記憶する(ステップS24)。
次に、分割領域データ生成部23は、ボクセルの全てについて処理を行ったか否かを判定し(ステップS25)、全てのボクセルについて分割領域データ(初期点ID)を記憶するまでステップS22~S24の処理動作を繰り返す。この処理動作によって、分割領域データ記憶部24には、全てのボクセルについて、そのボクセルが属する分割領域のID(初期点ID)か、または-1のいずれかが記憶されたことになる。
次に、計算用データ生成部25は、分割領域データ記憶部24に記憶されている分割領域データを読み込み、計算用データを生成して計算用データ記憶部27に記憶する。
ここで、図36を参照して、計算用データ生成部25が分割領域データから計算用データを生成して、計算用データ記憶部27に記憶する処理動作を説明する。図36は、計算用データ生成部25が分割領域データから計算用データを生成して、計算用データ記憶部27に記憶する処理動作を示すフローチャートである。まず、計算用データ生成部25は、分割領域データ記憶部24を参照して、分割領域データとして分割領域IDが記憶されている(-1が記憶されていない)ボクセルの中から基準となるボクセルを1つ選択する(ステップS31)。そして、計算用データ生成部25は、分割領域データ記憶部24を参照して、選択した基準ボクセルに接している6つの隣接ボクセル(上下左右前後のボクセル)を特定する(ステップS32)。
次に、計算用データ生成部25は、特定した6つの隣接ボクセルから1つの隣接ボクセルを選択し(ステップS33)、基準ボクセルと選択した隣接ボクセルのそれぞれが属する分割領域を特定する。この分割領域の特定は、分割領域データとして記憶されている分割領域IDにより行う。そして、計算用データ生成部25は、2つの分割領域IDが同一か否かを判定する(ステップS35)。この判定の結果、同じ分割領域IDであれば、ステップS33に戻り、次の隣接ボクセルを選択する。
一方、2つの分割領域IDが同じでなければ、計算用データ生成部25は、中間データ記憶部26を参照して、2つの分割領域IDの組合せが既に登録されているかを探索する(ステップS36)。そして、計算用データ生成部25は、2つの分割領域IDの組合せが既に登録されているか否かを判定し(ステップS37)、登録されていなければ、この2つの分割領域IDを中間データ記憶部26に記憶する(ステップS38)。判定の結果、2つの分割領域IDの組合せが既に登録されている場合は、分割領域IDの登録は行わない。
次に、計算用データ生成部25は、基準ボクセルと選択した隣接ボクセルとが接している面の法線ベクトルを中間データ記憶部26に書き込む。このとき、既に法線ベクトルが書き込まれていた場合、計算用データ生成部25は、書き込まれていた法線ベクトルに対して、新たに求めた法線ベクトルを加算して、新たに中間データ記憶部26に書き込む(ステップS39)。
次に、計算用データ生成部25は、6つの隣接ボクセル全ての処理を行ったか否かを判定し(ステップS40)、6つの隣接ボクセルに対する処理が終わるまで、ステップS33~S39の処理を繰り返す。そして、6つの隣接ボクセルに対する処理が終了した時点で、全てのボクセルについて処理したか(全てのボクセルを基準ボクセルとして選択したか)を判定し(ステップS41)、全てのボクセル(-1でないボクセル)に対する処理が終わるまで、ステップS31~S40の処理を繰り返す。この処理動作により、中間データ記憶部26には、隣接する分割領域IDの組合せについて法線ベクトルの加算値が得られたことになる。
次に、計算用データ生成部25は、2つの分割領域IDの組合せそれぞれについて、法線ベクトルの加算値から法線ベクトルの長さを求め、この法線ベクトルの長さを境界面の面積として中間データ記憶部26に記憶する(ステップS42)。そして、計算用データ生成部25は、中間データ記憶部26に記憶されている2つの分割領域IDの組合せから分割領域の個数と、境界面の個数とを求める(ステップS43)。
次に、計算用データ生成部25は、分割領域データ記憶部24に記憶されている分割領域データと、中間データ記憶部26に記憶されている中間データとに基づき、計算用データを生成して、計算用データ記憶部27に記憶する。このとき、計算用データ生成部25は、分割領域データ記憶部24に記憶されている分割領域データから分割領域それぞれの重心位置座標と分割領域の体積(ボクセルの個数にボクセルの体積を乗算したもの)を求めて計算用データ記憶部27に記憶する。また、計算用データ生成部25は、中間データ記憶部26に記憶されている中間データを計算用データ記憶部27に記憶するともに、先に求めた分割領域の個数と、境界面の個数とを計算用データ記憶部27に記憶する。この処理動作によって、図33に示す計算用データが生成されたことになる。
このように、簡単な演算処理によって計算用データを生成することが可能になるため、解析作業者が行う作業負荷を軽減することができる。
<第2の実施形態>
次に、本発明の第2の実施形態による計算用データ生成装置を説明する。図37は同実施形態の構成を示すブロック図である。この図において、図21に示す第1の実施形態による装置と同一の部分には同一の符号を付し、その説明を省略する。この図に示す装置が図21に示す装置と異なる点は、カラーの3次元描画が行えるグラフィックボード28が新たに設けられ、これに伴って分割領域生成部231の処理動作が異なる点である。
次に、図38を参照して、図37に示すグラフィックボード28の機能構成を説明する。図38は、図37に示すグラフィックボード28の機能構成を示す図である。グラフィックボード28は、縮尺調整データと三角形データを入力し、ピクセルデータを出力データとして出力する機能を有している。グラフィックボード28内の三角形描画部は、縮尺調整データと三角形データを入力し、画像バッファに三角形を描画する。また、3次元形状である三角形の奥行き方向の情報を記憶するために、ピクセルのZ座標(奥行き方向の座標)を記憶するZバッファを備えている。そして、複数の三角形を描画することにより得られる画像バッファのピクセル色情報がそのまま分割領域のIDとして領域分割処理を実行するものである。
縮尺調整データは、描画領域データ(解析領域データのz座標を除いたもの)と、ピクセル分割数データ(ボクセル分割数データのNzを除いたもの)と、奥行き調整データ(解析領域データのz座標値)とからなる。また、三角形データは、描画するべき三角形の個数分の三角形の3つの頂点の座標値からなる。
次に、図39を参照して、図37に示すグラフィックボード28の座標系について説明する。図39は、図37に示すグラフィックボード28の座標系を示す図である。グラフィックボード28内の画像バッファとZバッファは、同じ座標系を有しており、分割領域データ生成部231から出力される描画領域データ(Xmax,Xmin,Ymax,Ymin)によって座標系が決定する。そして、各ピクセルデータは、描画領域データとピクセル分割数データとから決まり、ボクセルと同じ寸法となる。また、奥行き調整データによりZ座標の許容最大値と許容最小値とが決定する。グラフィックボード28において描画するべき図形は、図39の符号Pで示す立体物であり、この立体物をここではポテンシャル立体と称する。
次に、図40を参照して、ポテンシャル立体について説明する。図40は、ポテンシャル立体の構成を示す図である。ポテンシャル立体は、関数f(d)のグラフ形状を軸対象に回転した形状である。関数f(d)は、f(d)=(R0-(Δh**2+d**2)**0.5)/R0で定義される。ここで、Δhは、初期点とZスライス面との距離、R0は、球体の半径である。ここで球体の求め方について説明する。球体の中心座標は、初期点データ記憶部21に記憶されている初期点の座標である。すなわち、球体は、初期点を中心として所定の半径を持つ球体である。
半径は、次のように求める。まず、解析対象物体の内部の体積(ボクセル属性が-2であるボクセルの数にボクセルの体積を乗算した値)をV0とし、初期点の数をNpartとすると、初期点1つ分に割り当てられる平均体積ΔVは、V0を初期点の数で除算することで求めることができる。この平均体積ΔVが直方体とした場合、平均体積ΔVの3乗根により直方体の1辺の長さが求められる。この1辺の長さを持つ直方体の頂点が内接する球体が求めるべき球体である。すなわち、直方体の中心から頂点までの距離が球体の半径である。
この球体とZスライス面における球体の断面がポテンシャル立体の底面となる。ポテンシャル立体は、山型をしており、初期点とZスライス面との距離が短いほど山の高さが高くなうような立体である。Zスライス面とは、図27に示すボクセルのZ方向のボクセルの境界でスライスすることにより得られる面のことである。すなわち、ボクセル分割数Nzと同数のZスライス面が存在することになる。
次に、図41を参照して、グラフィックボード28に入力する三角形データについて説明する。図41は、グラフィックボード28に入力する三角形データの構成を示す図である。三角形データは、ポテンシャル立体の表面を複数の三角形のパッチデータで表現したデータである。各三角形は、頂点1、2、3の3つの頂点の3次元座標値で表現され、これらの頂点座標値に加えて、この三角形を定義する際に用いた球体の中心に位置する初期点の初期点IDが、三角形のIDとして付与される。すなわち、1つのポテンシャル立体を表現する三角形にはすべて同じ三角形ID(初期点ID)が付与される。
グラフィックボード28は、この三角形データに基づいて、描画処理を行う。ここで、図42を参照して、グラフィックボード28における三角形の描画処理について説明する。図42は、グラフィックボード28における三角形の描画処理を示す図である。まず、三角形描画部は、1個目の三角形を画像バッファに描画する。このとき、画像バッファには、三角形IDの値を表示色として用いて描画する。また、三角形描画部は、三角形のZ座標値をZバッファに書き込む。そして、2個目の三角形を描画する場合、Zバッファに書き込まれている値と、新たに書き込む三角形の値と比較して、Z座標値が大きい場合のみ、Zバッファの値を更新する。そして、Zバッファの更新を行ったピクセルのみを新たな三角形IDの値を表示色として用いて画像バッファに書き込む。この処理を繰り返すと、隠面処理を行ったのと同等の結果が得られることになる。そして、画像バッファの内容を出力データとして出力する。このデータは、Zスライス面において、初期点毎の領域分割を行ったのと同等の結果を得ることができる。
第2の実施形態におけるボクセルデータ記憶部19にボクセルデータを記憶する処理動作と、初期点データ記憶部21に初期点データを記憶する処理動作は、第1の実施形態における処理動作と同様であるので、詳細な処理動作の説明を省略する。以下の説明においては、第1の実施形態と異なる処理動作のみを説明する。
次に、図43を参照して、図37に示す分割領域データ生成部231の処理動作を説明する。図43は、図37に示す分割領域データ生成部231の処理動作を示すフローチャートである。まず、分割領域データ生成部231は、Zスライス面を1つ選択する(ステップS51)。そして、分割領域データ生成部231は、初期点を1つ選択し、この選択した初期点を中心とした球体を定義する(ステップS53)。
次に、分割領域データ生成部231は、この定義した球体が選択したZスライス面と交差するか否かを判定する(ステップS54)。この判定の結果、球体とZスライス面が交差する場合、分割領域データ生成部231は、断面円の形状を求め(ステップS55)、この断面円から前述したポテンシャル立体を定義する(ステップS56)。一方、球体とZスライス面が交差しない場合、分割領域データ生成部231は、ポテンシャル立体の定義(ステップS55、S56)を行わない。
次に、分割領域データ生成部231は、全ての初期点について処理したかを判定し(ステップS57)、全ての初期点についてポテンシャル立体の定義処理が終わるまで、ステップS52~S56の処理を繰り返す。
次に、分割領域データ生成部231は、定義した全てのポテンシャル立体から定義した三角形データをグラフィックボード28へ出力する。これを受けて、グラフィックボード28は、ポテンシャル立体をZスライス面に投影し、ピクセルにそれぞれの初期点IDを記憶する。このとき、隠面処理を施すことにより、ポテンシャル立体同士が重なり合うときに、高い方の初期点IDをピクセルに記憶する。そして、グラフィックボード28は、全ての三角形データを描画した結果の画像バッファの内容を分割領域データ生成部231へ出力する。
ここで、図44を参照して、図37に示すグラフィックボード28内の三角形描画部の処理動作を説明する。図44は、図37に示すグラフィックボード28内の三角形描画部の処理動作を示すフローチャートである。まず、三角形描画部は、全3角形に対する処理を繰り返し行う(ステップS61)。そして、三角形描画部は、現在の3角形の3つの頂点を取り出し(ステップS62)、全てのピクセルに対する処理を繰り返す(ステップS63)。続いて、三角形描画部は、現在のピクセルの中心の点を通り、方向が(0,0,+1)である直線と、三角形の面との交点座標を(Px,Py,Pz)とする(ステップS64)。
次に、三角形描画部は、そのピクセルは、3角形の内部または境界線上に位置しているか否かを判定する(ステップS65)。この判定の結果、3角形の内部または境界線上に位置していれば、PzはそのピクセルのZバッファの値よりも大きいか否かを判定する(ステップS66)。この判定の結果、PzはそのピクセルのZバッファの値よりも大きい場合、そのピクセルのZバッファの値にPzを代入し、画像バッファにID番号を24BITの整数とした色を代入する(ステップS67)。そして、全てのピクセルを処理するまで繰り返し(ステップS68)、さらに、全ての3角形を処理するまで繰り返す(ステップS69)。これにより、全ての三角形の描画を行うことが可能となる。この画像バッファの内容は、Zスライス面を初期点毎の分割を行ったのと同等の結果が得られるため、分割領域データ生成部231は、この結果のデータ(初期点ID)を分割領域データ記憶部24に記憶する。
次に、分割領域データ生成部231は、全てのスライス面について処理したか否かを判定し(ステップS59)、全てのZスライス面について処理が終わるまで、ステップS51~S58の処理を繰り返す。この処理によって、分割領域データ記憶部24には、前述した第1の実施形態において得られた分割領域データと同じデータを得ることができる。計算用データ生成部25における処理動作は、第1の実施形態における処理動作と同様であるので、詳細な説明を省略する。
なお、第2の実施形態において、球体の半径が小さい場合、分割領域に含まれないボクセルが発生する場合があるが、この場合は、球体の半径を大きくして再度前述した処理動作を繰り返し行えばよい。また、第2の実施形態では、分割領域データ生成部231によって全ての分割領域データを生成してから計算用データ生成部25によって計算用データを生成する処理動作を説明したが、1つのZスライス面の分割領域データができた時点で、その分割領域データから計算用データを生成し、次のZスライス面について分割領域データを生成し、この分割領域データから計算用データを生成するというように、Zスライス面ごとに領域分割と計算用データ生成を行うようにしてもよい。このようにすることにより、中間データ記憶部26に記憶されるデータ量を少なくすることができ、処理を簡単にすることが可能となる。
<第3の実施形態>
次に、本発明の第2の実施形態による計算用データ生成装置を説明する。図45は同実施形態の構成を示すブロック図である。この図において、図21に示す第1の実施形態による装置と同一の部分には同一の符号を付し、その説明を省略する。この図に示す装置が図21に示す装置と異なる点は、初期点データ生成部20がパッチデータ記憶部17のデータを読み込んで初期点を生成する点である。特に、第3の実施形態における初期点データ生成部20は、解析対象物体の壁近傍(境界層)に密な初期点を生成するのが特徴である。
次に、図46を参照して、図45に示す初期点データ生成部20の構成を説明する。図46は、図45に示す初期点データ生成部20の構成を示す図である。図46において、符号201は、解析対象物体の内側に存在するボクセルの内側ボクセルデータを生成する内側ボクセルデータ生成部である。符号202は、内側ボクセルデータ生成部201で生成された内側ボクセルデータを記憶する内側ボクセルデータ記憶部である。符号203は、壁上と球上の点データを生成する壁上点・球上点データ生成部である。符号204は、壁上点・球上点データ生成部203で生成された壁上点データを記憶する壁上点データ記憶部である。符号205は、壁上点・球上点データ生成部203で生成された球上点データを記憶する球上点データ記憶部である。符号206は、壁上点データと球上点データを参照して、分割点データを生成する分割点データ生成部である。符号207は、分割点データ生成部206が生成した分割点データを記憶する分割点データ記憶部である。符号208は、分割点データと内側ボクセルデータから初期点を生成して出力し、初期点データ記憶部21に記憶する初期点データ出力部である。
次に、図47を参照して、図46に示す内側ボクセルデータ生成部201の動作を説明する。まず、内側ボクセルデータ生成部201は、ボクセルデータ記憶部19に記憶されているボクセルデータを参照して、ボクセルを1つ選択する(ステップS71)。そして、内側ボクセルデータ生成部201は、パッチデータ記憶部17を参照して、選択したボクセルとパッチが交差するかを求め(ステップS72)、選択したボクセルとパッチが交差するか否かを判定する(ステップS73)。この判定の結果、交差していれば内側ボクセルデータ生成部201は、内側ボクセルデータ記憶部202中の選択したボクセルの記憶領域に、-1(解析対象物体の内側のボクセルを示す値)を記憶する(ステップS76)。
一方、交差していなければ、内側ボクセルデータ生成部201は、ボクセルと解析対象物体の位置関係を求め(ステップS74)、選択したボクセルが解析対象物体の外部領域であるか否かを判定する(ステップS75)。この判定の結果、ボクセルが解析対象物体の外部に位置するボクセルであれば、内側ボクセルデータ記憶部202中の選択したボクセルの記憶領域に、-1(解析対象物体外部のボクセルを示す値)を記憶し(ステップS76)、内部に位置するボクセルであれば、0(解析対象物体内部のボクセルを示す値)を記憶する(ステップS77)。そして、内側ボクセルデータ生成部201は、ボクセルの全てについて処理を行ったか否かを判定し(ステップS78)、全てのボクセルについてステップS71~S76の処理動作を繰り返す。この処理により、図53に示すように、解析対象物体の内側に位置するボクセルのデータが内側ボクセルデータ記憶部202に記憶されたことになる。
次に、図48を参照して、図46に示す壁上点・球上点データ生成部203の動作を説明する。まず、壁上点・球上点データ生成部203は、内側ボクセルデータ記憶部202を参照して、内側ボクセルを1つ選択し(ステップS81)、隣り合うxyzの6方向(正負を区別)に内側ボクセルが存在するかを調べ(ステップS82)、全てに存在するかを判定する(ステップS83)。この判定の結果、全てに存在していなければ、壁上点・球上点データ生成部203は、選択したボクセルに内接する球を定義する(ステップS84)。そして、壁上点・球上点データ生成部203は、図54に示すように球面上に26点個の球上点を定義し(ステップS85)、ボクセルの中心から球上点へ向けたベクトルの先に内側ボクセルが存在するかを調べ(ステップS86)、存在するか否かを判定する(ステップS87)。
この判定の結果、存在しなければ壁上点・球上点データ生成部203は、各点から最も近い点を形状データから探索し、そこに壁上点を定義し(ステップS88)、定義した壁上点、球上点をそれぞれ壁上点データ記憶部204、球上点データ記憶部205に記憶する(ステップS89)。そして、壁上点・球上点データ生成部203は、ボクセルの全てについて処理を行ったか否かを判定し(ステップS90)、全てのボクセルについてステップS81~S89の処理動作を繰り返す。この処理により、図55に示すように、定義した壁上点、球上点をそれぞれが壁上点データ記憶部204、球上点データ記憶部205に記憶されることになる。
次に、図49を参照して、図46に示す分割点データ生成部206の動作を説明する。まず、分割点データ生成部206は、壁上点データ記憶部204、球上点データ記憶部205を参照して、壁上点と球上点を通る直線を定義し(ステップS91)、この直線上において、壁上点から距離d1離れた位置に初期点1を生成する(ステップS92)。
次に、分割点データ生成部206は、定義した直線上において、初期点1から距離d2離れた位置に初期点2を生成する(ステップS93)。そして、分割点データ生成部206は、壁上点と生成された初期点とを結ぶ線分が球面と交差したか、または、ユーザが指定した数だけ直線上に初期点を生成したかを判定し(ステップS94)、図56に示すように、この条件のいずれかを満たすまで、ステップS93の処理を繰り返し、初期点3、初期点4、・・・を生成し、生成した初期点群を分割点データ記憶部207に記憶する。なお、繰り返す条件は、予めいずれを採用するかを決めておく。この処理により、図57に示すように、球上点と壁上点を結ぶ直線上に境界層を形成するための初期点群が生成されることになる。
次に、図50を参照して、図46に示す初期点データ出力部208の動作を説明する。まず、初期点データ出力部208は、内側ボクセルデータ記憶部202に記憶されているボクセルデータを読み出し、このボクセルの中心点を初期点として、初期点データ記憶部21に記憶する(ステップS101)。続いて、初期点データ出力部208は、分割点データ記憶部207に記憶されている分割点データを読み出し、この分割点データを初期点として初期点データ記憶部21に記憶する(ステップS102)。この処理により、初期点データ記憶部21には、解析対象物体の内側に位置するボクセルの中心点が初期点データとして記憶されるとともに、分割点が境界層を形成するための初期点データとして記憶されることになる。
次に、図51を参照して、図46に示す構成の変形例を説明する。図46に示す構成と同一の部分には同一の符号を付し、その説明を省略する。図51に示す構成が、図46に示す構成と異なる点は、内側ボクセル元データ記憶部209と内側ボクセルデータ修正部210が新たに設けられている点である。これは、境界層の厚さを厚くするための初期点を生成するためのものである。内側ボクセル元データ記憶部209は、図46に示す内側ボクセルデータ記憶部202に相当し、解析対象物体の内側に位置するボクセルのボクセルデータを記憶するものである。内側ボクセルデータ修正部210は、境界層を厚くするために、内側ボクセル元データ記憶部209に記憶されているボクセルデータを境界層に近いボクセルを取り除く処理を行う。
次に、図52を参照して、図51に示す内側ボクセルデータ修正部210の動作を説明する。まず、内側ボクセルデータ修正部210は、内側ボクセル元データ記憶部209に記憶されているボクセルデータを参照して、内側ボクセルを1つ選択し(ステップS111)、隣り合うxyzの6方向(正負を区別)に内側ボクセルが存在するかを調べ(ステップS112)、全てに存在するかを判定する(ステップS113)。この判定の結果、全てに存在していなければ、内側ボクセルデータ記憶部202中の選択したボクセルの記憶領域に、-1を記憶する(ステップS114)。そして、内側ボクセルデータ修正部210は、ボクセルの全てについて処理を行ったか否かを判定し(ステップS115)、全てのボクセルについてステップS111~S114の処理動作を繰り返す。この処理により、解析対象物体の内側に位置するボクセルのデータが内側ボクセルデータ記憶部202に記憶されたことになる。ただし、境界層付近のボクセルが取り除かれている状態となる。これにより、図58に示すように、解析対象物体の内側に位置するボクセルのデータが内側ボクセルデータ記憶部202に記憶されたことになる。ただし、図53に示すボクセルデータに比べて体積(図面においては面積)の小さいボクセルデータの集合となり、内側ボクセルの集合の体積が小さくなり、その分境界層を定義する空間が大きくなる。これ以降の処理動作は、前述した動作と同様である。
第3の実施形態により生成された初期点データを初期点データ記憶部21に記憶し、この初期点データ記憶部21に記憶された初期点データに基づき、分割領域データ生成部23が前述した処理動作によって分割領域データを生成することになる。これにより、図59に示すような分割領域データを定義することができる。このように、境界層の分割を密に行うことにより、境界層における解析精度の向上を図ることが可能となる。
また、図21、図37、図45における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより計算用データ生成処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
本出願を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明らかである。
本出願は、2010年8月24日出願の日本特許出願(特願2010-187309)及び2010年12月21日出願の日本特許出願(特願2010-284878)に基づくものであり、その内容はここに参照として取り込まれる。