説明

シミュレーション装置、シミュレーション方法及びシミュレーションプログラム

【課題】解適合格子法及び多重格子法を、分木構造を介して接続し、高速かつ効率的にシミュレーション解析を行なうためのシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供する。
【解決手段】流体解析装置20の制御部21は、解適合格子法を用いて計算格子の細分化を行なう。そして、制御部21は、VサイクルAMG法による計算処理を実行するための粗格子の生成処理を実行する。ここでは、制御部21は、処理対象格子を特定し、系譜を用いて1つ上位のレベルの親格子を特定する。そして、この親格子から生成された他の子格子の状態を確認し、各子格子が同じレベルである場合には、分木構造に従って1つ上位のレベルの粗格子に統合し、計算格子を統合して計算手順の記録処理を実行する。そして、このように生成された粗格子を用いて、支配方程式の収束解を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、解適合格子を用いたシミュレーション解析において、高速に計算結果を算出するためのシミュレーション装置、シミュレーション方法及びシミュレーションプログラムに関する。
【背景技術】
【0002】
今日、多様な分野でシミュレーション解析が行われている。このシミュレーション解析では、解析空間に生成した計算格子を用いて、空間の物理法則を表現する方程式群を数値解析により解く。このようなシミュレーション計算では、解析する空間に計算格子を用意し、その計算格子上で、公知の支配方程式(質量保存式、運動量保存式等)を連立させて計算する。
【0003】
この場合、解析精度を高めるためには、格子間隔を密にして計算する。しかし、必要以上に格子点を増やすと、計算量が多くなるため計算時間がかかり、また多くのメモリ容量が必要になり、計算負荷が大きくなる。
【0004】
そこで、物体の周囲等のように物理量の変化の激しい場所については、精度良く解析するために局所的に格子間隔を密にすることがある。解析空間に生成された格子間隔の粗な主格子上に、格子間隔の密な副格子を配置する重畳格子法を利用する試みがなされている(例えば、特許文献1を参照。)。この文献記載の流体解析装置では、流れ場が複雑になると予想される場所の主格子上に、密な格子間隔の副格子を自動的に配置する。具体的には、副格子を主格子上に配置する際、副格子を所定の数用意し、主格子の各格子点における物理量の変化率を計算する。そして、その変化率の大きい順番に格子点に優先順位を付与する。次に、優先順位により格子点に副格子が配置されていない場合には、その格子点から変化率の所定の値までの範囲の格子点を覆うように副格子の領域を決定し、副格子の各格子上の変化率の値に応じて副格子の格子間隔を制御することにより、副格子を自動的に主格子上に配置する。
【0005】
また、効率的な計算のために、解析空間を局所的に細分化するAMR法(Adaptive Mesh Refinement method)を利用する場合もある(例えば、特許文献2を参照。)。この文
献に記載された数値解析装置においては、初期格子データと分割しきい値、削除しきい値と物理量などの各種データやパラメータを記憶する。この数値解析装置の指針値計算手段は、密度などの物理量をもとに指針値を計算し、分割判定手段は分割しきい値と指針値とを比較する。削除判定手段は、削除しきい値と指針値を比較し、指針値が分割しきい値以上であれば、格子分割手段が要素を分割する。指針値が削除しきい値以下であれば、格子削除手段が詳細要素を削除し元のサイズの要素に戻す。更に、遷移要素作成手段は、要素の生成削除で生じた中間節点を解消するための遷移要素を生成する。中間節点が解消された格子について有限要素法により数値解析を行なう。
【0006】
支配方程式は計算格子上の代数方程式(大規模連立方程式)に帰着され、これを解くことにより格子点の物理量が求められる。大規模連立方程式の解法としては一般に反復法が用いられる。反復法には、SOR(Successive Over-Relaxation)法などの古典的反復法やCG(Conjugate-Gradient)法のようなクリロフ部分空間法など様々な解法があるが、中でも多重格子法(Multi Grid:MG法)はその収束効率の高さから注目されている。多重格子法では、格子間隔(粗さ)の異なる複数の格子を用意し、各格子上で緩和法を用いることによって各格子のサイズに応じた残差成分(細かい格子における残差の高周波成分
や粗い格子における残差の低周波成分)を除去する。特に、代数的多重格子法(Algebraic Multi Grid:AMG法)では、幾何的多重格子法に対して、与えられた連立一次方程式の係数行列から粗格子の係数行列を代数的に生成し、予め粗格子を作成する必要がない。
【特許文献1】特開平6−221956号公報(第1頁)
【特許文献2】特開2005−56288号公報(第1頁)
【発明の開示】
【発明が解決しようとする課題】
【0007】
シミュレーション解析においては、上述のように解適合格子法や多重格子法が利用されている。しかし、解適合格子法や多重格子法は別個に検討されており、相互関係を考慮した検討は行なわれていない。
【0008】
本発明は、上記課題を解決するためになされたものであり、その目的は、解適合格子法を用いることにより計算負荷を軽減しながら高精度の解析を実現するシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することにある。更に、解適合格子法の特徴を活かしながら多重格子法を用いることにより、高速かつ効率的にシミュレーション解析を実現することを目的とする。
【課題を解決するための手段】
【0009】
上記問題点を解決するために、請求項1に記載の発明は、解適合格子法及び多重格子法の演算処理手段と分木構造情報記憶手段とを備えたシミュレーション装置であって、前記演算処理手段が、モデルパラメータを取得し、初期の計算格子を生成し、物理量の分布に基づいて、前記初期の計算格子を親格子として、分木法により細分化した子格子を関連付けた分木構造を生成して分木構造情報記憶手段に記録し、前記分木構造情報記憶手段に記録された分木構造において、同じ親格子から生成された子格子であって、リーフ格子となるすべての計算格子を結合して粗格子を生成し、解適合格子法により前記粗格子に基づいて物理量を計算するための計算式を生成し、前記計算式に基づいて物理量を計算した計算結果を取得し、前記分木構造情報記憶手段に記録された分木構造に基づいて細分化された細分格子を取得し、前記細分格子に基づいて物理量を計算するための計算式に対して、前記計算結果を用いて物理量の計算処理を実行することを要旨とする。
【0010】
請求項2に記載の発明は、請求項1に記載のシミュレーション装置において、前記粗格子の生成は、同じ親格子から生成されたすべての子格子がリーフ格子である場合に、すべての子格子を結合して粗格子を生成することを要旨とする。
【0011】
請求項3に記載の発明は、請求項1に記載のシミュレーション装置において、前記粗格子の生成は、同じ親格子から生成された子格子であって、隣接する子格子が存在する場合には、これらの子格子を結合して粗格子を生成することを要旨とする。
【0012】
請求項4に記載の発明は、請求項1〜3のいずれか一つに記載のシミュレーション装置において、前記粗格子に基づいて物理量を計算するための計算式は、前記細分格子の計算式に基づいて代数的多重格子法により生成することを要旨とする。
【0013】
請求項5に記載の発明は、請求項1〜4のいずれか一つに記載のシミュレーション装置において、前記初期の計算格子の細分化は、混相流における異相界面を特定し、この異相界面を含む計算格子を細分化することを要旨とする。
【0014】
請求項6に記載の発明は、解適合格子法及び多重格子法の演算処理手段と分木構造情報記憶手段とを備えたシミュレーション装置を用いてシミュレーション解析を行なう方法であって、前記演算処理手段が、モデルパラメータを取得し、初期の計算格子を生成し、物
理量の分布に基づいて、前記初期の計算格子を親格子として、分木法により細分化した子格子を関連付けた分木構造を生成して分木構造情報記憶手段に記録し、前記分木構造情報記憶手段に記録された分木構造において、同じ親格子から生成された子格子であって、リーフ格子となるすべての計算格子を結合して粗格子を生成し、解適合格子法により前記粗格子に基づいて物理量を計算するための計算式を生成し、前記計算式に基づいて物理量を計算した計算結果を取得し、前記分木構造情報記憶手段に記録された分木構造に基づいて細分化された細分格子を取得し、前記細分格子に基づいて物理量を計算するための計算式に対して、前記計算結果を用いて物理量の計算処理を実行することを要旨とする。
【0015】
請求項7に記載の発明は、解適合格子法及び多重格子法の演算処理手段と分木構造情報記憶手段とを備えたシミュレーション装置を用いてシミュレーション解析を行なうためのプログラムであって、前記演算処理手段を、モデルパラメータを取得し、初期の計算格子を生成し、物理量の分布に基づいて、前記初期の計算格子を親格子として、分木法により細分化した子格子を関連付けた分木構造を生成して分木構造情報記憶手段に記録し、前記分木構造情報記憶手段に記録された分木構造において、同じ親格子から生成された子格子であって、リーフ格子となるすべての計算格子を結合して粗格子を生成し、解適合格子法により前記粗格子に基づいて物理量を計算するための計算式を生成し、前記計算式に基づいて物理量を計算した計算結果を取得し、前記分木構造情報記憶手段に記録された分木構造に基づいて細分化された細分格子を取得し、前記細分格子に基づいて物理量を計算するための計算式に対して、前記計算結果を用いて物理量の計算処理を実行する手段として機能させることを要旨とする。
【0016】
(作用)
請求項1、6又は7に記載の発明によれば、演算処理手段が、モデルパラメータを取得し、初期の計算格子を生成し、物理量の分布に基づいて、初期の計算格子を親格子として、分木法により細分化した子格子を関連付けた分木構造を生成して分木構造情報記憶手段に記録する。そして、分木構造情報記憶手段に記録された分木構造において、同じ親格子から生成された子格子であって、リーフ格子となるすべての計算格子を結合して粗格子を生成する。そして、粗格子に基づいて物理量を計算するための計算式を生成し、計算式に基づいて物理量を計算した計算結果を取得する。次に、分木構造情報記憶手段に記録された分木構造に基づいて細分化された細分格子を取得し、細分格子に基づいて物理量を計算するための計算式に対して、計算結果を用いて物理量の計算処理を実行する。これにより、解適合格子法及び多重格子法を、分木構造を介してシームレスに接続しているため、詳細かつ効率的なシミュレーション計算を行なうことができる。
【0017】
請求項2に記載の発明によれば、粗格子の生成は、同じ親格子から生成されたすべての子格子が揃ったときに結合して粗格子を生成する。これにより、分木構造を利用して粗化することができる。
【0018】
請求項3に記載の発明によれば、粗格子の生成は、同じ親格子から生成された子格子であって、隣接する子格子が存在する場合には、これらの子格子を結合して粗格子を生成する。これにより、粗化のための処理は複雑になるが、より早く収束解を取得することができる。
【0019】
請求項4に記載の発明によれば、粗格子に基づいて物理量を計算するための計算式は、細分格子の計算式に基づいて代数的多重格子法により生成する。これにより、細分格子の計算式を計算するための行列式を用いて、粗格子の方程式を計算するための行列式を効率的に算出することができる。
【0020】
請求項5に記載の発明によれば、初期の計算格子の細分化は、異相界面を特定し、この
異相界面を含む計算格子を細分化する。これにより、異相界面の解析を詳細に行なうことができる。
【発明の効果】
【0021】
本発明によれば、計算負荷を軽減しながら、高精度の解析を実現できる。
【発明を実施するための最良の形態】
【0022】
以下、本発明を具体化した一実施形態を、図1〜図11を用いて説明する。本実施形態では、3次元空間において、混相流における異相界面挙動の解析を目的としたシミュレーション装置、シミュレーション方法及びシミュレーションプログラムとして説明する。
【0023】
本実施形態では、3次元の解析空間を、AMR法を利用して計算格子により細分化する。そして、異相界面が存在する場合には、計算格子を細分化する。例えば、図9に示すように、第1相500(例えば水)に、第2相501(例えば気泡)が混在するような系の場合、異相界面(第1相500と第2相501との界面)では計算格子を密に分割する。
【0024】
本実施形態では、図1に示すように、シミュレーション装置としての流体解析装置20を用いる。流体解析装置20は、シミュレーション解析を実行するコンピュータシステムである。この流体解析装置20は、CPU、RAM、ROM等から構成された制御手段としての制御部21、計算結果データ記憶部22を備える。更に、流体解析装置20は、キーボードやポインティングデバイス等から構成された入力部11や、ディスプレイ等から構成された出力部12を備える。
【0025】
流体解析装置20の制御部21は、演算処理手段211及びメモリ212を含んで構成され、計算格子を用いて後述する処理(初期の計算格子生成段階、分木構造情報の記録段階、粗格子生成段階、連立方程式生成段階、粗格子に基づいて計算処理段階、細分格子取得段階、細分格子に基づいて計算段階の各処理)を行なう。
【0026】
本実施形態では、計算格子の管理には、分木型データ構造を用いる。分木型データ構造では各計算格子が分岐点となり、各計算格子を細分化することによって分木を伸ばしていく。本実施形態では、3次元では計算格子を等方的に8等分する8分木を用いるが、2次元では等方的に4等分する4分木を用いる。基本になる計算格子を「ルート格子(root cell )」、分割される計算格子を「親格子(parent cell )」、分割された計算格子を「子格子(child cell)」、計算格子の世代を「レベル」、末端の計算格子を「リーフ格子(leaf cell )」と呼ぶ。各計算格子は子格子と親格子へのポインタを持ち、分木を辿ることによって各計算格子間を移動する。
【0027】
例えば、図7に示すように、このルート格子RCが細分化されたレベルL1には、細分格子(子格子)が形成される。本実施形態では、計算格子は8分木構造を用いるため、ルート格子RCを細分化した場合には、8個の子格子が生成される。レベルL1の計算格子の細分化を行なった場合には、レベルL2において8個の細分格子(孫格子)が生成され、更に、孫格子の細分化を行なった場合にはレベルL3において8個の細分格子(曾孫格子)が生成される。
【0028】
計算を行なう際には、隣接格子など、任意の位置の計算格子を特定する必要がある。この場合、親子関係を辿って計算格子の位置関係を特定するために「系譜」を用いる。ここで、「系譜」とはルート格子から任意の計算格子まで、どの計算格子を通ってきたかという情報を記憶したものである。図8に示すように、3次元の計算格子においては、親格子内での子格子の位置(xyz)を各方向に「0」又は「1」で表わす。レベル「n」における計算格子C1は、レベル「n+1」において、8個の計算格子C2に細分化される。
この場合、各計算格子C2は、計算格子C1に対するレベル「n+1」において(000)〜(111)により特定される。また、(100)の計算格子C2は、レベル「n+2」において、8個の計算格子C3に細分化される。そして、各レベルでの得られた(xyz)の値を並べることにより、ルート格子に対して各細分格子の位置を特定することができる。
【0029】
メモリ212は分木構造情報記憶手段として機能し、モデルパラメータ、初期分木構造、計算格子及び物理量に関するデータが記憶される。
モデルパラメータデータ領域には、シミュレーション計算を実行するために必要な条件に関するデータが記録される。モデルパラメータとしては、タイムステップの繰り返し回数、反復法の繰り返し回数、収束判定値、流体の物性値(粘度、密度等)、解析領域の形状構造(例えば、CADデータ)等がある。
【0030】
初期分木構造データ領域には、3次元空間に配置された3次元オブジェクトの形状に基づいて生成された格子に関するデータが記録される。
計算格子データ領域には、計算の際に用いる格子に関するデータが記録される。ここでは、各ルート格子を特定するためのデータ、ルート格子から細分化されて生成された計算格子(子格子、孫格子等)を特定するための系譜データが記録される。更に、各計算格子を特定する系譜データに対して、粗格子生成のための順番に関するデータ(計算手順データ)が記録される。
【0031】
物理量データ領域には、計算処理途上での3次元空間内の計算格子における物理量に関するデータが記録される。
また、計算結果データ記憶部22には、各タイムステップにおける計算格子毎に、計算処理により算出された物理量(計算結果)に関するデータが格納される。
【0032】
このように構成されたシステムを用いて行なうシミュレーション計算処理を、図2〜図6に従って説明する。ここでは、まず、計算処理の全体像(図2)を説明する。そして、この計算処理に用いられる初期格子の設定処理(図3)、連立方程式求解処理(図4、図5、図6)を説明する。
【0033】
(計算処理の全体像)
まず、図2を用いて計算処理の全体像を説明する。
流体解析装置20の制御部21は、初期格子の設定処理を実行する(ステップS1−1)。ここでは、後述するように、演算処理手段211が、メモリ212に記憶された初期値(モデルパラメータや物理量初期値)を用いて、計算処理のための計算格子を生成する。
【0034】
そして、流体解析装置20の制御部21は、非定常解析を開始する(ステップS1−2)。これにより、演算処理手段211は、タイムステップ識別子を初期値に設定し、後述する時間変化に伴う流体の動きのシミュレーション計算を実行する。
【0035】
各タイムステップにおいては、流体解析装置20の制御部21は、各タイムステップにおける物理量を算出するための連立方程式(計算式)の作成処理を実行する(ステップS1−3)。具体的には、演算処理手段211は、この系における公知の支配方程式(質量保存式、運動量保存式等)に対して、計算格子の物理量(速度、圧力等)を未知数とする連立代数方程式を生成する。
【0036】
次に、流体解析装置20の制御部21は、連立方程式の求解処理を実行する(ステップS1−4)。本実施形態では、演算処理手段211は、公知の前処理付きクリロフ部分空
間法により解の算出を行なう。ここでは、後述するように粗格子を生成するための計算手順を決定し、この粗格子を用いてVサイクルAMG法をクリロフ部分空間法の前処理に適用する。
【0037】
流体解析装置20の制御部21は、連立方程式の収束解として算出された物理量についてファイル出力処理を実行する(ステップS1−5)。具体的には、演算処理手段211は、計算を行なったタイムステップ識別子に関連付けて、計算格子毎に算出した物理量に関するデータを計算結果データ記憶部22に記録する。
【0038】
次に、流体解析装置20の制御部21は、分木構造の更新処理を実行する(ステップS1−6)。具体的には、演算処理手段211は、先のタイムステップにおいて算出した物理量の勾配を用いて各計算格子の細分化を行なう。本実施例では、演算処理手段211は、算出した物理量に応じて異相界面領域を検出する。異相界面追跡法にはVOF(Volume
of Fluid )法を利用する。VOF法は、計算格子毎に流体の体積占有率であるVOF関数を定義し、VOF関数の輸送方程式を解くことにより界面を追跡する手法である。例えば、図10に示すように、計算格子510において、所定の領域の物理量の勾配が大きい場合には、計算格子520のように細分化を行なう。更に、計算格子520において、所定の領域の物理量の勾配が更に大きい場合には、計算格子530のように細分化を行なう。
【0039】
演算処理手段211は、この界面領域を含む計算格子を8分木により細分化する。細分化された計算格子に界面領域が含まれる場合には、この計算格子を再度、8分木により細分化する。これを、予め定められた階層(レベル)まで繰り返すことにより、分木構造を更新する。
【0040】
流体解析装置20の制御部21は、タイムステップをインクリメントする(ステップS1−7)。具体的には、演算処理手段211は、タイムステップ識別子に対して所定値を加算して、後続のタイムステップのシミュレーション計算処理を実行する。ここでは、予め定められたタイムステップ(タイムステップ識別子の上限値)に達するまで、ステップS1−3〜S1−7の処理を繰り返す。
【0041】
(初期格子の設定処理)
次に、図2を用いて、ステップS1−1における初期格子の設定処理について説明する。
【0042】
まず、流体解析装置20の制御部21は、モデルパラメータの取得処理を実行する(ステップS2−1)。具体的には、演算処理手段211は、解析対象領域について3次元オブジェクトのCADデータを、入力部11を介して取得する。また、演算処理手段211は、タイムステップの繰り返し回数、反復法の繰り返し回数、収束判定値、流体の物性値(粘度、密度等)等に関するデータを、入力部11を介して取得する。そして、演算処理手段211は、取得したデータをモデルパラメータとしてメモリ212に格納する。
【0043】
次に、流体解析装置20の制御部21は、初期格子生成処理を実行する(ステップS2−2)。具体的には、演算処理手段211は、3次元オブジェクトが配置された3次元空間を所定の大きさの初期格子を用いて細分化する。本実施形態では、計算格子の形状として直方体の直交格子を用いる。そして、演算処理手段211は、生成した計算格子の特定情報(計算格子の形状情報、3次元空間における各計算格子の位置情報)をメモリ212に格納する。
【0044】
次に、流体解析装置20の制御部21は、境界格子の細分化処理を実行する(ステップ
S2−3)。ここでは、3次元オブジェクトの形状に対応させて計算格子を細分化する。まず、演算処理手段211は、初期格子では3次元オブジェクトの形状を表現できない領域を特定する。例えば、直交格子を用いる場合には、曲線部分や傾斜部分、微細構造等は初期格子を用いて表現することができない。このため、演算処理手段211は、初期格子を細分化して、3次元オブジェクトへのフィッティングを行なう。
【0045】
具体的には、演算処理手段211は、初期格子を用いて表現できない境界領域を検出して、この領域を含む計算格子を8分木に従って8個の計算格子に細分化する。これにより、第1レベルの細分格子(子格子)が生成される。
【0046】
更に、フィッティングができていない子格子(境界格子)が存在する場合には、この子格子を系譜に基づいて特定し、この子格子を8分木に従って8個の計算格子に細分化して、第2レベルの細分格子(孫格子)を生成する。このように、演算処理手段211は、順次、境界領域の計算格子を細分化する。この細分化は、モデルパラメータにおいて予め設定されたレベルまで繰り返す。
【0047】
そして、流体解析装置20の制御部21は、初期分木構造の記憶処理を実行する(ステップS2−4)。具体的には、演算処理手段211は、初期格子に対して細分化した計算格子について、系譜(レベル情報と配置情報)に関するデータを、初期分木構造データとしてメモリ212に格納する。
【0048】
次に、流体解析装置20の制御部21は、初期値の設定処理を実行する(ステップS2−5)。具体的には、演算処理手段211は、入力部11を介して、流体の物理量の初期値を取得する。ここでは、3次元空間における座標に対して、物理量(流体解析の場合には流体の速度や圧力)に関するデータを取得する。そして、演算処理手段211は、この物理量を初期状態データとして計算結果データ記憶部22に記録する。演算処理手段211は、取得した初期値を、その座標に応じて各計算格子に付与する。
【0049】
次に、流体解析装置20の制御部21は、界面格子の細分化処理を実行する(ステップS2−6)。具体的には、演算処理手段211は、各計算格子に付与した初期値に応じて、異相界面の計算格子の細分化を行なう。ここでも、ステップS2−3の処理と同様に、演算処理手段211は、界面領域を検出して、この領域を含む計算格子を8分木に従って8個の計算格子に細分化する。演算処理手段211は、順次、界面領域の計算格子を細分化する。この細分化は、モデルパラメータにおいて予め設定されたレベルまで繰り返す。具体的には、演算処理手段211は、初期分木構造に対して細分化した計算格子について、系譜(レベル情報と配置情報)に関するデータを、計算格子データとしてメモリ212に格納する。
【0050】
(連立方程式求解処理)
次に、図4を用いて、連立方程式求解処理(ステップS1−4)を説明する。この連立方程式求解処理においては、求解のための粗格子の生成処理(図5)、VサイクルAMG法による計算処理(図6)を実行する。
【0051】
まず、流体解析装置20の制御部21は、離散式に基づいて連立方程式の係数行列と右辺の計算処理を実行する(ステップS3−1)。ここでは、系の支配方程式を計算格子で離散化する。具体的には、演算処理手段211は、計算格子毎に、隣接する計算格子との関係に基づいて、系の支配方程式(質量保存式、運動量保存式)について離散式を生成する。この場合、メモリ212に格納された物理量を用いる。係数行列を「A」、定数項を「b」として解くべき連立方程式「Ax=b」が生成される。
【0052】
次に、流体解析装置20の制御部21は、AMG法による求解のための粗格子の生成処理を実行する(ステップS3−2)。この粗格子の生成処理は、すべての計算格子について、分木構造レベルを粗化した粗格子を生成するための処理である。この粗格子の生成処理を、図5を用いて説明する。
【0053】
流体解析装置20の制御部21は、すべての計算格子毎に粗格子の生成処理を実行し(ステップS4−1)、演算処理手段211は、粗格子の生成処理の処理対象格子を順次、特定する。
【0054】
そして、流体解析装置20の制御部21は、分木構造に従って1つ上位のレベルの粗格子に統合可能かどうかを判断する(ステップS4−2)。具体的には、演算処理手段211は、系譜を用いて、この計算格子の1つ上位のレベルの格子(親格子)を特定する。そして、演算処理手段211は、この親格子から生成された子格子(細分格子)の状態を確認し、これらのすべての細分格子が同じレベルのリーフ格子となる場合には、分木構造に従って1つ上位のレベルの粗格子に統合できると判断する。
【0055】
上位のレベルの粗格子に統合可能な場合(ステップS4−2において「YES」の場合)、流体解析装置20の制御部21は、計算格子を統合して計算手順の記録処理を実行する(ステップS4−3)。具体的には、演算処理手段211は、求解計算時において、分木構造に従って、この親格子から生成された計算格子が同じレベルである場合には、分木構造に従って1つ上位のレベルの粗格子に統合するように、その計算手順を、メモリ212の計算格子データに含めて記録する。
【0056】
一方、子格子が同じレベルになっていないため、上位のレベルの粗格子に統合できない場合(ステップS4−2において「NO」の場合)、流体解析装置20の制御部21は、この計算格子に関する統合処理は行なわない。
【0057】
そして、流体解析装置20の制御部21は、以上の判断処理をすべての格子について、順次、繰り返し実行する(ステップS4−4)。
次に、流体解析装置20の制御部21は、計算格子の粗化のレベルを判定する(ステップS4−5)。ここでは、演算処理手段211は、計算格子が十分に粗いかどうかを確認する。具体的には、メモリ212に、粗格子の生成終了の条件として、計算格子の個数(終了判定個数)に関するデータを記憶させておき、演算処理手段211は、計算格子が終了判定個数以下になったかどうかを判定する。
【0058】
まだ十分に粗くなっていないと判定された場合(ステップS4−5において「NO」の場合)には、流体解析装置20の制御部21は、再度、最初からステップS4−1からの処理を繰り返す。一方、十分に粗くなっていると判定された場合(ステップS4−5において「YES」の場合)には、流体解析装置20の制御部21は、求解のための粗格子の生成処理を終了する。ここで、AMG法によりVサイクルを実行する場合の段数が決定される。この段数はメモリ212に記憶させておく。
【0059】
そして、図4に示すように、流体解析装置20の制御部21は、前処理付きクリロフ部分空間法処理を実行する(ステップS3−3)。本実施形態では、連立方程式の解法としては、BiCGSTAB法を利用する。前処理としては、AMG法によりVサイクルを実行し、前処理付きクリロフ部分空間法により誤差が、メモリ212に記憶された収束判定値以下になるまで計算を繰り返す。
【0060】
次に、VサイクルAMG法による計算処理を、図6を用いて説明する。
流体解析装置20の制御部21は、緩和法を適用して近似解の計算処理を実行する(ス
テップS5−1)。緩和法では、異なる粗さの計算格子を複数、用意しておき、緩和プロセスの途中で粗い計算格子に移り、誤差を早く収束させる。計算格子のサイズと同程度の波長の誤差成分が最も減衰しやすいので、波長の長い誤差を減衰させるには、大きなサイズの粗格子が有効である。
【0061】
次に、流体解析装置20の制御部21は、計算格子の粗さの判断処理を実行する(ステップS5−2)。具体的には、演算処理手段211は、予め設定された段数(例えば、5段)に達したかどうかを、粗格子のレベルに基づいて判定する。
【0062】
最も粗い格子に達していないと判定された場合(ステップS5−2において「NO」の場合)には、流体解析装置20の制御部21は、次の粗格子の取得処理を実行する(ステップS5−3)。具体的には、演算処理手段211は、図5に示した粗格子の生成処理において算出した計算手順に従って、次回の計算に用いる粗格子を取得する。ここでは、例えば、図11に示すように、構造格子600、構造格子610、構造格子620、構造格子630、構造格子640、構造格子650のように、順次、計算格子の粗化を行なう。
【0063】
次に、流体解析装置20の制御部21は、近似解に対する残差を計算し、粗格子への制限補間処理を実行する(ステップS5−4)。係数行列を「A」、定数項を「b」として解くべき連立方程式を「Ax=b」とおく。近似解を「x’」とし、そのときの残差を「r’」とした場合、「r’=b−Ax’」となる。演算処理手段211は、この残差を粗格子に制限補間する。ここで、真の解「x」と近似解「x’」との差を「δx」とした場合、修正方程式「Aδx=r’」が成り立つ。そして、ステップS5−1に戻り、修正方程式を用いて計算処理を繰り返す。
【0064】
一方、最も粗い格子に達したと判定された場合(ステップS5−2において「YES」の場合)には、最も粗い計算格子(n)上の修正方程式の解x(n)が算出される。そこで、流体解析装置20の制御部21は、細分格子の取得処理を実行する(ステップS5−5)。具体的には、図5に示した粗格子の生成処理において算出した計算手順を遡って、次回の計算に用いる細分格子を取得する。
【0065】
流体解析装置20の制御部21は、解を細分格子に延長補間する(ステップS5−6)。具体的には、演算処理手段211は、解x(n)を一つ細かい計算格子(n−1)に延長補間する。
【0066】
そして、流体解析装置20の制御部21は、緩和法を適用して近似解の計算処理を実行する(ステップS5−7)。具体的には、演算処理手段211は、「x(n−1)+x(n)」を初期値として、計算格子(n−1)における修正方程式を緩和する。
【0067】
そして、流体解析装置20の制御部21は、最も細かい格子かどうかの判定処理を実行する(ステップS5−8)。最も細かい格子に達していないと判定された場合(ステップS5−8において「NO」の場合)には、流体解析装置20の制御部21は、次の細分格子の取得処理を実行する(ステップS5−5)。ここでは、例えば、図11に示すように、構造格子650、構造格子640、構造格子630、構造格子620、構造格子610、構造格子600のように、順次、計算格子の細分化を行なう。
【0068】
一方、最も細かい格子に達したと判定された場合(ステップS5−8において「YES」の場合)には、流体解析装置20の制御部21は、VサイクルAMG法による計算処理を終了する。
【0069】
以上、本実施形態によれば、以下に示す効果を得ることができる。
・ 上記実施形態では、AMR法及びAMG法を、分木構造を介してシームレスに接続しているため、詳細かつ効率的なシミュレーション計算を行なうことができる。すなわち、解析空間全体を細分化したのでは、膨大なメモリ容量、計算時間が必要になるが、AMR法を適用することにより、界面近傍のみを細分化して、計算負荷を軽減することができる。そして、AMG法により収束解を計算する場合、分木構造を用いて効率的に粗化を行なうことができる。
【0070】
・ 上記実施形態では、流体解析装置20の制御部21は、分木構造に従って1つ上位のレベルの粗格子に統合可能かどうかを判断する(ステップS4−2)。そして、上位のレベルの粗格子に統合可能な場合(ステップS4−2において「YES」の場合)、流体解析装置20の制御部21は、計算格子を統合して計算手順の記録処理を実行する(ステップS4−3)。流体解析装置20の制御部21は、生成した計算格子毎に粗格子の生成処理を実行する(ステップS4−1〜S4−4)。このようにして生成された粗格子を用いてVサイクルAMG法による計算処理を実行する(ステップS3−3)。これにより、AMR法の適用時の分木構造(ここでは、8分木)をそのまま用いて、AMG法における粗化を行なうことができる。
【0071】
特に、演算処理手段211は、系譜を用いて、この計算格子の1つ上位のレベルの格子(親格子)を特定し、この親格子から生成された計算格子が同じレベルである場合には、分木構造に従って1つ上位のレベルの粗格子に統合する(ステップS4−3)。これにより、どのレベルであっても、同じ親格子から生成された各細分格子が同じレベルである場合には、分木構造に従って1つ上位のレベルの粗格子に統合して、解析空間全体を粗化することができる。従って、全体を通じて均一に波数の長い誤差を減衰させることができる。
【0072】
・ 上記実施形態では、VOF関数の輸送方程式を解くことにより、効率的に自由表面の形状を決定し、流体体積の保存に関しても精度がよく計算することができる。
・ 上記実施形態では、AMG法を用いるため、細分格子の係数行列から粗格子の係数行列を自動生成することができる。
【0073】
なお、上記実施形態は、以下の態様に変更してもよい。
○ 上記実施形態では、流体解析に用いたが、これに限定されるものではなく、構造解析や電磁場解析等、各種解析のシミュレーションにも適用することが可能である。
【0074】
○ 上記実施形態では、Vサイクルを用いたが、反復方法はこれに限定されるものではなく、Wサイクル、Fサイクルを用いることができる。
○ 上記実施形態では、直方体の格子を利用して離散化したが、離散化の形状はこれに限定されるものではなく、四面体等を用いることができる。特に、AMG法の場合には、子格子を結合して粗化を行なう場合、親格子と同じ形状である必要はなく、多様な形状を利用することができる。
【0075】
○ 上記実施形態では、分木構造として8分木を用いたが、これに限定されるものではなく、他の細分化法を利用することも可能である。例えば、2次元の場合には4分木を用いることも可能である。
【0076】
○ 上記実施形態では、分木構造に従って1つ上位のレベルの粗格子に統合可能かどうかを判断する(ステップS4−2)。具体的には、演算処理手段211は、系譜を用いて、この計算格子の1つ上位のレベルの格子(親格子)を特定する。そして、演算処理手段211は、この親格子から生成された子格子(細分格子)の状態を確認する。各細分格子が同じレベルのリーフ格子である場合には、分木構造に従って1つ上位のレベルの粗格子
に統合できると判断する。これに代えて、系譜に基づいて、親格子から生成された子格子となる計算格子の相互関係を記録したテーブル(隣接格子テーブル)を生成して、メモリに保持させておくことも可能である。この隣接格子テーブルを用いることにより、親格子に戻ることなく細分格子間で隣接関係を判断できるので、計算格子の粗化段階において、同じ親格子から生成されて隣接する子格子を効率的に特定することができる。
【0077】
○ 上記実施形態では、流体解析装置20の制御部21は、分木構造に従って1つ上位のレベルの粗格子に統合可能かどうかを判断する(ステップS4−2)。ここでは、粗格子の生成は、同じ親格子から生成されたすべての子格子がリーフ格子となったときに結合して粗格子を生成する。これに代えて、同じ親格子から生成された子格子であって、隣接する子格子が存在する場合には、これらの子格子を結合して粗格子を生成することも可能である。具体的には、演算処理手段211は、系譜を用いて、この計算格子の1つ上位のレベルの格子(親格子)を特定する。次に、演算処理手段211は、この親格子から生成された他の子格子の状態を確認する。そして、隣接する計算格子が同じレベルである場合には、これらを粗格子として統合(粗化)する。これにより、計算処理は複雑になるが、波数の長い誤差伝播を早くして収束を早めることができる。
【図面の簡単な説明】
【0078】
【図1】本発明の一実施形態のシステムの概略図。
【図2】本発明の一実施形態の処理手順の説明図。
【図3】本発明の一実施形態の処理手順の説明図。
【図4】本発明の一実施形態の処理手順の説明図。
【図5】本発明の一実施形態の処理手順の説明図。
【図6】本発明の一実施形態の処理手順の説明図。
【図7】八分木構造の説明図。
【図8】計算格子の細分化の説明図。
【図9】異相界面の説明図。
【図10】計算格子の細分化の説明図。
【図11】計算格子の粗化の説明図。
【符号の説明】
【0079】
11…入力部、12…出力部、20…流体解析装置、21…制御部、211…演算処理手段、212…メモリ、22…計算結果データ記憶部、C1,C2,C3…計算格子。

【特許請求の範囲】
【請求項1】
解適合格子法及び多重格子法の演算処理手段と分木構造情報記憶手段とを備えたシミュレーション装置であって、
前記演算処理手段が、
モデルパラメータを取得し、初期の計算格子を生成し、
物理量の分布に基づいて、前記初期の計算格子を親格子として、分木法により細分化した子格子を関連付けた分木構造を生成して分木構造情報記憶手段に記録し、
前記分木構造情報記憶手段に記録された分木構造において、同じ親格子から生成された子格子であって、リーフ格子となるすべての計算格子を結合して粗格子を生成し、
解適合格子法により前記粗格子に基づいて物理量を計算するための計算式を生成し、
前記計算式に基づいて物理量を計算した計算結果を取得し、
前記分木構造情報記憶手段に記録された分木構造に基づいて細分化された細分格子を取得し、
前記細分格子に基づいて物理量を計算するための連立方程式に対して、前記計算結果を用いて物理量の計算処理を実行することを特徴とするシミュレーション装置。
【請求項2】
前記粗格子の生成は、同じ親格子から生成されたすべての子格子が揃ったときに結合して粗格子を生成することを特徴とする請求項1に記載のシミュレーション装置。
【請求項3】
前記粗格子の生成は、同じ親格子から生成された子格子であって、隣接する子格子が存在する場合には、これらの子格子を結合して粗格子を生成することを特徴とする請求項1に記載のシミュレーション装置。
【請求項4】
前記粗格子に基づいて物理量を計算するための計算式は、前記細分格子の計算式に基づいて代数的多重格子法により生成することを特徴とする請求項1〜3のいずれか一つに記載のシミュレーション装置。
【請求項5】
前記初期の計算格子の細分化は、異相界面を特定し、この異相界面を含む計算格子を細分化することを特徴とする請求項1〜4のいずれか一つに記載のシミュレーション装置。
【請求項6】
解適合格子法及び多重格子法の演算処理手段と分木構造情報記憶手段とを備えたシミュレーション装置を用いてシミュレーション解析を行なう方法であって、
前記演算処理手段が、
モデルパラメータを取得し、初期の計算格子を生成し、
物理量の分布に基づいて、前記初期の計算格子を親格子として、分木法により細分化した子格子を関連付けた分木構造を生成して分木構造情報記憶手段に記録し、
前記分木構造情報記憶手段に記録された分木構造において、同じ親格子から生成された子格子であって、リーフ格子となるすべての計算格子を結合して粗格子を生成し、
解適合格子法により前記粗格子に基づいて物理量を計算するための計算式を生成し、
前記計算式に基づいて物理量を計算した計算結果を取得し、
前記分木構造情報記憶手段に記録された分木構造に基づいて細分化された細分格子を取得し、
前記細分格子に基づいて物理量を計算するための計算式に対して、前記計算結果を用いて物理量の計算処理を実行することを特徴とするシミュレーション方法。
【請求項7】
解適合格子法及び多重格子法の演算処理手段と分木構造情報記憶手段とを備えたシミュレーション装置を用いてシミュレーション解析を行なうためのプログラムであって、
前記演算処理手段を、
モデルパラメータを取得し、初期の計算格子を生成し、
物理量の分布に基づいて、前記初期の計算格子を親格子として、分木法により細分化した子格子を関連付けた分木構造を生成して分木構造情報記憶手段に記録し、
前記分木構造情報記憶手段に記録された分木構造において、同じ親格子から生成された子格子であって、リーフ格子となるすべての計算格子を結合して粗格子を生成し、
解適合格子法により前記粗格子に基づいて物理量を計算するための計算式を生成し、
前記計算式に基づいて物理量を計算した計算結果を取得し、
前記分木構造情報記憶手段に記録された分木構造に基づいて細分化された細分格子を取得し、
前記細分格子に基づいて物理量を計算するための計算式に対して、前記計算結果を用いて物理量の計算処理を実行する手段として機能させることを特徴とするシミュレーションプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2008−197921(P2008−197921A)
【公開日】平成20年8月28日(2008.8.28)
【国際特許分類】
【出願番号】特願2007−32542(P2007−32542)
【出願日】平成19年2月13日(2007.2.13)
【出願人】(592131906)みずほ情報総研株式会社 (187)
【Fターム(参考)】