構造格子を用いたシミュレーション方法
【課題】流体解析等に好適に使用できる陰解法を用いたシミュレーション解法に関する。
【解決手段】二次元又は三次元空間内に、構造格子のモデルを設定する工程と、この構造格子のモデルに関連付けられた物理量及び条件に基づいてポアソン方程式を設定する工程と、該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、前記計算工程は、予め定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記ポアソン方程式を近似的に解くことを特徴とする。
【解決手段】二次元又は三次元空間内に、構造格子のモデルを設定する工程と、この構造格子のモデルに関連付けられた物理量及び条件に基づいてポアソン方程式を設定する工程と、該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、前記計算工程は、予め定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記ポアソン方程式を近似的に解くことを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばコンピュータを用いた流体解析等に好適に使用できる構造格子を用いたシミュレーション方法に関する。
【背景技術】
【0002】
任意の空間を流れる流体を解析する場合、コンピュータを用いたシミュレーションが行われる。このシミュレーションでは、任意の三次元空間を、構造格子を用いてメッシュ化し、各格子点での流体の圧力、温度及び/又は流速等が計算される。そして、この中の圧力に関する方程式は、流体を非圧縮であると定義できる場合、通常、ポアソン方程式を解くことにより行われる。
【0003】
前記ポアソン方程式の計算方法として、例えばヤコビ法、ガウス・ザイデル法、SOR法などの反復法が知られている。反復法は、初期値を与え(手順1)、反復計算を行い(手順2)、収束判定条件を満たす解になるまで手順2を繰り返す(手順3)、ことで行われる。しかしながら、上記方法は、解くべきマトリクスサイズが大きくなると、極端に収束性が悪化し、多くの時間を必要とする。
【0004】
このため、近年では、反復数がメッシュ規模に依存しないよう、AMG(Algebraic Multigrid Methods)法が多用される傾向がある。周知のように、AMG法は、直交格子だけでなく非構造格子も解くことができるように、幾何マルチグリッド法を拡張したものである。AMG法は、マルチグリッド法と同様、反復数がメッシュサイズに依存しないという特徴があるため、現在、最も高速な連立一次方程式の解法と言え、市販されている汎用ソルバーにも、多く採用されている(例えば、ANSYS社の「Fluent」、CD−adapco社の「STAR−CD」等)。
【0005】
しかしながら、AMG法は、大規模マトリクスを解くときの収束性に優れる一方、コンピュータに大規模なメモリーサイズを要求する。このため、大きなメモリーを搭載したコンピュータでなければ、AMG法で大規模な計算ができないという問題があった。
【0006】
一方、必要なメモリーサイズが少なくても大規模マトリクスの計算が可能で収束性の良い方法として、直接法の一つであるブロックサイクリックリダクション法が知られている。しかしながら、ブロックサイクリックリダクション法は、ポアソン方程式(例えば請求項1の式1)で、kが不変量(constant value)である場合を前提としており、kが一定値ではなく、マトリクスの中で一カ所でも違う値をとってしまい、マトリクスの外に出せない様なケースでは、ブロックサイクリックリダクション法)を用いて解く事はできない。
【0007】
従って、ブロックサイクリックリダクション法を正しく適用するためには、シミュレーションで用いられるkの値を一定にすること、つまり、陽解法を用いる(クーラン条件(CFL条件)を守る)必要があり、計算時の時間刻み幅を小さくとる必要があるので、計算コストが大きくなってしまうという欠点がある。
【0008】
なお、CFL条件(Courant-Friedrichs-Lewy Condition)とは、コンピュータシミュレーションの計算(数値解析)において、「情報が伝播する速さ」を「実際の現象で波や物理量が伝播する速さ」よりも早くしなければならないという必要条件のことである。例えば、離散格子系において波動を扱う場合に、その運動方程式の数値解を求める際に用いる時間ステップ(Δt)の値は、実際の波動が隣り合う格子に伝達するまでの時間よりも小さくなければならない。もし(Δt)の値がCFL条件の上限を超えると、数値発散が生じてしまい、物理的に意味の無い解を得てしまう。また、格子の間隔が小さくなると、時間ステップの上限値も減少する。そして、実際の波(特性速度)の速さをC、計算上の時間ステップ幅をΔt、格子幅をΔxとすれば、 移流方程式等の場合、 Δx/Δt>C (情報が伝播する速さ>実際の波等の速さ)がCFL条件となる。このCFL条件は、陽解法の時間進展を行う際に用いられる条件であり、この条件を回避するために、しばしば陰解法が用いられる場合がある。 陰解法を用いることでCFL条件を回避しかつ緩和できる理由としては様々な説明が存在するが、最も簡潔に説明すると、陽解法は1ステップ前の自分の周りのごくわずかな格子点のみから情報を得て 次の時間の値を決めるのに対して、陰解法は1ステップ前の(ほぼ)全ての格子点の情報を処理して 次の時間の値を決めるためであり、CFL条件におけるΔxが実質的に巨大になるためである。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平5−135091号公報
【特許文献2】特開2000−293508号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、以上のような問題点に鑑み案出なされたもので、二次元又は三次元空間内に、均一又は不均一構造格子を設定し、この構造格子に関連付けられた物理量及び条件に基づいて特定形式のポアソン方程式を設定し、このポアソン方程式を、ブロックサイクリックリダクション法を近似的に計算することを基本として、不均一構造格子を前提とするポアソン方程式についても小さなメモリーサイズのコンピュータで迅速に計算することが可能な不均一構造格子を用いたシミュレーション方法を提供することを目的としている。
【課題を解決するための手段】
【0011】
本発明のうち請求項1記載の発明は、二次元又は三次元空間内に、構造格子のモデルを設定する工程と、
この構造格子のモデルに関連付けられた物理量及び条件に基づいて式(1)のポアソン方程式を設定する工程と、
該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、
前記計算工程は、式(2)で定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、
この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、
前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記式(1)のポアソン方程式を近似的に解くことを特徴とする。
【数2】
【0012】
また請求項2記載の発明は、構造格子は、二次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法である。
【0013】
また請求項3記載の発明は、前記構造格子は、三次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法である。
【0014】
また請求項4記載の発明では、前記計算工程は、予め前記式(2)の方程式をフーリエ変換することによって、次元数を二次元に落とすことを特徴とする請求項3記載の構造格子を用いたシミュレーション方法である。
【発明の効果】
【0015】
本発明によれば、二次元又は三次元空間内に、構造格子で空間を離散化したモデルを設定する工程と、この構造格子のモデルに関連付けられた物理量及び条件に基づいて特定のポアソン方程式を設定する工程と、該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、前記計算工程は、式(2)で定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記式(1)のポアソン方程式を近似的に解くことを特徴とする。
【0016】
即ち、ブロックサイクリックリダクション法は直接法であり、本来では、1回の計算で誤差のほとんど無い解が得られるが、k≠constant型のポアソン方程式については、ブロックサイクリックリダクション法の適用条件を満たさず、そのような計算はできない。しかし、本発明では、誤差の概念を導入し、この誤差を、ブロックサイクリックリダクション法を用いて反復計算し、補正によって少しずつ小さくすることを特徴の一つとする。つまり、結果的に、k≠constant型のポアソン方程式を、前記ブロックサイクリックリダクション法を利用して少ない反復回数で解くことを可能にしている。
【0017】
従って、k≠constantを前提とするポアソン方程式についても、ブロックサイクリックリダクション法を適用できるため、小さなメモリーサイズのコンピュータで計算することができ、かつ、陰解法を適用できる様になるため、大きな時間刻み幅で非定常計算を実施できる様になる。このため、本発明方法では、計算コストの削減にもつながる。これにより、例えば複雑な乱流が生じる空気流体解析等を、高い空間解像度、時間解像度で解くことができ、ゴルフボールのディンプル開発等において、効率化やコスト削減に役立つ。また、ブロックサイクリックリダクション法では、反復回数が少ないため、計算結果に桁落ち等による計算誤差が積み上がる可能性も低く、計算精度の向上にも繋がる。
【図面の簡単な説明】
【0018】
【図1】本実施形態のシミュレーション方法の処理手順の一例を示すフローチャートである。
【図2】(a)は均一構造格子、(b)は不均一構造格子をそれぞれ説明する斜視図である。
【図3】(a)は三次元の構造格子の一つのセルの斜視図、(b)はその正面図である。
【図4】(a)は本発明を説明するための二次元の構造格子の例であり、(b)は均一構造格子、(c)は不均一構造格子の例を示す。
【図5】構造格子の互いのマトリクス要素の関係を示す。
【図6】図5の構造格子の関係を示すパターンをマトリクスで示す。
【図7】図6のマトリクスをブロックごとに示す。
【図8】図7のマトリクスのブロックに番号を付したものを示す。
【図9】図8のマトリクスを3×3のブロックで区分し5×5の三重対角マトリクスで示す。
【図10】(a)、(b)は前記マトリクスを用いた方程式の一例を示す。
【図11】有限差分法を説明する線図である。
【図12】有限差分法の一般式を示す。
【図13】図4(a)に示したk=1の第1のケースについての有限差分法に基づいた方程式を示す。
【図14】図13の方程式を書き直したものである。
【図15】ポアソン方程式を、サイクリックリダクション法を用いて計算する処理手順の一例を示すフローチャートである。
【図16】図14の方程式から誤差rを求める形に書き直したものである。
【図17】誤差を小さくするために修正すべき量φ’corrを求める方程式である。
【図18】φの計算結果を示す。
【図19】2回目の反復計算での誤差rの計算結果を示す。
【図20】2回目の反復計算での誤差を小さくするために修正すべき量φ’corrの計算結果を示す。
【図21】2回目の反復計算でのφの計算結果を示す。
【図22】3回目の反復計算での誤差rの計算結果を示す。
【図23】実施例、比較例の計算に用いられた不均一構造格子の三次元空間モデルの斜視図である。
【図24】格子密度500万個の実施例及び比較例の収束性評価結果を示すグラフである。
【図25】格子密度1000万個の実施例及び比較例の収束性評価結果を示すグラフである。
【図26】格子密度1500万個の実施例及び比較例の収束性評価結果を示すグラフである。
【図27】実施例及び比較例の計算時間を示すグラフである。
【図28】格子密度1000万個のケースで、反復回数を増やしたときの誤差の変化を示すグラフである。
【図29】実施例及び比較例の計算時にアロケートするメモリー容量の比較を示すグラフである。
【図30】(a)、(b)は反復計算の回数を変えたときのポアソン方程式の解を比較した結果を示す。
【図31】1億個の格子で分割されかつ構造格子の不等分割度も高いケースでのテスト結果を示す。
【図32】図31のモデルの収束性評価結果を示す。
【発明を実施するための形態】
【0019】
以下、本発明の実施の一形態が図面に基づき説明される。
図1は、本実施形態のシミュレーション方法の概略を示すフローチャートである。本実施形態のシミュレーション方法は、言うまでもなくコンピュータ装置を用いて行われ、二次元又は三次元空間(図1では三次元空間)内に、均一又は不均一な格子で構成された不均一構造格子のモデルを設定する工程(S1)と、この不均一構造格子のモデルに関連付けられた物理量及び条件に基づいて特定式で表されるポアソン方程式を設定する工程(S2)と、該ポアソン方程式を解くことにより前記物理量を計算する計算工程とを含む(S3)。
【0020】
前記二次元又は三次元空間は、例えば直交座標系、円筒座標系又は極座標系が使用される。前記座標系のいずれのかの二次元又は三次元空間内で、構造格子(オイラーメッシュ)のモデルが設定され、それらの情報がコンピュータ装置(図示省略)に記憶される。このモデルは、格子で分割された空間と、そこに与えられた境界条件や変数などを含み、例えば流体シミュレーションでは流体の流れ場を表す。そして、このモデルから、例えば各格子点での圧力や流速等の物理量が計算される。
【0021】
本明細書において、「均一構造格子」とは、図2(a)に示されるように、前記三次元空間Aに配置されたメッシュの最小単位である各構造格子a1…(この格子が区画する最小空間を「セル」と言うことがある。)が、各次元の軸(三次元の場合、x、y及びz軸)について、一定の長さで分割されたものとする。この直交座標系の例では、結果的に、各セルは同一形状かつ同一容積を持つ。一方、「不均一構造格子」は、図2(b)に示されるように、三次元空間Aに配置された構造格子が、各次元の軸(三次元の場合、x、y及びz軸)のいずれかについて、非一定の長さで分割されたものとする。この直交座標系の例では、各セルは、結果的に容積又は形状が異なる少なくとも2種類の構造格子a2、a3を含んで分割される。
【0022】
不均一構造格子のモデルでは、例えば、図2(b)のように、特定の空間A1をより詳細に解析したい場合、その空間だけを相対的に小さな構造格子a2で分割する一方、詳細な解析が特に必要ない空間A2については、相対的に大きな構造格子a3で分割することができる。従って、不均一構造格子のモデルは、必要な計算精度を維持しつつ計算コストを減じるのに役立つ。
本発明方法は、均一又は不均一構造格子のいずれについても適用可能である。即ち、k≠constantのモデルについても適用することが可能である。
【0023】
次に、工程S2では、前記コンピュータ装置により、下記式(1)のポアソン方程式が設定される。コンピュータ装置は、作業者によって入力された構造格子のモデルの仕様、境界条件及び必要なパラメータに基づいて前記ポアソン方程式を設定する。
【数3】
【0024】
式(1)において、係数kは各格子に定められた定数であり、CFL条件を満たさない、陰解法を用いた場合、非一定である。また、φは計算される変数であり、流体シミュレーションの場合、圧力Pや速度三成分(u、v、w)等になるが、これらを代表して一つのφという変数で示される。さらに、"src"はソースタームの略号であり、流体シミュレーションの場合、質量流束(mass flux)の項となり、通常、上記変数φの関数f(φ)となる。
【0025】
また、上記kは、各構造格子の容積VolをApで除して次のように表すこともできる。
k=Vol/Ap
ここで、Apは、運動量の式(momentum equation)の対角項成分である。また、Apは質量流束の関数であり、この値は一次元の流体シミュレーションの場合、下式のように表すことができ(例えば、「Computational Methods for Fluid Dynamics 3rd Edition」 J.H.Ferziger、M.Peric著)、セル毎に異なる値となる。
Ap=−(AE+AW)+ρ/Δt
ここで、
AE=(ρu/2Δx)−(Γ/Δx2)
Aw=−(ρu/2Δx)−(Γ/Δx2)
ρ:流体の密度(音速以下では一定)、
u:流体の速度
Γ:流体の粘性
上記式において、Apが流体の速度(u)の関数になっている。また、速度uは、一様流でない限り、空間で分布を持っている。従って、k≠constant となることがわかる。他方、陽解法の場合、 k=ρ/Ap、かつ、Ap=ρ/Δt となるため、k=Δtとなる。そして、陽解法の場合、通常、時間刻みΔtは常に一定であるため、k=constant となり得る。
【0026】
また、構造格子が三次元空間に定義された流体シミュレーションを陰解法で解く場合、Apは次のように求められる。先ず、各セルは、図3(a)に示されるように、一つのセル隣り合う6つのセル、即ち、ノース(N)、サウス(S)、ウエスト(W)、イースト(E)、フロント(F)及びバック(B)を持つ。そして、今、各々の隣接するセルの中心(黒丸部分)間の距離を図3(b)に示されるように、「Dist_」に上記括弧内の符号を付して表す。また、セルの上記6つの面N、S、W、E、F及びBは、それぞれの表面積及びこの表面積中心での流体の速度を有し、これらは、「Area_」及び「Velocity_」に上記括弧内の符号を付して表す。そして、各セルの表面での質量流量(「Flux_」に上記括弧内の符号を付して表される。)は、次の式で与えられ、これらは流速が異なるため、質量流量は同一値にはならない。
Flux_N=ρ×Area_N×Velocity_N
Flux_S=ρ×Area_S×Velocity_S
Flux_W=ρ×Area_W×Velocity_W
Flux_E=ρ×Area_E×Velocity_E
Flux_F=ρ×Area_F×Velocity_F
Flux_B=ρ×Area_B×Velocity_B
【0027】
また、流体の粘性をΓで表すと、非対角項成分(非対角要素:off diagonal element)A_*については、以下の式が成り立つ。
A_N=−Γ×(Area_N/Dist_N)+Min(Flux_N,0)
A_S=−Γ×(Area_S/Dist_S)+Min(Flux_S,0)
A_W=−Γ×(Area_W/Dist_W)+Min(Flux_W,0)
A_E=−Γ×(Area_E/Dist_E)+Min(Flux_E,0)
A_F=−Γ×(Area_F/Dist_F)+Min(Flux_F,0)
A_B=−Γ×(Area_B/Dist_B)+Min(Flux_B,0)
なお、上記式において、「Min(Flux_*,0)」は、引数Flux_*がマイナス値ならFlux_*を、プラスの値であれば0をそれぞれ戻り値として返す関数である。
【0028】
上記の変数を用いれば、構造格子が三次元の場合には、Apは、次の式で表すことができる。
Ap=−1×(A_N+A_S+A_W+A_E+A_F+A_B)
ここで、各面の質量流束は同一ではないため、各々のセルのApも異なったものになり、その結果、k≠constant になる。
【0029】
陽解法で解く場合、場合、k=ρ/Ap、 Ap=ρ/Δt となり、k=Δt=constant となるため、下記式(3)のように、ポアソン方程式の外に出せる。従って、この場合のポアソン方程式は、通常、下式のようにkの無い形式になる。一方、陰解法を用いて解く場合、k=Vol/Ap Ap=−(AE+AW)+ρ/Δtとなり、Apは流速(u)の関数となる。通常、場所によって速度は変化しているので、kは一定にならない。このため、kをポアソン方程式の外に出せなくなる。
【数4】
【0030】
そこで、本発明では、式(1)のようなポアソン方程式を、新たな手法で短時間かつ近似的に計算する。具体的には、ブロックサイクリックリダクション法を反復法のように用いて前記ポアソン方程式を近似的に解くことを特徴とする(計算工程S3)。
【0031】
上で述べたように、ブロックサイクリックリダクション法は、直接法であり、1回の計算で殆ど誤差のない解を得ることができる。しかしながら、このブロックサイクリックリダクション法は、本来、k=constantのポアソン方程式を解く事は可能であるが、k≠constantのポアソン方程式を直接解くことはできない。そこで、本実施形態では、誤差の概念を導入し、この誤差を、ブロックサイクリックリダクション法を用いて反復計算し、かつ、補正によって少しずつ小さくする。つまり、結果的に、k≠constantのポアソン方程式を、前記サイクリックリダクション法を利用して少ない回数の反復計算で解くことを可能にしている。
【0032】
以下、陰解法では、何故、ブロックサイクリックリダクション法がそのままでは適用できないのかの説明を含めて、具体的な例を用いて説明する。
【0033】
図4(a)には、二次元空間の例を示す。この例では、二次元空間が横3×縦5の計15の構造格子で分割され、各セルには図のように番号が割り当てられている。なお、この二次元空間の領域は、縦1m×横1mの正方形とする。
【0034】
先ず、2つのケースについてポアソン方程式が設定される。第一のケースは均一構造格子のモデル(図4(b))、第二のケースは不均一構造格子のモデル(図4(c))とする。
【0035】
ここでの目的の一つは、k≠constantのモデル場合、この例題がブロックサイクリックリダクション法を使って解くことができないことを示すことである。なお、この例題において、構造格子の右端の境界Wは、固定された値(=10.0)の条件が定義される。また、残りの3つの境界には0の勾配が与えられる。さらに、ソースタームとして、セル1について−100が、その他のセル2乃至15については0がそれぞれ定義される。なお、この例題は、単なるマトリクス演算であり、実際の物理現象を再現しているものではない。
【0036】
また、上記2つのケースについてkの値がそれぞれ定義される。即ち、図4(b)に示されるように、第1のケースの均一構造格子については全てk=1で一定とする。また、図4(c)に示されるように、第2の不均一構造格子のkは、中央のセルは全て0.75、その両側のセルは全て1.0として非一定とする。
【0037】
また、図5に示される各々の矢印は、これから解くことになるポアソン方程式のマトリクス要素の関係を示している。さらに、図6には、図5の構造格子の関係を示すパターンをマトリクスで示している。縦軸及び横軸の数字は、各セルの番号を意味している。図6から明らかなように、このマトリクスの中において、ゼロでない要素(#で表されている)は、前記の各々の矢印に対応している。さらに、図7から明らかなように、図6のマトリクスの中には、いくつかの3×3のサブマトリクスがあることが分かる。これらのサブマトリクスの一つを、「ブロック」と呼ぶ。また、これらのブロックには、図8に示されるように、名前を付けることとする。
【0038】
さらに、図8のマトリクスを3×3のブロックで区分すると、図9に示されるような5×5の三重対角マトリクスと等価であることがわかる。つまり、図10(a)に示される方程式は、図10(b)の方程式と等価と言える。
【0039】
次に、図10(b)の方程式を解くために、本実施形態では、有限差分法(Finite Difference Method)が用いられる。有限差分法では、例えば図11に示されるように、各セルについて、隣り合う全てのセルとの関係が考慮される。即ち、例えば、セル8について見ると、セル5、7、9及び11との関係が考慮される。また、有限差分法では、「Computational methods for fluid dynamics」Ferziger J H peric 著の50頁等で示されるように、図12で示される一般式が用いられる。
【0040】
ここで、本例題の場合、Δx=1/3≒0.333333m、Δy=1/5=0.2mとなる。よって、これらの値と先に述べた境界条件とを用いることにより、図4(b)に示したk=1の第1のケースについては、図13の方程式に書き表すことができる。同様に、図4(c)に示した第2のケースについては、図14の方程式に書き表すことができる。
【0041】
図13及び図14から明らかなように、第1のケースでは、図8のブロックA2乃至A5に相当する対角のブロックは、Ai=aiIの形式で表すことができる(なお、aiはスカラー,Iは単位マトリクスである。)。しかしながら、図14の第2のケースでは、対角項のブロックA2乃至A5は、Ai=aiIの形式で表すことができない。
【0042】
一方、方程式に(ブロック)サイクリックリダクション法を適用するためには、その方程式が下記の3条件、即ち、A乃至Cのブロックが次の形式であることが必要である(この点については、例えば「A Direct Method for the Discrete Solution of Separable Elliptic Equations」 Paul N Swarztrauber著を参照のこと)。
(条件1)Ai=ai×I
(条件2)Bi=B+bi×I
(条件3)Ci=ci×I
ここで、ai、bi及びciはスカラー,Iは単位マトリクスである。
【0043】
第1及び第2のケースが、上記3条件を満たすか否かについて検討する。第1のケースでは、条件1乃至3を全て満たしている。従って、均一構造格子(k=1で一定)のポアソン方程式については、サイクリックリダクション法を適用し、直接法として計算することができる。しかしながら、第2のケース(k≠一定)では、ブロックA及びCは、スカラー×単位マトリクスの形式にはならないため、上記条件1及び3を満たさない。従って、不均一構造格子(k≠一定)については、そのままでは、(ブロック)サイクリックリダクション法を直接法として適用することはできない。
【0044】
本発明では、上述のような不均一構造格子(k≠一定)のポアソン方程式を、サイクリックリダクション法を反復法的に用いて高速に計算するものであり、その処理手順の一例が図15に示されている。
【0045】
図15に示されるように、本実施形態では、先ず、予め定義された誤差rが計算される。該誤差rは、本来ゼロとなるべきものであるから、下式(4)のように定義されかつ計算される(ステップS31)。なお、この式(4)は、請求項1の式(2)に対応している。
誤差r=src−A・φ …式(4)
ここで、srcは前記ソースターム、符号Aは図14で示したk≠一定のときのポアソン方程式のマトリクス、φは計算される変数であるが初回計算時にはゼロとし、二回目以降は下式(5)で与えられるものとする(この式(5)は、請求項1のφi+1=φi+φ'i+1に相当している。)。
φ=φold+φ’corr …(5)
また、φoldはφの前回計算値、φ’corrは、前記誤差を小さくするために修正すべき量を示す修正パラメータ(請求項1ではφ'i+1で表されている。)であり、下記式(6)で定義される(なお、請求項1の形式では、式(7)で定義される)。
φ’corr=Auni-1・[r/k_bar]
【数5】
【0046】
上記式において、Auni-1は、図13に示した第1のケースの均一構造格子のマトリクスA(すなわち、第2のケースとは境界条件、格子の分割数等は同一であるが、k=一定である点のみが異なる第1のケースの均一構造格子のマトリクス)の逆行列であり、k_barは、各セルのkの平均値である。このφ’corrの計算式において、前記マトリックスAは、サイクリックリダクション法の適用条件1乃至3の全てを満たすので、その逆行列であるマトリックスAuni-1も、適用条件1乃至3の全てを満たす。従って、前記修正パラメータφ’corrの計算には、サイクリックリダクション法を直接法として適用でき、1回の計算で精度良く修正パラメータの解を得ることができる。
【0047】
図14、図16の方程式のように、1回目の計算において、誤差rはソースタームと等しくなる。この例題では、誤差rの総和Σ|ri|は100+90×5=550である。
【0048】
次に、本実施形態では、誤差rの総和Σ|ri|が予め定めた許容範囲か否かが判断され(ステップS32)。そして、許容範囲内であれば処理を終える(ステップS32でY)。
【0049】
他方、誤差rの総和Σ|ri|が許容範囲内でない場合(ステップS32でN)、上記式に基づいてφ’corr、及び新たなφが計算され、ステップS31に戻って誤差rが再度計算される。図17には、このような方程式が示される。また、図18には、変数φの計算結果が示されている。
【0050】
以上のステップが、誤差rの総和が許容範囲内になるまで反復計算される。例えば、図19乃至図21には、2回目のイタレーションを実行した結果が示される。このときの誤差rの総和は68.7509である。
【0051】
さらに、図22には、3回目の反復計算を実行したときの誤差rの計算式が示されている。このときの誤差rの総和は8.8669である。このように、わずか3回のイタレーションを実行することで、誤差rの総和を顕著に減らすことができる。そして、この誤差rの総和が予め定めた許容範囲内になったときの変数φ(請求項1の式(2)ではφi+1)が求めようとする解である。この許容範囲については、シミュレーションの内容や目的に応じて適宜決定することができる。
【0052】
以上の説明から明らかなように、ポアソン方程式を、陰解法を用いて解くときには、k≠constantとなり、直接法であるサイクリックリダクション法でそのまま解くことはできない。しかしながら、前記した誤差の概念を導入し、この誤差の計算に、不均一構造格子モデル(k≠constant)の境界条件と同じ条件の均一構造格子モデル(即ち、k=constant)のマトリックスの逆行列を用いることで、サイクリックリダクション法を適用可能とし、かつ、この誤差を補正によって少しずつ小さくすることで、結果的に、k≠constantのポアソン方程式を、サイクリックリダクション法を利用して計算可能としている。従って、AMGソルバーなどを用いた場合に比して、少ないメモリーで計算時間及び計算コストを大幅に低減することができる。
【0053】
上記実施形態では、前記構造格子は、二次元のものを示したが、三次元空間として設定されてもよい。この場合、前記計算工程では、予め前記式(1)の方程式をフーリエ変換する。これにより、式(1)のマトリックスの次元数を二次元に落とすことができ、以降は、上で説明した手順がそのまま適用できる。
【0054】
具体的に説明すると、上記式(7)は、行列式で表すと、式(8)のようになる。なお、式(8)の各要素Tiは、例えば図14のマトリクスAを意味している。
【数6】
【0055】
上記式(8)のマトリクスを、フーリエ変換すると、式(9)のマトリクスに変換できる。
【数7】
【0056】
式(9)の一つ一つの要素を抜き出すと、式(10)のように表せ、この要素は、ブロックサイクリックリダクション法を用いて上記手順にて計算することができる。なお、
上記式(8)のΦiは、φが集まって、一回り大きくなったマトリクスを、ブロックとして捉えて表現されたものである。
【0057】
また、
式(8)で使われている符号siは、ソースタームであり、[ri/k_bar]に相当する。さらに、式(8)の4×4の行列が、前記Auni-1 に相当する。なお、式(9)及び(10)のチルダは、フーリエ空間に行ったことを示す。
【実施例】
【0058】
以下、本発明をより具現化した実施例について説明する。
<実施例>
本発明方法を適用して不均一構造格子モデルのポアソン方程式を計算する。
<比較例1>
Fluent(ver.6.3.26)に搭載されているAMG法ソルバー(Additive corrective Multi-Grid, Coarsen by 2 cells, Pre-smoothing iteration=0, post smoothing iterations =2, smoother = ガウス・ザイデル, V-cycle )を用いて、実施例と同一の不均一構造格子モデルのポアソン方程式を計算する。
【0059】
<評価方法>
実施例及び比較例のテストに使用した計算機の仕様は次の通りである。
ハードウエア:HP社のデスクトップマシン(HP xw9300 Workstation /CPU AMD Dual-core Opteron275 (2.2GHz))
OS:Linux(x86_64-redhat-linux)
メモリー搭載量:32GB
実施例のプログラムソフトはC++で作成されている。また、上記ハードウエアのCPUは2つのコアが搭載されているが、計算は一つのコアだけで実行させている。
【0060】
<問題設定>
図23には、実施例、比較例の計算に用いられた不均一構造格子の三次元空間モデルが示される。該モデルは円筒状をなし、ポアソン方程式の係数kは、空間における格子の座標の関数として、k=√(x2+y2+z2)として定義されている。従って、実施例、比較例では、下記の式(11)のポアソン方程式を計算することになる。
【数8】
【0061】
また、空間の格子密度は、500万個、1000万個及び1500万個の3つのケースとした。そして、誤差が最初の計算値の1/1000になるまでに要する反復回数及び計算時間が評価された。
【0062】
<テスト結果>
収束性評価結果(最初のステップでの誤差の値を1で表している。)は図24乃至図26に示される通りである。各セルの誤差は先に述べた通り、例えばsrc−A・φで表され、 誤差の総和はΣ|ri| で表される。
【0063】
テストの結果、FluentのAMG法ソルバーを使用した比較例では、1.0E-3まで誤差を減らすのに、最低4回の反復計算が必要になった。一方、実施例では、全てのモデルにおいて3回で1.0E-3よりも小さな誤差になっていることが確認できる。また、計算時間の比較を図27に示すが、実施例は、比較例の約半分以下の短い時間で収束解が得られていることが分かる。
【0064】
次に、格子密度1000万個のモデルについて、さらに反復計算の回数を増やすと、誤差の値がどうなるかを調べた。結果は、図28に示される通りである。実施例では、リニアに誤差を小さくできるが、比較例では途中からほとんど誤差が減らなくなることが分かる。これも、本発明の利点の一つである。
【0065】
さらに、図29には、各実施例での計算にアロケートされるメモリー容量の比較が示される。格子数をNとすると、比較例の必要なArrayは、7×N×2=14Nとなる。一方、 実施例の必要なArrayは、9×Nである。従って、実施例は比較例の約65%のメモリー使用量で計算できることが分かる。
【0066】
次に、それぞれのポアソン方程式の解を比較した結果が、図30(a)及び(b)に示される。理論的には全ての領域における値が100になっているのが正解である。図30のから明らかなように、実施例では3回反復計算させると、既に収束解の100が得られている。しかし、比較例では2000回反復させても100未満であり、誤差が小さくなっていないことがわかる。
【0067】
さらに、大規模(1億個)の格子で分割されかつ構造格子の不等分割度も高いケースでのテスト結果を示す。不均一構造格子のモデルは図31に示される通りである。また、ポアソン方程式は、先の例と同じ形である。収束性評価結果(最初のステップでの誤差値を1としている)は図32に示される通りである。
【0068】
実施例では、この様に大規模なマトリクスにおいても、たったの5回の反復計算で、誤差を1×E-8まで減少させることができる。この大規模問題で、この様な速さで収束解を得るのは、本発明手法を用いない限り不可能であろう。さらに、反復計算を継続することにより、反復回数12回で1.0E-10を超すところまで誤差を減じうることが分かる。大規模問題で、ここまで誤差を小さくできるポアソン方程式の処理手順は、皆無であると言える。
【符号の説明】
【0069】
A 構造格子モデル
【技術分野】
【0001】
本発明は、例えばコンピュータを用いた流体解析等に好適に使用できる構造格子を用いたシミュレーション方法に関する。
【背景技術】
【0002】
任意の空間を流れる流体を解析する場合、コンピュータを用いたシミュレーションが行われる。このシミュレーションでは、任意の三次元空間を、構造格子を用いてメッシュ化し、各格子点での流体の圧力、温度及び/又は流速等が計算される。そして、この中の圧力に関する方程式は、流体を非圧縮であると定義できる場合、通常、ポアソン方程式を解くことにより行われる。
【0003】
前記ポアソン方程式の計算方法として、例えばヤコビ法、ガウス・ザイデル法、SOR法などの反復法が知られている。反復法は、初期値を与え(手順1)、反復計算を行い(手順2)、収束判定条件を満たす解になるまで手順2を繰り返す(手順3)、ことで行われる。しかしながら、上記方法は、解くべきマトリクスサイズが大きくなると、極端に収束性が悪化し、多くの時間を必要とする。
【0004】
このため、近年では、反復数がメッシュ規模に依存しないよう、AMG(Algebraic Multigrid Methods)法が多用される傾向がある。周知のように、AMG法は、直交格子だけでなく非構造格子も解くことができるように、幾何マルチグリッド法を拡張したものである。AMG法は、マルチグリッド法と同様、反復数がメッシュサイズに依存しないという特徴があるため、現在、最も高速な連立一次方程式の解法と言え、市販されている汎用ソルバーにも、多く採用されている(例えば、ANSYS社の「Fluent」、CD−adapco社の「STAR−CD」等)。
【0005】
しかしながら、AMG法は、大規模マトリクスを解くときの収束性に優れる一方、コンピュータに大規模なメモリーサイズを要求する。このため、大きなメモリーを搭載したコンピュータでなければ、AMG法で大規模な計算ができないという問題があった。
【0006】
一方、必要なメモリーサイズが少なくても大規模マトリクスの計算が可能で収束性の良い方法として、直接法の一つであるブロックサイクリックリダクション法が知られている。しかしながら、ブロックサイクリックリダクション法は、ポアソン方程式(例えば請求項1の式1)で、kが不変量(constant value)である場合を前提としており、kが一定値ではなく、マトリクスの中で一カ所でも違う値をとってしまい、マトリクスの外に出せない様なケースでは、ブロックサイクリックリダクション法)を用いて解く事はできない。
【0007】
従って、ブロックサイクリックリダクション法を正しく適用するためには、シミュレーションで用いられるkの値を一定にすること、つまり、陽解法を用いる(クーラン条件(CFL条件)を守る)必要があり、計算時の時間刻み幅を小さくとる必要があるので、計算コストが大きくなってしまうという欠点がある。
【0008】
なお、CFL条件(Courant-Friedrichs-Lewy Condition)とは、コンピュータシミュレーションの計算(数値解析)において、「情報が伝播する速さ」を「実際の現象で波や物理量が伝播する速さ」よりも早くしなければならないという必要条件のことである。例えば、離散格子系において波動を扱う場合に、その運動方程式の数値解を求める際に用いる時間ステップ(Δt)の値は、実際の波動が隣り合う格子に伝達するまでの時間よりも小さくなければならない。もし(Δt)の値がCFL条件の上限を超えると、数値発散が生じてしまい、物理的に意味の無い解を得てしまう。また、格子の間隔が小さくなると、時間ステップの上限値も減少する。そして、実際の波(特性速度)の速さをC、計算上の時間ステップ幅をΔt、格子幅をΔxとすれば、 移流方程式等の場合、 Δx/Δt>C (情報が伝播する速さ>実際の波等の速さ)がCFL条件となる。このCFL条件は、陽解法の時間進展を行う際に用いられる条件であり、この条件を回避するために、しばしば陰解法が用いられる場合がある。 陰解法を用いることでCFL条件を回避しかつ緩和できる理由としては様々な説明が存在するが、最も簡潔に説明すると、陽解法は1ステップ前の自分の周りのごくわずかな格子点のみから情報を得て 次の時間の値を決めるのに対して、陰解法は1ステップ前の(ほぼ)全ての格子点の情報を処理して 次の時間の値を決めるためであり、CFL条件におけるΔxが実質的に巨大になるためである。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平5−135091号公報
【特許文献2】特開2000−293508号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、以上のような問題点に鑑み案出なされたもので、二次元又は三次元空間内に、均一又は不均一構造格子を設定し、この構造格子に関連付けられた物理量及び条件に基づいて特定形式のポアソン方程式を設定し、このポアソン方程式を、ブロックサイクリックリダクション法を近似的に計算することを基本として、不均一構造格子を前提とするポアソン方程式についても小さなメモリーサイズのコンピュータで迅速に計算することが可能な不均一構造格子を用いたシミュレーション方法を提供することを目的としている。
【課題を解決するための手段】
【0011】
本発明のうち請求項1記載の発明は、二次元又は三次元空間内に、構造格子のモデルを設定する工程と、
この構造格子のモデルに関連付けられた物理量及び条件に基づいて式(1)のポアソン方程式を設定する工程と、
該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、
前記計算工程は、式(2)で定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、
この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、
前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記式(1)のポアソン方程式を近似的に解くことを特徴とする。
【数2】
【0012】
また請求項2記載の発明は、構造格子は、二次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法である。
【0013】
また請求項3記載の発明は、前記構造格子は、三次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法である。
【0014】
また請求項4記載の発明では、前記計算工程は、予め前記式(2)の方程式をフーリエ変換することによって、次元数を二次元に落とすことを特徴とする請求項3記載の構造格子を用いたシミュレーション方法である。
【発明の効果】
【0015】
本発明によれば、二次元又は三次元空間内に、構造格子で空間を離散化したモデルを設定する工程と、この構造格子のモデルに関連付けられた物理量及び条件に基づいて特定のポアソン方程式を設定する工程と、該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、前記計算工程は、式(2)で定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記式(1)のポアソン方程式を近似的に解くことを特徴とする。
【0016】
即ち、ブロックサイクリックリダクション法は直接法であり、本来では、1回の計算で誤差のほとんど無い解が得られるが、k≠constant型のポアソン方程式については、ブロックサイクリックリダクション法の適用条件を満たさず、そのような計算はできない。しかし、本発明では、誤差の概念を導入し、この誤差を、ブロックサイクリックリダクション法を用いて反復計算し、補正によって少しずつ小さくすることを特徴の一つとする。つまり、結果的に、k≠constant型のポアソン方程式を、前記ブロックサイクリックリダクション法を利用して少ない反復回数で解くことを可能にしている。
【0017】
従って、k≠constantを前提とするポアソン方程式についても、ブロックサイクリックリダクション法を適用できるため、小さなメモリーサイズのコンピュータで計算することができ、かつ、陰解法を適用できる様になるため、大きな時間刻み幅で非定常計算を実施できる様になる。このため、本発明方法では、計算コストの削減にもつながる。これにより、例えば複雑な乱流が生じる空気流体解析等を、高い空間解像度、時間解像度で解くことができ、ゴルフボールのディンプル開発等において、効率化やコスト削減に役立つ。また、ブロックサイクリックリダクション法では、反復回数が少ないため、計算結果に桁落ち等による計算誤差が積み上がる可能性も低く、計算精度の向上にも繋がる。
【図面の簡単な説明】
【0018】
【図1】本実施形態のシミュレーション方法の処理手順の一例を示すフローチャートである。
【図2】(a)は均一構造格子、(b)は不均一構造格子をそれぞれ説明する斜視図である。
【図3】(a)は三次元の構造格子の一つのセルの斜視図、(b)はその正面図である。
【図4】(a)は本発明を説明するための二次元の構造格子の例であり、(b)は均一構造格子、(c)は不均一構造格子の例を示す。
【図5】構造格子の互いのマトリクス要素の関係を示す。
【図6】図5の構造格子の関係を示すパターンをマトリクスで示す。
【図7】図6のマトリクスをブロックごとに示す。
【図8】図7のマトリクスのブロックに番号を付したものを示す。
【図9】図8のマトリクスを3×3のブロックで区分し5×5の三重対角マトリクスで示す。
【図10】(a)、(b)は前記マトリクスを用いた方程式の一例を示す。
【図11】有限差分法を説明する線図である。
【図12】有限差分法の一般式を示す。
【図13】図4(a)に示したk=1の第1のケースについての有限差分法に基づいた方程式を示す。
【図14】図13の方程式を書き直したものである。
【図15】ポアソン方程式を、サイクリックリダクション法を用いて計算する処理手順の一例を示すフローチャートである。
【図16】図14の方程式から誤差rを求める形に書き直したものである。
【図17】誤差を小さくするために修正すべき量φ’corrを求める方程式である。
【図18】φの計算結果を示す。
【図19】2回目の反復計算での誤差rの計算結果を示す。
【図20】2回目の反復計算での誤差を小さくするために修正すべき量φ’corrの計算結果を示す。
【図21】2回目の反復計算でのφの計算結果を示す。
【図22】3回目の反復計算での誤差rの計算結果を示す。
【図23】実施例、比較例の計算に用いられた不均一構造格子の三次元空間モデルの斜視図である。
【図24】格子密度500万個の実施例及び比較例の収束性評価結果を示すグラフである。
【図25】格子密度1000万個の実施例及び比較例の収束性評価結果を示すグラフである。
【図26】格子密度1500万個の実施例及び比較例の収束性評価結果を示すグラフである。
【図27】実施例及び比較例の計算時間を示すグラフである。
【図28】格子密度1000万個のケースで、反復回数を増やしたときの誤差の変化を示すグラフである。
【図29】実施例及び比較例の計算時にアロケートするメモリー容量の比較を示すグラフである。
【図30】(a)、(b)は反復計算の回数を変えたときのポアソン方程式の解を比較した結果を示す。
【図31】1億個の格子で分割されかつ構造格子の不等分割度も高いケースでのテスト結果を示す。
【図32】図31のモデルの収束性評価結果を示す。
【発明を実施するための形態】
【0019】
以下、本発明の実施の一形態が図面に基づき説明される。
図1は、本実施形態のシミュレーション方法の概略を示すフローチャートである。本実施形態のシミュレーション方法は、言うまでもなくコンピュータ装置を用いて行われ、二次元又は三次元空間(図1では三次元空間)内に、均一又は不均一な格子で構成された不均一構造格子のモデルを設定する工程(S1)と、この不均一構造格子のモデルに関連付けられた物理量及び条件に基づいて特定式で表されるポアソン方程式を設定する工程(S2)と、該ポアソン方程式を解くことにより前記物理量を計算する計算工程とを含む(S3)。
【0020】
前記二次元又は三次元空間は、例えば直交座標系、円筒座標系又は極座標系が使用される。前記座標系のいずれのかの二次元又は三次元空間内で、構造格子(オイラーメッシュ)のモデルが設定され、それらの情報がコンピュータ装置(図示省略)に記憶される。このモデルは、格子で分割された空間と、そこに与えられた境界条件や変数などを含み、例えば流体シミュレーションでは流体の流れ場を表す。そして、このモデルから、例えば各格子点での圧力や流速等の物理量が計算される。
【0021】
本明細書において、「均一構造格子」とは、図2(a)に示されるように、前記三次元空間Aに配置されたメッシュの最小単位である各構造格子a1…(この格子が区画する最小空間を「セル」と言うことがある。)が、各次元の軸(三次元の場合、x、y及びz軸)について、一定の長さで分割されたものとする。この直交座標系の例では、結果的に、各セルは同一形状かつ同一容積を持つ。一方、「不均一構造格子」は、図2(b)に示されるように、三次元空間Aに配置された構造格子が、各次元の軸(三次元の場合、x、y及びz軸)のいずれかについて、非一定の長さで分割されたものとする。この直交座標系の例では、各セルは、結果的に容積又は形状が異なる少なくとも2種類の構造格子a2、a3を含んで分割される。
【0022】
不均一構造格子のモデルでは、例えば、図2(b)のように、特定の空間A1をより詳細に解析したい場合、その空間だけを相対的に小さな構造格子a2で分割する一方、詳細な解析が特に必要ない空間A2については、相対的に大きな構造格子a3で分割することができる。従って、不均一構造格子のモデルは、必要な計算精度を維持しつつ計算コストを減じるのに役立つ。
本発明方法は、均一又は不均一構造格子のいずれについても適用可能である。即ち、k≠constantのモデルについても適用することが可能である。
【0023】
次に、工程S2では、前記コンピュータ装置により、下記式(1)のポアソン方程式が設定される。コンピュータ装置は、作業者によって入力された構造格子のモデルの仕様、境界条件及び必要なパラメータに基づいて前記ポアソン方程式を設定する。
【数3】
【0024】
式(1)において、係数kは各格子に定められた定数であり、CFL条件を満たさない、陰解法を用いた場合、非一定である。また、φは計算される変数であり、流体シミュレーションの場合、圧力Pや速度三成分(u、v、w)等になるが、これらを代表して一つのφという変数で示される。さらに、"src"はソースタームの略号であり、流体シミュレーションの場合、質量流束(mass flux)の項となり、通常、上記変数φの関数f(φ)となる。
【0025】
また、上記kは、各構造格子の容積VolをApで除して次のように表すこともできる。
k=Vol/Ap
ここで、Apは、運動量の式(momentum equation)の対角項成分である。また、Apは質量流束の関数であり、この値は一次元の流体シミュレーションの場合、下式のように表すことができ(例えば、「Computational Methods for Fluid Dynamics 3rd Edition」 J.H.Ferziger、M.Peric著)、セル毎に異なる値となる。
Ap=−(AE+AW)+ρ/Δt
ここで、
AE=(ρu/2Δx)−(Γ/Δx2)
Aw=−(ρu/2Δx)−(Γ/Δx2)
ρ:流体の密度(音速以下では一定)、
u:流体の速度
Γ:流体の粘性
上記式において、Apが流体の速度(u)の関数になっている。また、速度uは、一様流でない限り、空間で分布を持っている。従って、k≠constant となることがわかる。他方、陽解法の場合、 k=ρ/Ap、かつ、Ap=ρ/Δt となるため、k=Δtとなる。そして、陽解法の場合、通常、時間刻みΔtは常に一定であるため、k=constant となり得る。
【0026】
また、構造格子が三次元空間に定義された流体シミュレーションを陰解法で解く場合、Apは次のように求められる。先ず、各セルは、図3(a)に示されるように、一つのセル隣り合う6つのセル、即ち、ノース(N)、サウス(S)、ウエスト(W)、イースト(E)、フロント(F)及びバック(B)を持つ。そして、今、各々の隣接するセルの中心(黒丸部分)間の距離を図3(b)に示されるように、「Dist_」に上記括弧内の符号を付して表す。また、セルの上記6つの面N、S、W、E、F及びBは、それぞれの表面積及びこの表面積中心での流体の速度を有し、これらは、「Area_」及び「Velocity_」に上記括弧内の符号を付して表す。そして、各セルの表面での質量流量(「Flux_」に上記括弧内の符号を付して表される。)は、次の式で与えられ、これらは流速が異なるため、質量流量は同一値にはならない。
Flux_N=ρ×Area_N×Velocity_N
Flux_S=ρ×Area_S×Velocity_S
Flux_W=ρ×Area_W×Velocity_W
Flux_E=ρ×Area_E×Velocity_E
Flux_F=ρ×Area_F×Velocity_F
Flux_B=ρ×Area_B×Velocity_B
【0027】
また、流体の粘性をΓで表すと、非対角項成分(非対角要素:off diagonal element)A_*については、以下の式が成り立つ。
A_N=−Γ×(Area_N/Dist_N)+Min(Flux_N,0)
A_S=−Γ×(Area_S/Dist_S)+Min(Flux_S,0)
A_W=−Γ×(Area_W/Dist_W)+Min(Flux_W,0)
A_E=−Γ×(Area_E/Dist_E)+Min(Flux_E,0)
A_F=−Γ×(Area_F/Dist_F)+Min(Flux_F,0)
A_B=−Γ×(Area_B/Dist_B)+Min(Flux_B,0)
なお、上記式において、「Min(Flux_*,0)」は、引数Flux_*がマイナス値ならFlux_*を、プラスの値であれば0をそれぞれ戻り値として返す関数である。
【0028】
上記の変数を用いれば、構造格子が三次元の場合には、Apは、次の式で表すことができる。
Ap=−1×(A_N+A_S+A_W+A_E+A_F+A_B)
ここで、各面の質量流束は同一ではないため、各々のセルのApも異なったものになり、その結果、k≠constant になる。
【0029】
陽解法で解く場合、場合、k=ρ/Ap、 Ap=ρ/Δt となり、k=Δt=constant となるため、下記式(3)のように、ポアソン方程式の外に出せる。従って、この場合のポアソン方程式は、通常、下式のようにkの無い形式になる。一方、陰解法を用いて解く場合、k=Vol/Ap Ap=−(AE+AW)+ρ/Δtとなり、Apは流速(u)の関数となる。通常、場所によって速度は変化しているので、kは一定にならない。このため、kをポアソン方程式の外に出せなくなる。
【数4】
【0030】
そこで、本発明では、式(1)のようなポアソン方程式を、新たな手法で短時間かつ近似的に計算する。具体的には、ブロックサイクリックリダクション法を反復法のように用いて前記ポアソン方程式を近似的に解くことを特徴とする(計算工程S3)。
【0031】
上で述べたように、ブロックサイクリックリダクション法は、直接法であり、1回の計算で殆ど誤差のない解を得ることができる。しかしながら、このブロックサイクリックリダクション法は、本来、k=constantのポアソン方程式を解く事は可能であるが、k≠constantのポアソン方程式を直接解くことはできない。そこで、本実施形態では、誤差の概念を導入し、この誤差を、ブロックサイクリックリダクション法を用いて反復計算し、かつ、補正によって少しずつ小さくする。つまり、結果的に、k≠constantのポアソン方程式を、前記サイクリックリダクション法を利用して少ない回数の反復計算で解くことを可能にしている。
【0032】
以下、陰解法では、何故、ブロックサイクリックリダクション法がそのままでは適用できないのかの説明を含めて、具体的な例を用いて説明する。
【0033】
図4(a)には、二次元空間の例を示す。この例では、二次元空間が横3×縦5の計15の構造格子で分割され、各セルには図のように番号が割り当てられている。なお、この二次元空間の領域は、縦1m×横1mの正方形とする。
【0034】
先ず、2つのケースについてポアソン方程式が設定される。第一のケースは均一構造格子のモデル(図4(b))、第二のケースは不均一構造格子のモデル(図4(c))とする。
【0035】
ここでの目的の一つは、k≠constantのモデル場合、この例題がブロックサイクリックリダクション法を使って解くことができないことを示すことである。なお、この例題において、構造格子の右端の境界Wは、固定された値(=10.0)の条件が定義される。また、残りの3つの境界には0の勾配が与えられる。さらに、ソースタームとして、セル1について−100が、その他のセル2乃至15については0がそれぞれ定義される。なお、この例題は、単なるマトリクス演算であり、実際の物理現象を再現しているものではない。
【0036】
また、上記2つのケースについてkの値がそれぞれ定義される。即ち、図4(b)に示されるように、第1のケースの均一構造格子については全てk=1で一定とする。また、図4(c)に示されるように、第2の不均一構造格子のkは、中央のセルは全て0.75、その両側のセルは全て1.0として非一定とする。
【0037】
また、図5に示される各々の矢印は、これから解くことになるポアソン方程式のマトリクス要素の関係を示している。さらに、図6には、図5の構造格子の関係を示すパターンをマトリクスで示している。縦軸及び横軸の数字は、各セルの番号を意味している。図6から明らかなように、このマトリクスの中において、ゼロでない要素(#で表されている)は、前記の各々の矢印に対応している。さらに、図7から明らかなように、図6のマトリクスの中には、いくつかの3×3のサブマトリクスがあることが分かる。これらのサブマトリクスの一つを、「ブロック」と呼ぶ。また、これらのブロックには、図8に示されるように、名前を付けることとする。
【0038】
さらに、図8のマトリクスを3×3のブロックで区分すると、図9に示されるような5×5の三重対角マトリクスと等価であることがわかる。つまり、図10(a)に示される方程式は、図10(b)の方程式と等価と言える。
【0039】
次に、図10(b)の方程式を解くために、本実施形態では、有限差分法(Finite Difference Method)が用いられる。有限差分法では、例えば図11に示されるように、各セルについて、隣り合う全てのセルとの関係が考慮される。即ち、例えば、セル8について見ると、セル5、7、9及び11との関係が考慮される。また、有限差分法では、「Computational methods for fluid dynamics」Ferziger J H peric 著の50頁等で示されるように、図12で示される一般式が用いられる。
【0040】
ここで、本例題の場合、Δx=1/3≒0.333333m、Δy=1/5=0.2mとなる。よって、これらの値と先に述べた境界条件とを用いることにより、図4(b)に示したk=1の第1のケースについては、図13の方程式に書き表すことができる。同様に、図4(c)に示した第2のケースについては、図14の方程式に書き表すことができる。
【0041】
図13及び図14から明らかなように、第1のケースでは、図8のブロックA2乃至A5に相当する対角のブロックは、Ai=aiIの形式で表すことができる(なお、aiはスカラー,Iは単位マトリクスである。)。しかしながら、図14の第2のケースでは、対角項のブロックA2乃至A5は、Ai=aiIの形式で表すことができない。
【0042】
一方、方程式に(ブロック)サイクリックリダクション法を適用するためには、その方程式が下記の3条件、即ち、A乃至Cのブロックが次の形式であることが必要である(この点については、例えば「A Direct Method for the Discrete Solution of Separable Elliptic Equations」 Paul N Swarztrauber著を参照のこと)。
(条件1)Ai=ai×I
(条件2)Bi=B+bi×I
(条件3)Ci=ci×I
ここで、ai、bi及びciはスカラー,Iは単位マトリクスである。
【0043】
第1及び第2のケースが、上記3条件を満たすか否かについて検討する。第1のケースでは、条件1乃至3を全て満たしている。従って、均一構造格子(k=1で一定)のポアソン方程式については、サイクリックリダクション法を適用し、直接法として計算することができる。しかしながら、第2のケース(k≠一定)では、ブロックA及びCは、スカラー×単位マトリクスの形式にはならないため、上記条件1及び3を満たさない。従って、不均一構造格子(k≠一定)については、そのままでは、(ブロック)サイクリックリダクション法を直接法として適用することはできない。
【0044】
本発明では、上述のような不均一構造格子(k≠一定)のポアソン方程式を、サイクリックリダクション法を反復法的に用いて高速に計算するものであり、その処理手順の一例が図15に示されている。
【0045】
図15に示されるように、本実施形態では、先ず、予め定義された誤差rが計算される。該誤差rは、本来ゼロとなるべきものであるから、下式(4)のように定義されかつ計算される(ステップS31)。なお、この式(4)は、請求項1の式(2)に対応している。
誤差r=src−A・φ …式(4)
ここで、srcは前記ソースターム、符号Aは図14で示したk≠一定のときのポアソン方程式のマトリクス、φは計算される変数であるが初回計算時にはゼロとし、二回目以降は下式(5)で与えられるものとする(この式(5)は、請求項1のφi+1=φi+φ'i+1に相当している。)。
φ=φold+φ’corr …(5)
また、φoldはφの前回計算値、φ’corrは、前記誤差を小さくするために修正すべき量を示す修正パラメータ(請求項1ではφ'i+1で表されている。)であり、下記式(6)で定義される(なお、請求項1の形式では、式(7)で定義される)。
φ’corr=Auni-1・[r/k_bar]
【数5】
【0046】
上記式において、Auni-1は、図13に示した第1のケースの均一構造格子のマトリクスA(すなわち、第2のケースとは境界条件、格子の分割数等は同一であるが、k=一定である点のみが異なる第1のケースの均一構造格子のマトリクス)の逆行列であり、k_barは、各セルのkの平均値である。このφ’corrの計算式において、前記マトリックスAは、サイクリックリダクション法の適用条件1乃至3の全てを満たすので、その逆行列であるマトリックスAuni-1も、適用条件1乃至3の全てを満たす。従って、前記修正パラメータφ’corrの計算には、サイクリックリダクション法を直接法として適用でき、1回の計算で精度良く修正パラメータの解を得ることができる。
【0047】
図14、図16の方程式のように、1回目の計算において、誤差rはソースタームと等しくなる。この例題では、誤差rの総和Σ|ri|は100+90×5=550である。
【0048】
次に、本実施形態では、誤差rの総和Σ|ri|が予め定めた許容範囲か否かが判断され(ステップS32)。そして、許容範囲内であれば処理を終える(ステップS32でY)。
【0049】
他方、誤差rの総和Σ|ri|が許容範囲内でない場合(ステップS32でN)、上記式に基づいてφ’corr、及び新たなφが計算され、ステップS31に戻って誤差rが再度計算される。図17には、このような方程式が示される。また、図18には、変数φの計算結果が示されている。
【0050】
以上のステップが、誤差rの総和が許容範囲内になるまで反復計算される。例えば、図19乃至図21には、2回目のイタレーションを実行した結果が示される。このときの誤差rの総和は68.7509である。
【0051】
さらに、図22には、3回目の反復計算を実行したときの誤差rの計算式が示されている。このときの誤差rの総和は8.8669である。このように、わずか3回のイタレーションを実行することで、誤差rの総和を顕著に減らすことができる。そして、この誤差rの総和が予め定めた許容範囲内になったときの変数φ(請求項1の式(2)ではφi+1)が求めようとする解である。この許容範囲については、シミュレーションの内容や目的に応じて適宜決定することができる。
【0052】
以上の説明から明らかなように、ポアソン方程式を、陰解法を用いて解くときには、k≠constantとなり、直接法であるサイクリックリダクション法でそのまま解くことはできない。しかしながら、前記した誤差の概念を導入し、この誤差の計算に、不均一構造格子モデル(k≠constant)の境界条件と同じ条件の均一構造格子モデル(即ち、k=constant)のマトリックスの逆行列を用いることで、サイクリックリダクション法を適用可能とし、かつ、この誤差を補正によって少しずつ小さくすることで、結果的に、k≠constantのポアソン方程式を、サイクリックリダクション法を利用して計算可能としている。従って、AMGソルバーなどを用いた場合に比して、少ないメモリーで計算時間及び計算コストを大幅に低減することができる。
【0053】
上記実施形態では、前記構造格子は、二次元のものを示したが、三次元空間として設定されてもよい。この場合、前記計算工程では、予め前記式(1)の方程式をフーリエ変換する。これにより、式(1)のマトリックスの次元数を二次元に落とすことができ、以降は、上で説明した手順がそのまま適用できる。
【0054】
具体的に説明すると、上記式(7)は、行列式で表すと、式(8)のようになる。なお、式(8)の各要素Tiは、例えば図14のマトリクスAを意味している。
【数6】
【0055】
上記式(8)のマトリクスを、フーリエ変換すると、式(9)のマトリクスに変換できる。
【数7】
【0056】
式(9)の一つ一つの要素を抜き出すと、式(10)のように表せ、この要素は、ブロックサイクリックリダクション法を用いて上記手順にて計算することができる。なお、
上記式(8)のΦiは、φが集まって、一回り大きくなったマトリクスを、ブロックとして捉えて表現されたものである。
【0057】
また、
式(8)で使われている符号siは、ソースタームであり、[ri/k_bar]に相当する。さらに、式(8)の4×4の行列が、前記Auni-1 に相当する。なお、式(9)及び(10)のチルダは、フーリエ空間に行ったことを示す。
【実施例】
【0058】
以下、本発明をより具現化した実施例について説明する。
<実施例>
本発明方法を適用して不均一構造格子モデルのポアソン方程式を計算する。
<比較例1>
Fluent(ver.6.3.26)に搭載されているAMG法ソルバー(Additive corrective Multi-Grid, Coarsen by 2 cells, Pre-smoothing iteration=0, post smoothing iterations =2, smoother = ガウス・ザイデル, V-cycle )を用いて、実施例と同一の不均一構造格子モデルのポアソン方程式を計算する。
【0059】
<評価方法>
実施例及び比較例のテストに使用した計算機の仕様は次の通りである。
ハードウエア:HP社のデスクトップマシン(HP xw9300 Workstation /CPU AMD Dual-core Opteron275 (2.2GHz))
OS:Linux(x86_64-redhat-linux)
メモリー搭載量:32GB
実施例のプログラムソフトはC++で作成されている。また、上記ハードウエアのCPUは2つのコアが搭載されているが、計算は一つのコアだけで実行させている。
【0060】
<問題設定>
図23には、実施例、比較例の計算に用いられた不均一構造格子の三次元空間モデルが示される。該モデルは円筒状をなし、ポアソン方程式の係数kは、空間における格子の座標の関数として、k=√(x2+y2+z2)として定義されている。従って、実施例、比較例では、下記の式(11)のポアソン方程式を計算することになる。
【数8】
【0061】
また、空間の格子密度は、500万個、1000万個及び1500万個の3つのケースとした。そして、誤差が最初の計算値の1/1000になるまでに要する反復回数及び計算時間が評価された。
【0062】
<テスト結果>
収束性評価結果(最初のステップでの誤差の値を1で表している。)は図24乃至図26に示される通りである。各セルの誤差は先に述べた通り、例えばsrc−A・φで表され、 誤差の総和はΣ|ri| で表される。
【0063】
テストの結果、FluentのAMG法ソルバーを使用した比較例では、1.0E-3まで誤差を減らすのに、最低4回の反復計算が必要になった。一方、実施例では、全てのモデルにおいて3回で1.0E-3よりも小さな誤差になっていることが確認できる。また、計算時間の比較を図27に示すが、実施例は、比較例の約半分以下の短い時間で収束解が得られていることが分かる。
【0064】
次に、格子密度1000万個のモデルについて、さらに反復計算の回数を増やすと、誤差の値がどうなるかを調べた。結果は、図28に示される通りである。実施例では、リニアに誤差を小さくできるが、比較例では途中からほとんど誤差が減らなくなることが分かる。これも、本発明の利点の一つである。
【0065】
さらに、図29には、各実施例での計算にアロケートされるメモリー容量の比較が示される。格子数をNとすると、比較例の必要なArrayは、7×N×2=14Nとなる。一方、 実施例の必要なArrayは、9×Nである。従って、実施例は比較例の約65%のメモリー使用量で計算できることが分かる。
【0066】
次に、それぞれのポアソン方程式の解を比較した結果が、図30(a)及び(b)に示される。理論的には全ての領域における値が100になっているのが正解である。図30のから明らかなように、実施例では3回反復計算させると、既に収束解の100が得られている。しかし、比較例では2000回反復させても100未満であり、誤差が小さくなっていないことがわかる。
【0067】
さらに、大規模(1億個)の格子で分割されかつ構造格子の不等分割度も高いケースでのテスト結果を示す。不均一構造格子のモデルは図31に示される通りである。また、ポアソン方程式は、先の例と同じ形である。収束性評価結果(最初のステップでの誤差値を1としている)は図32に示される通りである。
【0068】
実施例では、この様に大規模なマトリクスにおいても、たったの5回の反復計算で、誤差を1×E-8まで減少させることができる。この大規模問題で、この様な速さで収束解を得るのは、本発明手法を用いない限り不可能であろう。さらに、反復計算を継続することにより、反復回数12回で1.0E-10を超すところまで誤差を減じうることが分かる。大規模問題で、ここまで誤差を小さくできるポアソン方程式の処理手順は、皆無であると言える。
【符号の説明】
【0069】
A 構造格子モデル
【特許請求の範囲】
【請求項1】
二次元又は三次元空間内に、格子で構成された構造格子のモデルを設定する工程と、
この構造格子のモデルに関連付けられた物理量及び条件に基づいて式(1)のポアソン方程式を設定する工程と、
該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、
前記計算工程は、式(2)で定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、
この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、
前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記式(1)のポアソン方程式を近似的に解くことを特徴とする構造格子を用いたシミュレーション方法。
【数1】
【請求項2】
前記構造格子は、二次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法。
【請求項3】
前記構造格子は、三次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法。
【請求項4】
前記計算工程は、予め前記式(2)の方程式をフーリエ変換することによって、次元数を二次元に落とすことを特徴とする請求項3記載の構造格子を用いたシミュレーション方法。
【請求項1】
二次元又は三次元空間内に、格子で構成された構造格子のモデルを設定する工程と、
この構造格子のモデルに関連付けられた物理量及び条件に基づいて式(1)のポアソン方程式を設定する工程と、
該ポアソン方程式に基づいて前記物理量を計算する計算工程とを含み、
前記計算工程は、式(2)で定義される誤差を、ブロックサイクリックリダクション法を用いて計算する誤差計算工程と、
この誤差が予め定めた許容範囲内か否かを判断する工程とを含み、
前記誤差が予め定められた許容範囲内になるまで、変数φを補正パラメータを用いて補正しながら前記誤差計算工程を繰り返すことにより、前記式(1)のポアソン方程式を近似的に解くことを特徴とする構造格子を用いたシミュレーション方法。
【数1】
【請求項2】
前記構造格子は、二次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法。
【請求項3】
前記構造格子は、三次元空間として設定される請求項1記載の構造格子を用いたシミュレーション方法。
【請求項4】
前記計算工程は、予め前記式(2)の方程式をフーリエ変換することによって、次元数を二次元に落とすことを特徴とする請求項3記載の構造格子を用いたシミュレーション方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図32】
【図30】
【図31】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図32】
【図30】
【図31】
【公開番号】特開2012−83958(P2012−83958A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−229824(P2010−229824)
【出願日】平成22年10月12日(2010.10.12)
【出願人】(000183233)住友ゴム工業株式会社 (3,458)
【Fターム(参考)】
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願日】平成22年10月12日(2010.10.12)
【出願人】(000183233)住友ゴム工業株式会社 (3,458)
【Fターム(参考)】
[ Back to top ]