(57)【特許請求の範囲】
【請求項１】
非圧縮流体についての流速場および温度場のシミュレーションを行なうコンピュータに、
非圧縮流体についての流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行ない、
前記所定の解析自由度でのシミュレーションの結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出し、
算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、非圧縮流体についての流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう、
処理を実行させる、熱流体シミュレーションプログラム。
【請求項２】
前記所定の解析自由度でのシミュレーション中の流速場および温度場のそれぞれについて、所定のタイミングでスナップショットデータを収集する、処理を前記コンピュータに実行させるとともに、
前記解析自由度の削減レベルを決定する際、収集された流速場のスナップショットデータおよび温度場のスナップショットデータのそれぞれについて、主成分分析を行なって前記解析自由度の削減レベルを決定する、処理を、前記コンピュータに実行させる、請求項１記載の熱流体シミュレーションプログラム。
【請求項３】
前記スナップショットデータを収集する際、様々の状況の流速場および温度場のスナップショットデータを網羅的に収集する、処理を、前記コンピュータに実行させる、請求項２記載の熱流体シミュレーションプログラム。
【請求項４】
前記の流速場および温度場のシミュレーションを、ナビエ・ストークス方程式および熱移流拡散方程式に基づいて実行する、処理を、前記コンピュータに実行させる、請求項１〜請求項３のいずれか一項に記載の熱流体シミュレーションプログラム。
【請求項５】
前記主成分分析の結果である累積寄与度が所定閾値以上となる固有ベクトルの次元数を、前記解析自由度の削減レベルとして決定する、処理を、前記コンピュータに実行させる、請求項２または請求項３のいずれか一項に記載の熱流体シミュレーションプログラム。
【請求項６】
所定の解析条件に基づき、前記解析自由度の削減レベルを有する解析自由度削減空間でシミュレーション実行中に、前記所定の解析自由度を有する実次元空間内において予め指定される実次元位置で前記解析条件の変更を行なう場合、解析自由度削減空間での前記シミュレーション実行前に、前記実次元位置と前記流速場用次元変換行列または前記温度場用次元変換行列とに基づき、前記実次元位置での前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する演算子を算出する、処理を前記コンピュータに実行させるとともに、
算出された前記演算子を用い、前記解析自由度削減空間での前記解析条件の変更に係る処理を実行する、処理を、前記コンピュータに実行させる、請求項１〜請求項５のいずれか一項に記載の熱流体シミュレーションプログラム。
【請求項７】
非圧縮流体についての流速場および温度場のシミュレーションを行なう熱流体シミュレーション装置であって、
非圧縮流体についての流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行なう第１シミュレーション部と、
前記第１シミュレーション部によるシミュレーション結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出する分析部と、
前記分析部によって算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、非圧縮流体についての流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう第２シミュレーション部と、
を有する熱流体シミュレーション装置。
【請求項８】
非圧縮流体についての流速場および温度場のシミュレーションをコンピュータにより行なう熱流体シミュレーション方法であって、
非圧縮流体についての流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行ない、
前記所定の解析自由度でのシミュレーションの結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出し、
算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、非圧縮流体についての流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう、熱流体シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、流速場および温度場のシミュレーションを行なう熱流体シミュレーションプログラム，熱流体シミュレーション装置および熱流体シミュレーション方法に関する。
【背景技術】
【０００２】
サーバ等の製品を開発する際やデータセンタ等を構築する際には、熱流体シミュレーションを利用して熱分布と空気の流れとを事前に把握することにより、熱設計を効率化する取り組みが行なわれている。
一般に、熱流体シミュレーションでは、時系列的に連続する複数の時間ステップが設定され、解析条件に基づき熱流体方程式を解く処理を時間ステップ毎に繰り返す、時系列シミュレーションが行なわれる。
【０００３】
このような熱流体シミュレーションでは、下記理由(a1),(a2)のために、膨大な計算時間が必要となる。
理由(a1)：熱流体方程式の解法上の制限、具体的にはＣＦＬ（Courant-Friedrichs-Lewy）条件により、時間ステップの時間間隔を大きく取れないこと。
理由(a2)：各時間ステップにおいて状態変化を表す微分方程式（熱流体方程式）を解く計算コストが大きいこと。
【０００４】
これに対し、上記熱流体シミュレーションと同様の時系列シミュレーションを行なう、非圧縮流体のシミュレーションでは、上記理由(a1),(a2)による計算時間の増大に対処すべく、下記手法(b1),(b2)が知られている。
手法(b1)：微分方程式の各項を個別に考慮して逐次的に解く安定的逐次解法
手法(b2)：事前計算の結果を利用して、問題の本質を捉えたまま解析自由度を削減する解析自由度削減法
【０００５】
流体シミュレーションは、空気などの流体の流れの時間変化を表す微分方程式（ナビエ・ストークス方程式；Navier-Stokes equations）に基づいている。これに対し、熱流体シミュレーションは、ナビエ・ストークス方程式と熱の時間変化を表す熱移流拡散方程式とを連立させた微分方程式に基づいたシミュレーションであり、上述のような手法(b1),(b2)をそのまま適用することはできない。
【０００６】
したがって、非圧縮流体の熱流体シミュレーションでは、上記理由(a1),(a2)による計算時間の増大に対処する手立ては知られておらず、依然として膨大な計算時間が必要となっている。そのため、熱設計において、熱分布と流体の流れとを迅速に把握することができていない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１７９５０１号公報
【特許文献２】米国特許第６２６６０７１号明細書
【非特許文献】
【０００８】
【非特許文献１】Jos Stam, “Stable Fluids”, SIGGRAPH1999, ACM, pp.121-128
【非特許文献２】Adrien T reuille, et al., “Model Reduction for Real-time Fluids”, SIGGRAPH2006, ACM, pp.826-834
【発明の概要】
【発明が解決しようとする課題】
【０００９】
１つの側面では、本件は、熱流体シミュレーションにより熱分布と流体の流れとを迅速に把握できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本件の熱流体シミュレーションプログラムは、非圧縮流体についての流速場および温度場のシミュレーションを行なうコンピュータに、
非圧縮流体についての流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行ない、
前記所定の解析自由度でのシミュレーションの結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出し、
算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、非圧縮流体についての流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう、
処理を実行させる。
【００１１】
また、本件の熱流体シミュレーション装置は、非圧縮流体についての流速場および温度場のシミュレーションを行なうもので、第１シミュレーション部，分析部および第２シミュレーション部を有している。第１シミュレーション部は、非圧縮流体についての流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行なう。分析部は、前記第１シミュレーション部によるシミュレーション結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出する。第２シミュレーション部は、前記分析部によって算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、非圧縮流体についての流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう。
【００１２】
さらに、本件の熱流体シミュレーション方法は、非圧縮流体についての流速場および温度場のシミュレーションをコンピュータにより行なうものであって、
非圧縮流体についての流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行ない、
前記所定の解析自由度でのシミュレーションの結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出し、
算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、非圧縮流体についての流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう。
【発明の効果】
【００１３】
熱流体シミュレーションにより熱分布と流体の流れとを迅速に把握することが可能になる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態の熱流体シミュレーション装置のハードウエア構成および機能構成を示すブロック図である。
【図２】本実施形態の熱流体シミュレーション装置の機能構成および動作を説明するための図である。
【図３】本実施形態の熱流体シミュレーション装置の処理の流れを説明するための図である。
【図４】（Ａ），（Ｂ）は熱流体シミュレーションで用いられる格子モデルを示す図である。
【図５】本実施形態の熱流体シミュレーション装置によるシミュレーション結果の第１表示例（折れ線グラフ）を示す図である。
【図６】本実施形態の熱流体シミュレーション装置によるシミュレーション結果の第２表示例（表）を示す図である。
【図７】本実施形態の熱流体シミュレーション装置によるシミュレーション結果の第３表示例（コンター図）を示す図である。
【図８】本実施形態の熱流体シミュレーション装置によるシミュレーション結果の第４表示例（ベクトル分布図）を示す図である。
【図９】本実施形態の熱流体シミュレーション装置によるシミュレーション結果の第５表示例（カラーマップ）を示す図である。
【図１０】解析条件（境界条件）の変更機能を有する本実施形態の熱流体シミュレーション装置の処理の流れを説明するための図である。
【図１１】本実施形態の参照演算子を説明すべく実次元空間における参照対象セルの位置を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して実施の形態を説明する。
〔１〕本実施形態の熱流体シミュレーション装置の構成および機能
図１は、本実施形態の熱流体シミュレーション装置１のハードウエア構成および機能構成を示すブロック図、図２は、本実施形態の熱流体シミュレーション装置１の機能構成および動作を説明するための図である。
【００１６】
図１および図２に示す熱流体シミュレーション装置１は、流速場および温度場のシミュレーションを行なうもので、入力操作部１０，処理部２０，記憶部３０および表示部４０を有している。なお、入力操作部１０は、ユーザによって操作され各種情報を本装置１に入力するマンマシンインタフェース、例えばマウス，キーボード等である。処理部２０は、ＣＰＵ（Central Processing Unit）等である。記憶部３０は、ＲＡＭ（Random Access Memory），ＲＯＭ（Read Only Memory），ＨＤＤ（Hard Disk Drive），ＳＳＤ（Solid State Drive）等の内部記憶装置であってもよいし、外部記憶装置であってもよい。また、表示部４０は、ＣＲＴ（Cathode Ray Tube），ＬＣＤ（Liquid Crystal Display）等のディスプレイである。
【００１７】
処理部２０は、熱流体シミュレーションプログラムを実行することにより、後述する入力部２１，表示制御部２２，事前熱流体シミュレーション部２３，スナップショット収集部２４，モデル分析部２５および自由度削減熱流体シミュレーション部２６としての機能を果たす。
【００１８】
記憶部３０は、後述する計算条件データ，スナップショットデータ，解析自由度削減データおよびシミュレーション結果をそれぞれ保持する記憶領域３１〜３４を有するほか、上記熱流体シミュレーションプログラムなどを格納する領域（図示略）も有する。
表示部４０は、表示制御部２２によって表示状態を制御され、各種情報を表示するもので、例えば、記憶領域３４に保存される熱流体シミュレーションの結果を表示する（図２の矢印ａ１１参照）。
【００１９】
入力部２１は、シミュレーションに先立ち、ユーザがＧＵＩ（Graphical User Interface）機能を用い入力操作部１０を操作して入力した、熱流体シミュレーションに必要な各種情報を受信し（図２の矢印ａ１参照）、受信した情報を記憶部３０に記録・保存する。
ここで、入力部２１により入力設定される、熱流体シミュレーションに必要な各種情報は、熱流体シミュレーションを行なう際の計算条件データを含み、計算条件データは、記憶領域３１に保存される（図２の矢印ａ２参照）。記憶領域３１に保存される計算条件データは、例えば、熱流体シミュレーションで用いられる形状モデル，物性値，各種境界条件，発熱条件，収束条件，抵抗条件，送流条件などの解析条件を含む。
【００２０】
事前熱流体シミュレーション部（第１シミュレーション部）２３は、入力操作部１０および入力部２１によりユーザから受け付けた命令に従い（図２の矢印ａ３参照）、記憶領域３１の計算条件に基づき（図２の矢印ａ４参照）、熱流体シミュレーション、つまり流速場および温度場のシミュレーションを行なう。このとき、事前熱流体シミュレーション部２３は、解析自由度を削減することなく、それぞれ所定の解析自由度（実次元、つまり前記所定の解析自由度を有する実次元空間）で流速場および温度場のシミュレーションを行なう。
【００２１】
また、事前熱流体シミュレーション部２３は、流速場および温度場のシミュレーションを、ナビエ・ストークス方程式および熱移流拡散方程式を含む後述する連立微分方程式(1)〜(3)に基づき実行する。流速場および温度場のシミュレーションの手法、つまり連立微分方程式(1)〜(3)の解法としては、安定的逐次解法や、上記特許文献１などに開示される格子法などが用いられる。本実施形態では、安定的逐次解法を採用した場合について説明する。安定的逐次解法では、後述するように、ナビエ・ストークス方程式（下記(1),(4)式参照）および熱移流拡散方程式（下記(3),(17)式参照）における各項が個別に考慮されて逐次的に解かれ、流速場および温度場のシミュレーションが実行される。
【００２２】
スナップショット収集部（収集部）２４は、事前熱流体シミュレーション部２３によるシミュレーション中の流速場および温度場のそれぞれについて、所定のタイミングでスナップショットデータを収集する。このとき、収集部２４は、様々の状況の流速場および温度場のスナップショットデータを網羅的に収集する。また、流速場は温度場よりも速く変化するため、収集部２４は、流速場のスナップショットデータの収集を、温度場のスナップショットデータの収集時間間隔よりも短い時間間隔で行なう。なお、収集部２４によるスナップショットデータを収集する上記所定のタイミングについては、例えば、記憶領域３１に計算条件データとして予め記録保存されているものとする。
【００２３】
収集部２４によって収集される流速場のスナップショットは、事前熱流体シミュレーション部２３による計算結果として得られる流体の流れの速度である。また、収集部２４によって収集される温度場のスナップショットは、事前熱流体シミュレーション部２３による計算結果として得られる温度分布である。スナップショットデータは、流速場と温度場とのそれぞれについて複数個収集される。収集部２４によって収集された流速場のスナップショットは、記憶領域３２に保存される（図２の矢印ａ５参照）。
【００２４】
なお、事前熱流体シミュレーション部２３および収集部２４は、下記所定の終了条件を満たした場合に事前シミュレーションおよび収集処理を終了する。所定の終了条件は、例えば、事前シミュレーション開始後の経過時間が所定時間に達した場合や、事前熱流体シミュレーション部２３による計算が定常状態に達した場合や、後述するスナップショット収集部２４で所望のスナップショットの収集を完了した場合などとして与えられる。所定の終了条件については、例えば、記憶領域３１に計算条件データとして予め記録保存されているものとする。
【００２５】
モデル分析部（分析部）２５は、記憶領域３２におけるスナップショットデータ（図２の矢印ａ６参照）の主成分分析を行ない流体の流れや温度分布の解析自由度の削減レベルを決定するとともに、実次元の解析モデルから自由度削減モデルへの次元変換行列の算出を行なう。
より具体的に、分析部２５は、記憶領域３２における流速場のスナップショットデータおよび温度場のスナップショットデータのそれぞれについて、主成分分析を行なって前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定する。このとき、分析部２５は、主成分分析の結果である累積寄与度が所定閾値以上となる固有ベクトルの次元数を解析自由度の削減レベルとして決定する。
【００２６】
そして、分析部２５は、流速場の解析モデルを、所定の解析自由度（流速場の実次元）から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出する。また、分析部２５は、温度場の解析モデルを、所定の解析自由度（温度場の実次元）から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出する。分析部２５によって算出された流速場用次元変換行列および温度場用次元変換行列は、記憶領域３３に解析自由度削減データとして保持される（図２の矢印ａ７参照）。
【００２７】
自由度削減熱流体シミュレーション部（第２シミュレーション部）２６は、記憶領域３３の流速場用次元変換行列および温度場用次元変換行列を用い（図２の矢印ａ８参照）、流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換する。そして、自由度削減熱流体シミュレーション部２６は、記憶領域３１の計算条件に基づいて（図２の矢印ａ９参照）、流速場および温度場のシミュレーションを解析自由度の削減レベルで行なう。自由度削減熱流体シミュレーション部２６によるシミュレーション結果は、記憶領域３４に保存される（図２の矢印ａ１０参照）。記憶領域３４に記憶されたシミュレーション結果は、表示制御部２２により表示部４０において表示されるが（図２の矢印ａ１１参照）、プリンタ（図示略）により紙などに記録されて出力されてもよい。なお、図２の矢印ａ１２については、下記項目〔４〕において後述する。
【００２８】
〔２〕本実施形態の熱流体シミュレーション装置の動作
次に、上述のごとく構成された本実施形態の熱流体シミュレーション装置１の動作について、図３〜図９を参照しながら説明する。
〔２−１〕熱流体シミュレーション装置の動作概要
本実施形態の熱流体シミュレーション装置１では、熱流体シミュレーションを高速化するために、非圧縮ナビエ・ストークス方程式と熱移流拡散方程式との連立方程式を、各項を個別に考慮した７つの方程式に分けて解くことにより、事前熱流体シミュレーションが行なわれる。そして、事前熱流体シミュレーションの結果（スナップショットデータ）に基づき解析モデルの解析自由度が削減され、解析自由度を削減した状態で熱流体の連立微分方程式が解かれ、周辺の空気との温度差で生じる流体の流れが浮力としてモデル化される。
【００２９】
具体的に、本実施形態の熱流体シミュレーション装置１では、上記手法(b2)、つまり事前計算の結果を利用し解析自由度を削減する解析自由度削減法が、熱流体の解析に拡張される。つまり、第１シミュレーション部２３において、事前に解析対象系の熱流体シミュレーション解析が行なわれる。そして、分析部２５において、事前シミュレーションの結果を主成分分析することで、問題の本質的な自由度が分析され、解析の自由度を削減したモデルへの変換行列が、流速場および温度場のそれぞれについて導出される。その後で、第２シミュレーション部２６において、解析自由度を削減したモデルを扱えるように改良した連立微分方程式を解くことで、熱流体についての時系列シミュレーションが行なわれる。
【００３０】
第１シミュレーション部２３による事前の解析は、例えば、上記手法(b1)の安定的逐次解法を用いて高速化される。安定的逐次解法は、既存の熱流体シミュレーション手法の１つである格子法の高速な解法である。ここで、非圧縮ナビエ・ストークス方程式は４つの項で構成され（下式(4)参照）、熱移流拡散方程式は３つの項で構成される（下式(17)参照）。安定的逐次解法では、これらの方程式におけるそれぞれの項について、各項のみの影響を考えた７つの方程式をたてると、個々の方程式は簡単なものとなり、各項についての方程式を安定的に解くことが可能となる。これにより、安定的逐次解法では、時系列シミュレーションにおける時間ステップの時間間隔を大きくとることが可能となり、事前の熱流体シミュレーションを高速に行なうことができる。
【００３１】
また、本実施形態では、周辺の空気との温度差で生じる流体の流れが、浮力としてモデル化され、ナビエ・ストークス方程式の外力項（下式(4)の外力項(A)参照）に入れ込まれる。これにより、熱による流体の流れの影響を、ナビエ・ストークス方程式において考慮することができる。
以上のような本実施形態の熱流体シミュレーション手法の詳細について、以下、図３，図４および下式(1)〜(40)を参照しながら後述する。
【００３２】
〔２−２〕熱流体シミュレーション装置における処理の流れ
次に、図３に示すフローチャート（ステップＳ１１〜Ｓ２２）に従って、本実施形態の熱流体シミュレーション装置１における処理の流れについて説明する。
シミュレーションに先立ち、ユーザが入力操作部１０を操作して入力した、熱流体シミュレーションに必要な各種情報、ここでは計算条件データが、入力部２１において受信されると、受信された情報は、記憶部３０の記憶領域３１に記録保存される（ステップＳ１１）。計算条件データには、前述したように、例えば、熱流体シミュレーションで用いられる形状モデル，物性値，各種境界条件，発熱条件，収束条件，抵抗条件，送流条件などの解析条件が含まれる。
【００３３】
この後、入力部２１で、ユーザが入力操作部１０を操作して入力した、熱流体シミュレーション実行命令が受信されると、熱流体シミュレーションが開始される（ステップＳ１２）。熱流体シミュレーションが開始されると、まず、第１シミュレーション部２３において、安定的逐次解法により、解析自由度を削減することなく、それぞれ所定の解析自由度で流速場および温度場のシミュレーション（事前熱流体シミュレーション）が実行される（ステップＳ１３）。ステップＳ１３での事前熱流体シミュレーションで用いられる安定的逐次解法については、下記項目〔２−４〕において下式(4)〜(22)を参照しながら後述する。
【００３４】
第１シミュレーション部２３による事前熱流体シミュレーション中には、収集部２４により、流速場（流体の流れの速度場，流況）や温度場（温度分布）について、それぞれ複数個のスナップショットが収集される（ステップＳ１４）。各スナップショットは、流速場または温度場を、記憶領域３１に予め設定されたタイミングで抜き出したもので、記憶領域３２に保存される。スナップショットの収集（サンプル収集）については、下記項目〔２−５−１〕において後述する。
【００３５】
収集部２４が、あるタイミングでスナップショットを収集すると、記憶領域３１に設定された所定の終了条件に基づき、第１シミュレーション部２３による事前シミュレーションおよび収集部２４による収集処理を終了するか否かが判断される（ステップＳ１５）。所定の終了条件が満たされず事前シミュレーションおよびスナップショット収集を未だ終了しない場合（ステップＳ１５のＮＯルート）、ステップＳ１３およびＳ１４の処理が繰返し実行される。所定の終了条件が満たされた場合（ステップＳ１５のＹＥＳルート）、つまり、事前シミュレーション開始後に所定時間経過した場合や、事前シミュレーションが定常状態に達した場合や、収集部２４で所望のスナップショットの収集を完了した場合などには、ステップＳ１６の処理が実行される。
【００３６】
所定の終了条件が満たされると、分析部２５により、記憶領域３２における流速場のスナップショットデータおよび温度場のスナップショットデータのそれぞれについて、主成分分析が行なわれる（ステップＳ１６）。スナップショットの主成分分析については、下記項目〔２−５−２〕において下式(23)〜(25)を参照しながら後述する。
【００３７】
そして、主成分分析の結果に基づき、分析部２５により、所定の解析自由度（実次元）よりも小さい解析自由度の削減レベルが、流速場のスナップショットデータおよび温度場のスナップショットデータのそれぞれについて、決定される（ステップＳ１７）。このとき、主成分分析の結果である累積寄与度が所定閾値以上となる固有ベクトルの次元数が、解析自由度の削減レベルとして決定される。解析自由度の削減レベルの決定については、下記項目〔２−５−３〕において後述する。
【００３８】
ついで、分析部２５により、流速場用次元変換行列および温度場用次元変換行列が算出され、算出された流速場用次元変換行列および温度場用次元変換行列は、記憶領域３３に解析自由度削減データとして保持される（ステップＳ１８）。ここで、流速場用次元変換行列は、流速場の解析モデルを、所定の解析自由度（流速場の実次元）から、流速場について決定された解析自由度の削減レベルへ変換するものである。また、温度場用次元変換行列は、温度場の解析モデルを、所定の解析自由度（温度場の実次元）から、温度場について決定された解析自由度の削減レベルへ変換するものである。次元変換行列の算出については、下記項目〔２−５−３〕において後述する。
【００３９】
次元変換行列が算出されると、第２シミュレーション部２６により、記憶領域３３の流速場用次元変換行列および温度場用次元変換行列を用いて解析自由度を削減した状態（解析自由度の削減レベルを有する解析自由度削減空間）で、熱流体シミュレーションが実行される（ステップＳ１９）。具体的に、第２シミュレーション部２６においては、記憶領域３３の流速場用次元変換行列および温度場用次元変換行列を用い、流速場の解析モデルおよび温度場の解析モデルがそれぞれ自由度削減モデルに変換される。そして、自由度削減熱流体シミュレーション部２６により、記憶領域３１の計算条件（解析条件）に基づき、流速場および温度場のシミュレーションが解析自由度の削減レベルで行なわれる。第２シミュレーション部２６によるシミュレーション結果は、記憶領域３４に保存される。このような解析自由度削減法による熱流体シミュレーションについては、下記項目〔２−６〕において下式(30)〜(40)を参照しながら後述する。
【００４０】
ステップＳ１９において一の時間ステップについての熱流体シミュレーションが実行されると、シミュレーション結果の表示を行なうタイミングであるか否かが判断される（ステップＳ２０）。シミュレーション結果の表示タイミングは、記憶部３０の所定領域に予め設定されており、表示タイミングになった場合（ステップＳ２０のＹＥＳルート）、記憶領域３５のシミュレーション結果が、表示制御部２３によって表示部４０に表示される（ステップＳ２１）。表示処理後、図３に示すフローチャートでは、ステップＳ１９の処理に戻るが、ステップＳ２２の処理へ移行してもよい。シミュレーション結果の表示処理については、下記項目〔２−７〕において図５〜図９を参照しながら後述する。
【００４１】
一方、表示タイミングでない場合（ステップＳ２０のＮＯルート）もしくはシミュレーション結果の表示後には、予め設定された終了条件に基づきシミュレーションを終了するか否かが判断される（ステップＳ２２）。当該終了条件は、例えば、シミュレーション開始後の経過時間が所定時間に達した場合や、第２シミュレーション部２６による計算が定常状態に達した場合である。当該終了条件が満たされずシミュレーションを未だ終了しない場合（ステップＳ２２のＮＯルート）、熱流体シミュレーション装置１の処理は、ステップＳ１９の処理に戻る。当該終了条件が満たされた場合（ステップＳ２２のＹＥＳルート）、熱流体シミュレーション装置１は、処理を終了する。
【００４２】
〔２−３〕非圧縮流体の熱流体シミュレーション
一般に、熱流体シミュレーションでは、時系列的に連続する複数の時間ステップが設定され、時間ステップ毎に計算を進める解析処理を繰り返す時系列シミュレーションが行なわれる。各時間ステップの計算においては、下記(1)〜(3)式からなる連立微分方程式を解くことにより、流速場および温度場の時間発展が行なわれる。ここで、(1)式は、流体の運動を記述する２階非線型偏微分方程式であるナビエ・ストークス方程式である。(2)式は、非圧縮性流れについての質量保存則から導かれる連続の式である。(3)式は、流体中の熱伝導を記述した熱移流拡散方程式である。
【００４３】
【数１】
0005724814.tif 000002
【００４４】
これらの(1)〜(3)式において、ｕは流体の速度ベクトル、ｐは圧力、ρは密度、ｆは単位質量当たりに作用する外力ベクトル、νは動粘性係数、Ｔは温度、κは熱伝導係数、Ｓは外部から受け取る熱量を表す。ナブラ∇は、空間微分作用素である。また、(1)式および(3)式の左辺における、上部にドットを付されたｕおよびＴは、それぞれ、速度ベクトルｕおよび温度Ｔの、時間ｔによる偏微分を示す。なお、以下、各式における太線表記の文字は、その文字に係る情報がベクトルまたは行列であることを示している。
【００４５】
コンピュータ上で非圧縮流体の熱流体シミュレーションを行なう場合、上記の連立微分方程式(1)〜(3)式を解くために、解析空間は離散化され、シミュレーション部２３，２６が微分値を離散的に計算できるようにする。離散化の方法としては、図４（Ａ）および図４（Ｂ）に示すように、連続的な解析空間を格子に分割する方法を用いる。また、格子に区切られた長方形や直方体をセルと呼ぶ。なお、図４（Ａ）および図４（Ｂ）は熱流体シミュレーションで用いられる格子モデルを示す図であり、図４（Ａ）は２次元の格子モデルを示し、図４（Ｂ）は３次元の格子モデルを示している。
【００４６】
〔２−４〕安定的逐次解法
本実施形態においては、上述したように、第１シミュレーション部２３による事前の解析は、安定的逐次解法を用いて行なわれる。安定的逐次解法は、既存の熱流体シミュレーション手法の１つである格子法の高速な解法である。ここで、非圧縮ナビエ・ストークス方程式(1)は４つの項で構成され（下式(4)参照）、熱移流拡散方程式(3)は３つの項で構成される（下式(17)参照）。安定的逐次解法では、これらの方程式におけるそれぞれの項について、各項のみの影響を考えた７つの方程式をたてると、個々の方程式は簡単なものとなり、各項についての方程式を安定的に解くことが可能となる。これにより、安定的逐次解法では、時系列シミュレーションにおける時間ステップの時間間隔を大きくとることが可能となり、第１シミュレーション部２３による事前の熱流体シミュレーションを高速に行なうことができる。
【００４７】
つまり、本実施形態では、一般に非圧縮流体シミュレーションに適用されている安定的逐次解法を拡張し、第１シミュレーション部２３による非圧縮熱流体シミュレーションに適用することで、事前シミュレーションを高速に行なうことができる。以下に、安定的逐次解法の詳細について説明する。
ここで、非圧縮流体とは、密度の変化しない流体を指す。音速を超える速度で流体が伝播する現象を扱わない場合には、空気のような気体についても非圧縮性流体として扱う近似が非常に良く成り立つ。なお、空気中での音速は約３４０ｍ／秒である。
【００４８】
非圧縮流体シミュレーションは、流体の運動を記述するナビエ・ストークス方程式(1)と非圧縮性流れについての質量保存則から導かれる連続の式(2)とを連立させて、時間発展させることで行なわれる。
以下に、第１シミュレーション部２３（図３のステップＳ１３）において、ある時刻ｔの流速ベクトルｕ０と温度Ｔ０を時間発展させることで、時間Δｔ後の時刻ｔ＋Δｔでの流速ベクトルｕ１と温度Ｔ１を求める計算手順を示す。
【００４９】
〔２−４−１〕ナビエ・ストークス方程式の安定的逐次解法
安定的逐次解法では、ナビエ・ストークス方程式である下式(4)の右辺における４つの項(A)〜(D)を分離して方程式を解く。以下に、各項(A)〜(D)の解法を示す。なお、(A)は外力項、(B)は移流項、(C)は拡散項、(D)は圧力項である。
【数２】
0005724814.tif 000003
【００５０】
[Sub-Step1]  外力項(A)の計算
まず、上式(4)において外力項(A)のみの影響を考えた方程式として、下式(5)を立て、中間流速ベクトルｕstep1を求める。
【数３】
0005724814.tif 000004
【００５１】
ここで、熱による流体の流れの影響を考慮するために、周辺の空気との温度差で生じる流体の流れを、浮力としてモデル化し、ナビエ・ストークス方程式(1)の外力項(A)に入れ込む。標準温度Ｔｒ，熱膨張係数αおよび重力加速度ベクトルｇを用いると、浮力は、次式(6)で表される。
【数４】
0005724814.tif 000005
【００５２】
初期流速ベクトルｕ０および上式(6)を用いて、上式(5)を離散化すると、次式(7)が得られる。
【数５】
0005724814.tif 000006
【００５３】
[Sub-Step2]  移流項(B)の計算
Sub-Step1の計算により得られた中間流速ベクトルｕstep1を用いて、移流項(B)のみの影響を考えた方程式として、下式(8)を立て、中間流速ベクトルｕstep2を求める。
【数６】
0005724814.tif 000007
【００５４】
移流項(B)の計算には、セミラグランジュ（semi-Lagrange）法を用いる。セミラグランジュ法では、仮想流体粒子が時間Δｔの間に動く経路上で仮想流体粒子が持つ物理量が変化しないと仮定する。この仮定の下、ある時刻ｔにおける全格子点上の流体粒子が、それぞれ時間Δｔ前に存在していた位置を算出する。例えば、時刻ｔに位置ｐに存在する粒子が、時刻ｔ−Δｔに存在した位置ｐ０は、下式(9)で表される。ここで、下式において太線表記のｐ，ｐ０は、流体粒子の存在位置を示すベクトルである。なお、セミラグランジュ法としては、例えば、「ＣＦＤ最前線」日本機械学会編，共立出版（2007）に開示された技術が用いられる。
【数７】
0005724814.tif 000008
【００５５】
近傍格子点の速度を補間することで求めた位置における速度ベクトルをｕstep1(ｐ０，ｔ−Δｔ)とすると、時刻ｔにおける位置ｐの速度ｕstep2は、次式(10)で表される。以上の手法により、方程式(8)を解く。
【数８】
0005724814.tif 000009
【００５６】
通常の移流項(B)を求める際に用いる差分法では、ＣＦＬ条件により、時間Δｔ後に情報が伝わる距離（速度×Δｔ）が格子幅以下でないと精度が悪くなるため、時間ステップを大きくとることができない。しかし、セミラグランジュ法では、移流項(B)に関するＣＦＬ条件が不要になり、時間ステップを大きくとることができる。
【００５７】
[Sub-Step3]  拡散項(C)の計算
Sub-Step2の計算により得られた中間流速ベクトルｕstep2を用いて、拡散項(C)のみの影響を考えた方程式として、下式(11)を立て、中間流速ベクトルｕstep3を求める。
【数９】
0005724814.tif 000010
【００５８】
上式(11)の右辺に中間流速ベクトルｕstep3を用いて、上式(11)の左辺を離散化すると、次式(12)が得られる。
【数１０】
0005724814.tif 000011
【００５９】
上式(12)を変形すると、次のような連立方程式(13)が得られる。同式(13)を解くことにより、中間流速ベクトルｕstep3が得られる。
【数１１】
0005724814.tif 000012
【００６０】
[Sub-Step4]  圧力項(D)の計算
圧力項(D)のみの影響を考えた方程式として、下式(14)を立て、同式(14)の左辺を、下式(15)のように離散化し、Sub-Step3の計算により得られた中間流速ベクトルｕstep3を用いて、中間流速ベクトルｕstep4を求める。
【数１２】
0005724814.tif 000013
【００６１】
ここで、上式(15)の両辺の発散を計算し、非圧縮条件の式(2)を考慮して整理すると、下記連立方程式(16)が得られる。この連立方程式(16)を解くことで、圧力ｐが得られる。この圧力ｐを利用して、上式(15)により中間流速ベクトルｕstep4が求められる。
【数１３】
0005724814.tif 000014
【００６２】
〔２−４−２〕熱移流拡散方程式の安定的逐次解法
続いて、熱移流拡散方程式(3)を同様の方法で解く。つまり、熱移流拡散方程式である下式(17)の右辺における３つの項(E)〜(G)を分離して方程式を解く。以下に、各項(E)〜(G)の解法を示す。なお、(E)は生成項、(F)は熱移流項、(G)は熱拡散項である。
【数１４】
0005724814.tif 000015
【００６３】
[Sub-Step5]  生成項(E)の計算
上式(17)において、生成項(E)のみの影響を考えた方程式として、次式(18)を立て、中間温度Ｔstep5を求める。
【数１５】
0005724814.tif 000016
【００６４】
初期温度Ｔ０を用いて、上式(18)を離散化すると、次式(19)が得られる。
【数１６】
0005724814.tif 000017
【００６５】
[Sub-Step6]  熱移流項(F)の計算
Sub-Step4の計算により得られた中間流速ベクトルｕstep4とSub-Step5の計算により得られた中間温度Ｔstep5とを用いて、熱移流項(F)のみの影響を考えた方程式として、下式(20)を立て、中間温度Ｔstep6を求める。
熱移流項(F)の計算には、Sub-Step2と同様、セミラグランジュ法が用いられ、中間温度Ｔstep6が求められる。
【数１７】
0005724814.tif 000018
【００６６】
[Sub-Step7]  熱拡散項(G)の計算
Sub-Step6の計算により得られた中間温度Ｔstep6を用いて、熱拡散項(G)のみの影響を考えた方程式として、下式(21)を立て、中間温度Ｔstep7を求める。
【数１８】
0005724814.tif 000019
【００６７】
右辺に中間温度Ｔstep7を用いて、上式(21)の左辺を離散化して整理すると、下記連立方程式(22)が得られる。
【数１９】
0005724814.tif 000020
【００６８】
上式(22)を解くことにより、中間温度Ｔstep7が得られる。
以上の方法で求めた中間流速ベクトルｕstep4および中間温度Ｔstep7を、それぞれ、ある時刻ｔの時間Δｔ後の時刻の流速ベクトルｕ１および温度Ｔ１とする。
【００６９】
〔２−５〕次元変換行列の算出
次に、スナップショット収集部２４およびモデル分析部２５による処理、つまり図３のステップＳ１４，Ｓ１６〜Ｓ１８の処理について詳細に説明する。
〔２−５−１〕事前熱流体シミュレーションとサンプル収集
モデル分析部２５により次元変換行列を算出する前に、項目〔２−４〕で上述した安定的逐次解法や、ＭＡＣ（Marker And Cell）法により、解析自由度を削減していない状態で事前熱流体シミュレーションが実行される。なお、上記ＭＡＣ法は、例えば、Francis H. Harlow and J. Eddie Welch : Numerical Calculation of Time‐Dependent Viscous Incompressible Flow of Fluid with Free Surface, Phys. Fluids 8, 2182 (1965)に開示されている。
【００７０】
この事前熱流体シミュレーションの途中で、スナップショット収集部２４（図３のステップＳ１４）において、温度場や流速場を特定のタイミングで抜き出したスナップショット（サンプル）が、複数個収集される。
このとき、事前熱流体シミュレーションでは、解析条件を様々に変更したパターンでのシミュレーションや解析条件が時系列的に変化するシミュレーションが実行されるものとし、様々な状況が表現された流速場や温度場のスナップショットが網羅的に収集される。また、流速場は温度場よりも速く変化するため、スナップショット収集部２４は、流速場のスナップショットデータの収集を、温度場のスナップショットデータの収集時間間隔よりも短い時間間隔で行なう。これにより、流速場および温度場のそれぞれについて、様々な状況下におけるスナップショットを確実に収集することができる。
【００７１】
〔２−５−２〕スナップショットの主成分分析
モデル分析部２５（図３のステップＳ１６）では、流速場のスナップショットデータと温度場のスナップショットデータとのそれぞれについて、主成分分析（Principal Component Analysis：ＰＣＡ）が実行される。
まず、流速場のスナップショットデータの主成分分析について説明する。
【００７２】
収集した複数（例えばｌ個）のスナップショットのうちの一つを取り出し、すべての格子点での流速場をベクトルとして表現したベクトルｕiを考える。解析モデルが３次元である場合には、このベクトルｕiは、次式(23)で表される。ベクトルｕiは、事前シミュレーションの結果のスナップショットを基にしているので、非圧縮条件の式(2)や壁での境界条件を満たす。
【００７３】
【数２０】
0005724814.tif 000021
【００７４】
ここで、ｕxik，ｕyik，ｕzikは、スナップショットｉにおける格子点ｋでの速度（ｘ，ｙ，ｚ成分）であり、ｃｎは、格子点の総数である。
このベクトルｕiを集めたｎ次元の基底Ｕが、下式(24)のように作成される。
【００７５】
【数２１】
0005724814.tif 000022
【００７６】
ｎ次元の基底ＵをＵＵＴとして正方行列化した行列の主成分分析を行ない、対応する固有値が大きい順に固有ベクトルｂiが並んだｎ次元の正規直交基底Ｂが、下式(25)のように求められる。
【００７７】
【数２２】
0005724814.tif 000023
【００７８】
〔２−５−３〕次元変換行列の決定
主成分分析の結果に基づき、モデル分析部２５により、流速場のスナップショットデータついて、所定の解析自由度（実次元）よりも小さい解析自由度の削減レベルｍが、以下のように決定される。
ここでは、ｎ次元の正規直交基底Ｂのｍ（＜ｎ）番目までの固有ベクトルｂ1，ｂ2，…，ｂmを用いた、次式(26)のような行列Ｐを考える。
【００７９】
【数２３】
0005724814.tif 000024
【００８０】
解析自由度削減レベルｍは、モデル分析部２５により決定される。例えば、主成分分析の結果である累積寄与度が所定閾値以上となる固有ベクトルの次元数が、解析自由度削減レベルｍとして決定される。このように決定された正規直交基底Ｐは、次元変換行列と呼ばれ、特に、ここで算出された正規直交基底Ｐは、流速場用次元変換行列である。ｍ次元の流速場用次元変換行列Ｐを用いると、１つのスナップショットの全体の流速場を表すｎ次元ベクトルｕは、ｍ次元ベクトルｒを使った次式(27)で表される。
【数２４】
0005724814.tif 000025
【００８１】
このように、流速場用次元変換行列Ｐを用いることで、自由度ｎの解析モデルを自由度ｍで表すことができる。また、下式(28)のように流速場用次元変換行列Ｐの逆行列を用いれば、逆の変換を行なうことができる。この逆変換を行なうことを「解析自由度を削減する」と呼ぶ。
【数２５】
0005724814.tif 000026
【００８２】
以上の手続きを温度場のサンプルを集めたものに対しても行なうことで、温度場についての自由度変換行列、つまり温度場用次元変換行列Ｑも決定される。この温度場用次元変換行列Ｑを用いれば、自由度削減後の温度の列ベクトルｓは、次式(29)のように与えられる。ここで、Ｔは自由度削減前の温度の列ベクトルである。
【数２６】
0005724814.tif 000027
【００８３】
〔２−６〕解析自由度削減法による熱流体シミュレーション
上述のように流速場用次元変換行列Ｐおよび温度場用次元変換行列Ｑが算出されると、第２シミュレーション部２６（図３のステップＳ１９）において、算出された次元変換行列Ｐ，Ｑを用い、解析自由度を削減した状態で熱流体シミュレーションが、以下のように実行される。
【００８４】
時系列的な物理シミュレーションにおいては、状態（ベクトル）ｕ(ｔ)から時間をΔｔだけ進めた状態ｕ(ｔ＋Δｔ)を、微分方程式の解として導出する。以下では、解析自由度を削減したモデルを利用して、熱流体シミュレーションを行なう手順を示す。
第２シミュレーション部２６によるシミュレーションにおいても、以下に示すごとく、項目〔２−４〕で説明した安定的逐次解法と同様、７つのサブステップ[Sub-Step1]〜[Sub-Step7]から構成される。
【００８５】
このとき、第２シミュレーション部２６によるシミュレーションでは、ｎ次元の流速ベクトルｕは、流速場用次元変換行列Ｐを用い、上式(28)により、ｍ（＜ｎ）次元の流速ベクトルｒに変換される。同様に、温度ベクトルＴは、温度場用次元変換行列Ｑを用い、上式(29)により、温度ベクトルＴの次元数よりも少ない次元数の温度ベクトルｓに変換される。つまり、第２シミュレーション部２６においては、流速場用次元変換行列Ｐおよび温度場用次元変換行列Ｑを用い、流速場の解析モデルおよび温度場の解析モデルがそれぞれ自由度削減モデルに変換される。解析自由度を削減したモデルを用いたシミュレーションでは、変数の数が少なくなり計算量が削減されるため、元の自由度をもつモデルのシミュレーションよりも計算処理を大幅に高速化することが可能になる。
【００８６】
[Sub-Step1]  外力項(A)
解析自由度が削減された状態の流速場の中間状態ベクトル（自由度削減流速ベクトル）ｒstep1を求める。
安定的逐次解で得られた外力項(A)の式(7)の解析自由度を、流速場用次元変換行列Ｐを用いて削減すると、次式(30)が得られ、中間状態ベクトルｒstep1が求まる。
【数２７】
0005724814.tif 000028
【００８７】
[Sub-Step2]  移流項(B)
Sub-Step1で得られた中間状態ベクトルｒstep1を利用して、解析自由度が削減された流速場の中間状態ベクトルｒstep2を求める。
下記移流項の方程式(31)を離散化し、Ａu＝−(ｕ・∇)とおく。このとき、方程式(31)を、両辺の解析自由度を削減した、状態ベクトルｒの時間発展方程式にすると、下式(32)が得られる。
【数２８】
0005724814.tif 000029
【００８８】
初期状態ベクトルをｒstep1として、上記常微分方程式(32)の一般解を導出すると、次式(33)が得られ、中間状態ベクトルｒstep2が求まる。この(33)式において、ＥAはＡrの固有ベクトル、ΛAはＡrの固有値を対角要素にもつ対角行列であり、Ａr＝ＥAΛAＥA-1である。
【数２９】
0005724814.tif 000030
【００８９】
[Sub-Step3]  拡散項(C)
Sub-Step2で得られた中間状態ベクトルｒstep2を利用して、解析自由度が削減された流速場の中間状態ベクトルｒstep3を求める。
安定的逐次解法の拡散項(C)の式(11)の解析自由度を、流速場用次元変換行列Ｐを用いて削減すると、次式(34)が得られる。
【数３０】
0005724814.tif 000031
【００９０】
初期状態ベクトルをｒstep2として、上記常微分方程式(34)の一般解を導出すると、次式(35)が得られ、中間状態ベクトルｒstep3が求まる。この(35)式において、ＥDはＤの固有ベクトル、ΛDはＤの固有値を対角要素にもつ対角行列であり、Ｄ＝ＥDΛDＥD-1である。
【数３１】
0005724814.tif 000032
【００９１】
[Sub-Step4]  圧力項(D)
流速場用次元変換行列Ｐ＝[ｂ1，ｂ2，…，ｂm]の列ベクトルは、圧力項(D)を考慮した後のサンプルから取得されたものであるため、既に圧力項(D)の影響は考慮されている。このため、基底ベクトルｂiの線形結合で表わされる、すべての流速場も、圧力項(D)の影響は既に考慮されている。そのため、圧力項(D)を改めて計算する必要はない。
【００９２】
[Sub-Step5]  生成項(E)
解析自由度が削減された状態の温度場の中間状態ベクトルｓstep5を求める。安定的逐次解法で得られた生成項(E)の式(19)の解析自由度を、温度場用次元変換行列Ｑを用いて削減すると、次式(36)が得られ、中間状態ベクトルｓstep5が求まる。
【数３２】
0005724814.tif 000033
【００９３】
[Sub-Step6]  熱移流項(F)
Sub-Step5で得られた中間状態ベクトルｓstep5を利用して、解析自由度が削減された温度場の中間状態ベクトルｓstep6を求める。
下記熱移流項の方程式(37)を離散化し、Ａu＝−(ｕ・∇)とおく。本項目〔２−６〕のSub-Step2と同様に、初期状態ベクトルをｓstep5とすると、下式(38)が得られ、中間状態ベクトルｓstep6が求まる。この(38)式において、ＥAはＡrの固有ベクトル、ΛAはＡrの固有値を対角要素にもつ対角行列であり、Ａr＝ＥAΛAＥA-1である。
【数３３】
0005724814.tif 000034
【００９４】
[Sub-Step7]  熱拡散項(G)
Sub-Step6で得られた中間状態ベクトルｓstep6を利用して、解析自由度が削減された温度場の中間状態ｓstep7を求める。
安定的逐次解法の熱拡散項(G)の式(21)の解析自由度を、温度場用次元変換行列Ｑを用いて削減すると、次式(39)が得られる。
【数３４】
0005724814.tif 000035
【００９５】
初期状態ベクトルをｓstep6として、上記常微分方程式(39)の一般解を導出すると、次式(40)が得られ、中間状態ベクトルｓstep7が求まる。この(40)式において、ＥDTはＤTの固有ベクトル、ΛDTはＤTの固有値を対角要素にもつ対角行列であり、ＤT＝ＥDTΛDTＥDT-1である。
【数３５】
0005724814.tif 000036
【００９６】
以上の方法で求めた、解析自由度が削減された流速場の中間状態ベクトルｒstep4と温度場の中間状態ベクトルｓstep7とを、それぞれ、ある時刻ｔの時間Δｔ後の時刻の流速場および温度場とする。
【００９７】
〔２−７〕シミュレーション結果の表示
第２シミュレーション部２６による熱流体シミュレーション結果は、記憶部３０の記憶領域３４に記憶され、表示制御部２２により、例えば図５〜図９に示すように、表示部４０で表示される。図５〜図９は、それぞれ、本実施形態の熱流体シミュレーション装置１によるシミュレーション結果の第１〜第５表示例を示す図である。
【００９８】
図５に示す第１表示例では、熱流体シミュレーション結果を折れ線グラフとして表示している。図６に示す第２表示例では、熱流体シミュレーション結果を数値を示した表として表示している。図７に示す第３表示例では、熱流体シミュレーション結果をコンター図（等高線表示）として表示している。図８に示す第４表示例では、熱流体シミュレーション結果をベクトル分布図として表示している。図９に示す第５表示例では、熱流体シミュレーション結果を、平面でのカラーマップとして表示している。ただし、図９では、グレースケールで表示されている。上述の表示手法のほか、粒子表示などを行なってもよい。また、第２シミュレーション部２６による熱流体シミュレーション結果は、表示部４０で視覚的に表示されるだけでなく、プリンタ（図示略）により紙などに記録されて出力されてもよい。
【００９９】
〔３〕本実施形態の熱流体シミュレーション装置の効果
本実施形態の熱流体シミュレーション装置１によれば、第１シミュレーション部２３において、流速場および温度場の事前シミュレーションが安定的逐次解法により行なわれるので、時間ステップの時間間隔を大きくとることが可能となり、事前の熱流体シミュレーションを高速に行なうことができる。
【０１００】
また、スナップショット収集部２４によって事前シミュレーション中に収集された流速場および温度場のスナップショットデータについて、モデル分析部２５が、主成分分析を行なって流速場用次元変換行列および温度場用次元変換行列を算出する。算出された流速場用次元変換行列および温度場用次元変換行列を用い、第２シミュレーション部２６において、流速場および温度場のシミュレーションが解析自由度の削減レベルで行なわれる。
【０１０１】
つまり、流速場と温度場の事前シミュレーション結果に基づき各々得られる流速場用と温度場用の次元変換行列を用い解析モデルの自由度を削減して、熱流体シミュレーションが行なわれる。
解析自由度を削減したモデルを用いたシミュレーションでは、変数の数が少なくなり計算量が削減されるため、元の自由度をもつモデルのシミュレーションよりも計算処理を大幅に高速化することが可能になる。
【０１０２】
このように、本実施形態の熱流体シミュレーション装置１によれば、第１シミュレーション部２３においては事前の熱流体シミュレーションが高速に実行されるとともに、第２シミュレーション部２６においては解析自由度を削減した状態で高速な熱流体シミュレーションが実行される。これにより、熱流体シミュレーションにより熱分布と流体の流れとを迅速に把握することが可能になる。従って、サーバや等の製品を開発する際やデータセンタ等を構築する際の熱設計が、極めて効率的に行なうことが可能になる。
【０１０３】
また、本実施形態のスナップショット収集部２４では、様々な状況が表現された流速場や温度場のスナップショットが網羅的に収集される。このとき、流速場は温度場よりも速く変化するため、流速場のスナップショットデータの収集は、温度場のスナップショットデータの収集時間間隔よりも短い時間間隔で行なわれる。これにより、流速場および温度場のそれぞれについて、様々な状況下におけるスナップショットを確実に種集することができる。
【０１０４】
〔４〕境界条件を含む解析条件の変更機能について
ところで、上述した第２シミュレーション部２６によるシミュレーション実行中に、解析条件に含まれる各種境界条件等の変更が頻繁に行なわれる場合、現在の状態を参照する頻度が高くなる。つまり、実次元空間で指定される位置（実次元位置）における境界条件を変更する場合、通常、当該位置における変更前の状態が参照される。そのため、第２シミュレーション部２６によって解析自由度削減空間で実行されているシミュレーションの状態が、解析自由度削減空間から実次元空間へ変換され、上記実次元位置での状態が参照される。この後、実次元空間において、参照した状態を加味して上記実次元位置に所望の設定値が付加され、付加後の状態が実次元空間から解析自由度削減空間へ変換される。これにより、第２シミュレーション部２６による解析自由度削減空間でのシミュレーションに、境界条件の変更が反映される。しかしながら、境界条件等を含む解析条件の変更処理時には、上述のように、解析自由度削減空間から実次元空間への次元変換や、実次元空間から解析自由度削減空間への次元変換を頻繁に実行する必要があり、その次元変換処理に多大な時間を要することになる。
【０１０５】
そこで、上述のごとく時間発展方程式を解析自由度削減空間で解く本実施形態の物理シミュレーションにおいて、以下のように実次元における境界条件の参照や変更を解析自由度削減空間で実行することで、上述した次元変換を省略することができる。これにより、解析自由度削減空間でのシミュレーション実行中に境界条件の変更等の処理が頻繁に行なわれたとしても、当該処理が高速に実行される。
【０１０６】
〔４−１〕本実施形態の熱流体シミュレーション装置における解析条件の変更処理に係る構成および機能について
以下、上述した熱流体シミュレーション装置１において、実次元における境界条件の参照や変更を解析自由度削減空間で実行するための構成や機能について、図１および図２を参照しながら説明する。実次元における境界条件の参照や変更を解析自由度削減空間で実行するための構成や機能は、熱流体シミュレーション装置１における入力操作部１０，入力部２１，モデル分析部２５および第２シミュレーション部２６により実現される。
【０１０７】
入力部２１は、前述した通り、シミュレーションに先立ち、ユーザがＧＵＩ機能を用い入力操作部１０を操作して入力した、熱流体シミュレーションに必要な計算条件データを受信し、受信した情報を記憶部３０に記録・保存する。
ここで、入力部２１により入力設定される計算条件データとしては、前述した計算条件データのほかに、第２シミュレーション部２６によるシミュレーション実行中に変更可能な解析条件（境界条件）に関する情報も含まれる。
【０１０８】
また、第２シミュレーション部２６が解析自由度削減空間でシミュレーション実行中に境界条件の変更を行なう場合、その境界条件の変更を行なうべき位置が、シミュレーションに先立ち、実次元空間内における実次元位置として予め指定される。この実次元位置に係る情報は、前記計算条件データの一つとして、入力操作部１０および入力部２１を通じ入力設定され、記憶領域３１に記録・保存される（図２の矢印ａ１，ａ２参照）。
【０１０９】
モデル分析部２５は、前述した通り、流速場用次元変換行列（上式(27),(28)参照）および温度場用次元変換行列（上式(29)参照）を算出し、記憶領域３３に解析自由度削減データとして保持させる（図２の矢印ａ７参照）。さらに、第２シミュレーション部２６が、解析自由度削減空間でシミュレーション実行中に、実次元空間内において予め指定される実次元位置で前記解析条件の変更を行なう場合、つまり境界条件の変更を行なうべき実次元位置が記憶領域３１に保存されている場合、モデル分析部２５は、以下のような機能を果たす。
【０１１０】
即ち、モデル分析部２５は、第２シミュレーション部２６によるシミュレーション実行前に、記憶領域３１の実次元位置（図２の矢印ａ１２参照）と、算出された流速場用次元変換行列または温度場用次元変換行列とに基づき、下記演算子を算出する。ここで、演算子は、予め指定された実次元位置での境界条件の変更に係る処理（変更処理）を解析自由度削減空間で実行するためのものである。演算子には、下記の参照演算子，付加演算子（境界条件付加演算子）およびクリア演算子（０クリア演算子）が含まれる。算出された演算子は、流速場用次元変換行列および温度場用次元変換行列とともに、記憶領域３３に解析自由度削減データとして保持される（図２の矢印ａ７参照）。
【０１１１】
参照演算子は、予め指定された実次元位置の状態（例えば流速，温度，流速または温度の微分値など）を解析自由度削減空間で取得・参照するもので、参照演算子については下記項目〔４−３−１〕において後述する。
境界条件付加演算子は、所望の設定値（境界条件）を実次元位置に付加（加減算）する変更処理を解析自由度削減空間で実行するもので、境界条件付加演算子については下記項目〔４−３−２〕において後述する。ここで、所望の設定値は、ユーザ等によって予め設定された所定の設定値（一定値）であってもよいし、参照演算子によって取得・参照された状態に応じた設定値、例えば当該状態を引数とする関数によって得られる値であってもよい。所望の設定値が一定値である場合、一定値は、シミュレーションに先立って設定されてもよいし、境界条件の変更を行なう際にユーザまたはシナリオ等によって設定されてもよい。所望の設定値が関数によって得られる場合、当該関数は、シミュレーションに先立って予め設定され、設定値は、境界条件の変更を行なう際に当該関数によって設定される。
０クリア演算子は、予め指定された実次元位置の状態（境界条件）をゼロにクリアする処理を解析自由度削減空間で実行するもので、０クリア演算子については下記項目〔４−３−３〕において後述する。
【０１１２】
第２シミュレーション部２６は、前述した通り、記憶領域３３の流速場用次元変換行列および温度場用次元変換行列を用い（図２の矢印ａ８参照）、記憶領域３１の計算条件に基づいて（図２の矢印ａ９参照）、流速場および温度場のシミュレーションを解析自由度の削減レベルで行なう。また、シミュレーションの実行中に、第２シミュレーション部２６は、外部からの変更指示、または、所定のシナリオに記述された変更指示に応じ、前記演算子を用い（図２の矢印ａ８参照）、解析自由度削減空間での境界条件の変更に係る処理を実行する。上記外部からの変更指示は、例えば、ユーザが入力操作部１０を操作して入力される変更指示である。上記所定のシナリオは、例えば、シミュレーションに先立ちユーザ等によって記憶領域３１に計算条件データとして予め保存されている。
【０１１３】
第２シミュレーション部２６は、参照演算子を用い、予め指定された実次元位置の状態（境界条件）を解析自由度削減空間で参照した上で、境界条件付加演算子を用い、参照した状態を加味した設定値（関数値）を、会席自由度削減空間で実次元位置に付加することができる。これにより、境界条件の変更処理が解析自由度削減空間で実行される。また、第２シミュレーション部２６は、境界条件付加演算子を用い所定の設定値を解析自由度削減空間で実次元位置に付加することもできる。このように参照演算子および境界条件付加演算子を用いた変更処理は、例えば、予め指定された実次元位置において、加速ファンや非線形ファンの速度の変更、あるいは、抵抗（外力）の変更、あるいは、発熱体の温度の変更を行なう場合に用いられる。
【０１１４】
また、第２シミュレーション部２６は、０クリア演算子を用い、予め指定された実次元位置の状態をゼロにクリアする処理を解析自由度削減空間で実行した後に、境界条件付加演算子を用い、前記設定値を解析自由度削減空間で実次元位置に付加することができる。これにより、実次元位置の状態を設定値に書き換える処理が、解析自由度削減空間で実行される。このように０クリア演算子および境界条件付加演算子を用いた変更処理は、例えば、予め指定された実次元位置において、流速指定ファンの新規追加駆動に伴う変更、あるいは、温度指定に伴う変更を行なう場合に用いられる。
【０１１５】
なお、参照演算子，境界条件付加演算子および０クリア演算子を用いてどのような変更を行なうかについては、上記外部からの変更指示によって指定されてもよいし、上記所定のシナリオに記述されていてもよい。
第２シミュレーション部２６による、境界条件の変更処理を伴うシミュレーション結果は、上述した通り、記憶領域３４に保存される（図２の矢印ａ１０参照）。記憶領域３４に記憶されたシミュレーション結果は、表示制御部２２により表示部４０において表示されるが（図２の矢印ａ１１参照）、プリンタ（図示略）により紙などに記録されて出力されてもよい。
【０１１６】
〔４−２〕本実施形態の熱流体シミュレーション装置による解析条件（境界条件）の変更処理を伴う動作について
次に、上述のような解析条件（境界条件）の変更機能を有する本実施形態の熱流体シミュレーション装置１の動作について、図１０および図１１を参照しながら説明する。
〔４−２−１〕解析条件（境界条件）の変更の動作概要
本実施形態の熱流体シミュレーション装置１（モデル分析部２５）において次元変換行列の作成時の主成分分析に利用した全てのスナップショットデータは、壁や障害物周りの自由滑り条件や流入／流出条件を含めてシミュレーション中で変化のない境界条件を満たしている。そのため、スナップショットデータから生成した基底も、基底の重ね合わせで表される流速場，温度場も、同様に、当該境界条件を自動的に満たす。
【０１１７】
上述した不変の境界条件以外に、シミュレーション実行中に参照されて変更される境界条件も存在する。このように可変な境界条件としては、特定の位置において作用する外力（抵抗）の指定や、特定の位置における流速，温度の指定などがある。このような境界条件を変更する場合、実次元空間（ｎ次元空間）から解析自由度削減空間（ｍ(＜ｎ)次元空間）への射影を計算しなおす必要がある。上述した通り、低次元空間への射影の計算は、実次元空間での計算であるため、解析の遅延を引き起こす可能性がある。そこで、本実施形態の熱流体シミュレーション装置１では、上述した参照演算子，境界条件付加演算子および０クリア演算子といった演算子を、第２シミュレーション部２６によるシミュレーション実行前に算出しておくことにより、低次元の解析自由度削減空間で境界条件の変更が実行されるようになっている。
【０１１８】
〔４−２−２〕熱流体シミュレーション装置における、解析条件（境界条件）の変更処理を伴う処理の流れ
次に、図１０に示すフローチャート（ステップＳ１１′，Ｓ１２〜Ｓ１８，Ｓ１８１，Ｓ１９′，Ｓ２０〜Ｓ２２）に従って、解析条件（境界条件）の変更機能を有する本実施形態の熱流体シミュレーション装置１の処理の流れについて説明する。
【０１１９】
なお、図１０に示す処理の流れも、基本的には図３においてステップＳ１１〜Ｓ２２によって示す処理の流れと同様である。しかし、図１０に示す処理では、図３のステップＳ１１，Ｓ１９に代えそれぞれステップＳ１１′，Ｓ１９′が実行されるとともに、ステップＳ１８とＳ１９′との間にステップＳ１８１が追加されて実行されている。ここでは、ステップＳ１２〜Ｓ１８，Ｓ２０〜Ｓ２２の説明は省略し、ステップＳ１１′，Ｓ１８１およびＳ１９′の処理について詳細に説明する。
【０１２０】
ステップＳ１１′においては、図３のステップＳ１１と同様、シミュレーションに先立ち、ユーザが入力操作部１０を操作して入力した、熱流体シミュレーションに必要な各種情報である計算条件データが、入力部２１において受信されると、受信された情報は、記憶部３０の記憶領域３１に記録保存される。ただし、ステップＳ１１′において、計算条件データには、計算条件データのほかに、第２シミュレーション部２６によるシミュレーション実行中に変更可能な解析条件（境界条件）に関する情報も含まれる。特に、第２シミュレーション部２６が解析自由度削減空間でシミュレーション実行中に境界条件の変更を行なう場合、その境界条件の変更を行なうべき実次元位置（指定位置）に係る情報が、計算条件データの一つとして、記憶領域３１に記録・保存される。
【０１２１】
ステップＳ１８において、分析部２５により、流速場用次元変換行列および温度場用次元変換行列が算出され記憶領域３３に解析自由度削減データとして保持されると、ステップＳ１８１において、分析部２５により、上述した演算子が算出され記憶領域３３に解析自由度削減データとして保持される。このとき、モデル分析部２５により、記憶領域３１に保存された、境界条件を変更すべき実次元位置と、流速場用次元変換行列または温度場用次元変換行列とに基づき、参照演算子，境界条件付加演算子および０クリア演算子のうち、ユーザが望む境界条件の変更処理に必要なものが算出される。なお、参照演算子の具体的な算出手法については、下記項目〔４−３−１〕において後述する。境界条件付加演算子の具体的な算出手法については、下記項目〔４−３−２〕において後述する。０クリア演算子の具体的な算出手法については、下記項目〔４−３−３〕において後述する。
【０１２２】
次元変換行列および演算子が算出されると、ステップＳ１９′において、図３のステップＳ１９と同様、第２シミュレーション部２６により、記憶領域３３の流速場用次元変換行列および温度場用次元変換行列を用いて解析自由度を削減した状態、つまり解析自由度削減空間で、熱流体シミュレーションが実行される。ただし、ステップＳ１９′においては、シミュレーションの実行中に、外部からの変更指示、または、所定のシナリオに記述された変更指示に応じ、第２シミュレーション部２６により、解析自由度削減空間での境界条件の変更に係る処理が実行される。以後、変更された境界条件に基づき、第２シミュレーション部２６による解析自由度削減空間での熱流体シミュレーションが実行される。
【０１２３】
このとき、第２シミュレーション部２６により、予め指定された実次元位置の状態（境界条件）に応じた設定値を、解析自由度削減空間で当該実次元位置に付加（加減算）する変更処理を実行する場合、参照演算子および境界条件付加演算子が用いられ、境界条件の変更処理が解析自由度削減空間で実行される。つまり、第２シミュレーション部２６は、参照演算子を用い、当該実次元位置の状態（境界条件）を解析自由度削減空間で参照し、境界条件付加演算子を用い、解析自由度削減空間で、参照した状態を加味した設定値（関数値）を当該実次元位置に付加する。
【０１２４】
第２シミュレーション部２６により、予め指定された実次元位置に、所定の設定値を付加（加減算）する変更処理を実行する場合、境界条件付加演算子が用いられ、境界条件の変更に係る処理が解析自由度削減空間で実行される。つまり、第２シミュレーション部２６は、境界条件付加演算子を用い、解析自由度削減空間で、所定の設定値を当該実次元位置に付加する。
【０１２５】
第２シミュレーション部２６により、予め指定された実次元位置の状態を設定値に書き換える処理を実行する場合、０クリア演算子および境界条件付加演算子が用いられ、境界条件の変更に係る処理が解析自由度削減空間で実行される。つまり、第２シミュレーション部２６は、０クリア演算子を用い、予め指定された実次元位置の状態をゼロにクリアする処理を解析自由度削減空間で実行した後に、境界条件付加演算子を用い、前記設定値を解析自由度削減空間で実次元位置に付加する。
【０１２６】
〔４−３〕演算子およびその算出手法について
次に、本実施形態の熱流体シミュレーション装置１におけるモデル分析部２５で算出される３種類の演算子およびその算出手法について、具体的に説明する。
〔４−３−１〕参照演算子
参照演算子は、前述した通り、実次元空間で予め指定された実次元位置の状態（例えば流速，温度，流速または温度の微分値など）を、解析自由度削減空間で取得・参照するもので、以下のように定義・算出される。
【０１２７】
ここでは、図１１に示すような二次元格子を考え、このとき、２８番目（セル）の位置（実次元位置）が予め指定され、この位置における流速のｘ成分ux28を取得する参照演算子について説明する。なお、図１１は、本実施形態の参照演算子を説明すべく、実次元空間における参照対象セルの位置を示す図である。
【０１２８】
ここで，ｉ番目（ｉ＝０〜ｎ）のセルの速度を[uxi, uyi]として、全てのセルの速度を並べた列ベクトル（速度ベクトル）ｕallを考える（下式(41)参照）。このとき、参照したい速度ux28は、列ベクトルｕallにおける全２（ｎ＋１）個の要素中、５７番目の要素となる。
【数３６】
0005724814.tif 000037
【０１２９】
ここで、i番目の要素を１、その他の要素を全て０とした列ベクトルＩiを考えると、ｉ＝５７のとき、下式(42)が得られる。
【数３７】
0005724814.tif 000038
【０１３０】
速度ベクトルｕallの解析自由度削減空間でのベクトル表現をｒallとし、指定された実次元位置Ｉ57の状態Ｉ57ｕallを解析自由度削減空間で取得する参照演算子をＣｒとし、上式(27),(28)を適用すると、下式(43)が得られ、この式(43)に基づき参照演算子Ｃｒが下式(44)によって定義される。つまり、予め指定される実次元位置Ｉiと、流速場用次元変換行列ＰおよびＰＴ（ＰＴはＰの逆行列）とに基づき、参照演算子Ｃｒが算出される。
【数３８】
0005724814.tif 000039
【０１３１】
このような参照演算子Ｃｒがモデル分析部２５で算出され、第２シミュレーション部２６は、シミュレーション実行中の任意の時点における、解析自由度削減空間でのベクトル表現ｒallに参照演算子Ｃｒを乗算する。これにより、当該時点での、実次元位置Ｉiの流速に対応する解析自由度削減空間での状態が、Ｃｒｒall＝ＰＴＩiＰｒallとして取得されることになる。
【０１３２】
なお、ここでは、速度の列ベクトルｕallに係る参照演算子Ｃｒについて説明したが、温度の列ベクトルｓについても、上述と同様の参照演算子Ｃｒが、予め指定される実次元位置Ｉiと、温度場用次元変換行列ＱおよびＱＴ（ＱＴはＱの逆行列）とに基づき、下式(45)によって定義される。
【数３９】
0005724814.tif 000040
【０１３３】
一方、参照演算子Ｃrにおける係数の設定により、微分値の取得も可能となる。ここでは、例えば、２８番目のセル（実次元位置）におけるx方向の速度の変化量（微分値；下式(46)）を参照する参照演算子Ｃrについて考える。
【数４０】
0005724814.tif 000041
【０１３４】
ここで、変化量演算に必要な速度ux27，ux29は、速度ベクトルｕallにおける全２（ｎ＋１）個の要素中、５５番目および５９番目の要素である。また、５７行目５５列目の値を−１/Δｘ、５７行目５９列目の値を＋１/Δｘ、その他の値を全て０とした、全２（ｎ＋１）×２（ｎ＋１）の行列Ｘを考えると、下式(47)が得られる。なお、Δｘは、セルのｘ方向間隔である。
【数４１】
0005724814.tif 000042
【０１３５】
上式(47)に上式(27),(28)を適用すると、下式(48)が得られ、この式(48)に基づき参照演算子Ｃｒが下式(49)によって定義される。つまり、予め指定される実次元位置によって規定される行列Ｘと、流速場用次元変換行列ＰおよびＰＴとに基づき、参照演算子Ｃｒが算出される。したがって、下式(49)のごとき参照演算子Ｃｒを用いることにより、解析自由度削減空間において実次元空間での微分値の参照も可能になる。なお、ここでは、速度の微分値に係る参照演算子Ｃｒについて説明したが、温度の微分値を参照する参照演算子Ｃｒも、(49)式と同様、Ｃｒ＝ＱＴＸＱとして定義することができる。
【数４２】
0005724814.tif 000043
【０１３６】
〔４−３−２〕境界条件付加演算子
境界条件付加演算子は、前述した通り、所望の設定値（境界条件）を実次元位置に付加（加減算）する変更処理を解析自由度削減空間で実行するもので、以下のように定義・算出される。そして、算出された境界条件付加演算子を用いることで、境界条件の変更が解析自由度削減空間で反映される。
【０１３７】
以下では、指定位置（実次元位置）の流速に指定値（設定値）を外力として付加する処理（境界条件の変更処理）を実行するための境界条件付加演算子について説明する。
ここで、外力ベクトルｆ＝[f1, … ,fn]Tは、次式(50)の形で表現可能である。
【数４３】
0005724814.tif 000044
【０１３８】
上式(50)において、ｆiは、外力ベクトルｆのi番目の要素の変数に作用する外力のスカラ値、Ｘは、スカラ値ｆiがゼロでない要素番号の集合である。上式(50)を、流速場用次元変換行列Ｐを用いて低次元化すると、低次元空間つまり解析自由度削減空間での外力ベクトルｆrは、次式(51)で表される。なお、式(51)において、Ｃriは要素iの参照演算子である。
【数４４】
0005724814.tif 000045
【０１３９】
上式(51)における参照演算子Ｃri＝ＰＴＩiを事前に算出しておくことで、解析自由度削減空間において、所望の外力を、実次元空間における境界条件の設定位置に指定値として付加する処理を行なうことができる。ここで、下式(52)のような演算子が、境界条件付加演算子Ｃａとして定義され算出される。
【数４５】
0005724814.tif 000046
【０１４０】
実際に上式(52)を用いて境界条件を変更する際には、シミュレーションにおける時間幅Δtが十分小さいものとし、下式(53)によって、変更後の速度ベクトルｒ′が得られる。
【数４６】
0005724814.tif 000047
なお、ここでは、速度場に係る境界条件付加演算子Ｃaについて説明したが、温度場についても、上述と同様の境界条件付加演算子Ｃaが、定義され算出される。
【０１４１】
〔４−３−３〕０クリア演算子
次に、ｎ次元空間（実次元空間）における特定の位置の流速，温度を低次元空間（解析自由度削減空間）において指定した値に修正する処理について考える。本実施形態では、実次元空間での境界条件の設定位置の流速または温度のみを、低次元空間で０にする０クリア演算子が定義され、０クリア演算子と上述した境界条件付加演算子とを組み合わせることで、指定位置の流速または温度が修正され書き換えられる。
【０１４２】
ここでは、まず、下式(54),(55)によって定義される行列Mを考える． 
【数４７】
0005724814.tif 000048
【０１４３】
ここで、Ｘは境界条件が設定される要素番号の集合、Ｅは単位行列、Ｉcは要素数ｎ＋１で全ての要素が０の列ベクトルである。
このような行列Ｍを下式(56)のように使用することで、状態を表すベクトルｕを、実次元空間で境界条件を変更すべき位置（指定位置）の流速および温度を０にした状態ベクトルｕ′に変換修正することができる。
【数４８】
0005724814.tif 000049
【０１４４】
上式(56)を、流速場用次元変換行列Ｐを用いて低次元化すると、実次元空間の状態ベクトルｕ′に対応する、低次元空間つまり解析自由度削減空間での状態ベクトルｒ′は、次式(57)で表される。ここで、行列Zが、０クリア演算子として定義され算出される。つまり、指定位置Ｉiに基づいて規定される行列Ｍと、流速場用次元変換行列ＰおよびＰＴ（ＰＴはＰの逆行列）とに基づき、０クリア演算子Ｚ＝ＰＴＭＰが算出される。
【数４９】
0005724814.tif 000050
【０１４５】
そして、上述した０クリア演算子Ｚと境界条件付加演算子Ｃaとの組み合わせ処理により、実次元空間の指定位置の流速や温度を指定の値に修正する処理が、次式(58)によって実現される。
【数５０】
0005724814.tif 000051
なお、ここでは、速度場に係る０クリア演算子Ｚについて説明したが、温度場についても、上述と同様の０クリア演算子Ｚが、定義され算出される。
【０１４６】
〔４−４〕境界条件の変更機能による効果
上述した参照演算子Ｃr，境界条件付加演算子Ｃaおよび０クリア演算子Ｚは、いずれも第２シミュレーション部２６による解析自由度削減空間でのシミュレーション実行前に計算可能である。そして、これらの演算子を用いることにより、第２シミュレーション部２６によるシミュレーション中に、解析自由度削減空間で表現される状態を実次元空間での状態へ戻すことなく、境界条件の修正変更を行なうことができる。
【０１４７】
したがって、第２シミュレーション部２６によるシミュレーション実行中に境界条件等の変更が行なわれた際に、解析自由度削減空間から実次元空間への次元変換や、実次元空間から解析自由度削減空間への次元変換を実行する必要がなくなる。これにより、境界条件等の変更が頻繁に行なわれたとしても、境界条件等の変更処理によって処理時間を増大させることがなく、シミュレーション処理を効率よく行なうことができる。
【０１４８】
〔５〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
なお、上述した入力部２１，表示制御部２２，第１シミュレーション部２３，スナップショット収集部２４，モデル分析部２５および第２シミュレーション部２６としての機能の全部もしくは一部は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が所定のアプリケーションプログラム（熱流体シミュレーションプログラム）を実行することによって実現される。
【０１４９】
そのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷなど），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋Ｒ，ＤＶＤ＋ＲＷなど），ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
【０１５０】
ここで、コンピュータとは、ハードウエアとＯＳ（オペレーティングシステム）とを含む概念であり、ＯＳの制御の下で動作するハードウエアを意味している。また、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウエアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記熱流体シミュレーションプログラムは、上述のようなコンピュータに、入力部２１，表示制御部２２，第１シミュレーション部２３，スナップショット収集部２４，モデル分析部２５および第２シミュレーション部２６の機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくＯＳによって実現されてもよい。
【０１５１】
〔６〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
（付記１）
流速場および温度場のシミュレーションを行なうコンピュータに、
流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行ない、
前記所定の解析自由度でのシミュレーションの結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出し、
算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう、
処理を実行させる、熱流体シミュレーションプログラム。
【０１５２】
（付記２）
前記所定の解析自由度でのシミュレーション中の流速場および温度場のそれぞれについて、所定のタイミングでスナップショットデータを収集する、処理を前記コンピュータに実行させるとともに、
前記解析自由度の削減レベルを決定する際、収集された流速場のスナップショットデータおよび温度場のスナップショットデータのそれぞれについて、主成分分析を行なって前記解析自由度の削減レベルを決定する、処理を、前記コンピュータに実行させる、付記１記載の熱流体シミュレーションプログラム。
【０１５３】
（付記３）
前記スナップショットデータを収集する際、様々の状況の流速場および温度場のスナップショットデータを網羅的に収集する、処理を、前記コンピュータに実行させる、付記２記載の熱流体シミュレーションプログラム。
【０１５４】
（付記４）
流速場のスナップショットデータの収集を、温度場のスナップショットデータの収集時間間隔よりも短い時間間隔で行なう、処理を、前記コンピュータに実行させる、付記３記載の熱流体シミュレーションプログラム。
【０１５５】
（付記５）
前記の流速場および温度場のシミュレーションを、ナビエ・ストークス方程式および熱移流拡散方程式に基づいて実行する、処理を、前記コンピュータに実行させる、付記１〜付記４のいずれか一項に記載の熱流体シミュレーションプログラム。
【０１５６】
（付記６）
前記の流速場および温度場のシミュレーションを、前記のナビエ・ストークス方程式および熱移流拡散方程式における各項を個別に考慮して逐次的に解く安定的逐次解法によって実行する、処理を、前記コンピュータに実行させる、付記５記載の熱流体シミュレーションプログラム。
【０１５７】
（付記７）
前記主成分分析の結果である累積寄与度が所定閾値以上となる固有ベクトルの次元数を、前記解析自由度の削減レベルとして決定する、処理を、前記コンピュータに実行させる、付記２〜付記４のいずれか一項に記載の熱流体シミュレーションプログラム。
【０１５８】
（付記８）
所定の解析条件に基づき、前記解析自由度の削減レベルを有する解析自由度削減空間でシミュレーション実行中に、前記所定の解析自由度を有する実次元空間内において予め指定される実次元位置で前記解析条件の変更を行なう場合、解析自由度削減空間での前記シミュレーション実行前に、前記実次元位置と前記流速場用次元変換行列または前記温度場用次元変換行列とに基づき、前記実次元位置での前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する演算子を算出する、処理を前記コンピュータに実行させるとともに、
算出された前記演算子を用い、前記解析自由度削減空間での前記解析条件の変更に係る処理を実行する、処理を、前記コンピュータに実行させる、付記１〜付記７のいずれか一項に記載の熱流体シミュレーションプログラム。
【０１５９】
（付記９）
前記演算子は、
前記実次元位置の状態を前記解析自由度削減空間で取得する参照演算子と、
前記参照演算子によって取得された前記状態に応じた設定値を前記実次元位置に付加することにより、前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する付加演算子と、
を含む、付記８に記載の熱流体シミュレーションプログラム。
【０１６０】
（付記１０）
前記演算子は、
所定の設定値を前記実次元位置に付加することにより、前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する付加演算子を含む、付記９記載の熱流体シミュレーションプログラム。
【０１６１】
（付記１１）
前記演算子は、
前記実次元位置の状態をゼロにクリアする処理を前記解析自由度削減空間で実行するクリア演算子をさらに含み、
前記クリア演算子を用いて前記実次元位置の状態をゼロにクリアする処理を前記解析自由度削減空間で実行した後に前記付加演算子を用いて前記設定値を前記実次元位置に付加することにより、前記実次元位置の状態を前記設定値に書き換える処理を、前記解析条件の変更に係る処理として、前記解析自由度削減空間で実行する、処理を、前記コンピュータに実行させる、付記９または付記１０に記載の熱流体シミュレーションプログラム。
【０１６２】
（付記１２）
外部からの変更指示、または、所定のシナリオに記述された変更指示に応じ、前記演算子を用いた前記解析条件の変更に係る処理を実行する、処理を、前記コンピュータに実行させる、付記８〜付記１１のいずれか一項に記載の熱流体シミュレーションプログラム。
【０１６３】
（付記１３）
流速場および温度場のシミュレーションを行なう熱流体シミュレーション装置であって、
流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行なう第１シミュレーション部と、
前記第１シミュレーション部によるシミュレーション結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出する分析部と、
前記分析部によって算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう第２シミュレーション部と、
を有する熱流体シミュレーション装置。
【０１６４】
（付記１４）
前記第１シミュレーション部によるシミュレーション中の流速場および温度場のそれぞれについて、所定のタイミングでスナップショットデータを収集する収集部をさらにそなえ、
前記分析部は、前記収集部によって収集された流速場のスナップショットデータおよび温度場のスナップショットデータのそれぞれについて、主成分分析を行なって前記解析自由度の削減レベルを決定する、付記１３記載の熱流体シミュレーション装置。
【０１６５】
（付記１５）
前記収集部は、様々の状況の流速場および温度場のスナップショットデータを網羅的に収集する、付記１４記載の熱流体シミュレーション装置。
（付記１６）
前記収集部は、流速場のスナップショットデータの収集を、温度場のスナップショットデータの収集時間間隔よりも短い時間間隔で行なう、付記１５記載の熱流体シミュレーション装置。
【０１６６】
（付記１７）
前記の流速場および温度場のシミュレーションは、ナビエ・ストークス方程式および熱移流拡散方程式に基づいて実行される、付記１３〜付記１６のいずれか一項に記載の熱流体シミュレーション装置。
【０１６７】
（付記１８）
前記の流速場および温度場のシミュレーションは、前記のナビエ・ストークス方程式および熱移流拡散方程式における各項を個別に考慮して逐次的に解く安定的逐次解法によって実行される、付記１７記載の熱流体シミュレーション装置。
【０１６８】
（付記１９）
前記分析部は、前記主成分分析の結果である累積寄与度が所定閾値以上となる固有ベクトルの次元数を、前記解析自由度の削減レベルとして決定する、付記１４〜付記１６のいずれか一項に記載の熱流体シミュレーション装置。
【０１６９】
（付記２０）
前記第２シミュレーション部が、所定の解析条件に基づき、前記解析自由度の削減レベルを有する解析自由度削減空間でシミュレーション実行中に、前記所定の解析自由度を有する実次元空間内において予め指定される実次元位置で前記解析条件の変更を行なう場合、前記分析部は、前記第２シミュレーション部によるシミュレーション実行前に、前記実次元位置と前記流速場用次元変換行列または前記温度場用次元変換行列とに基づき、前記実次元位置での前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する演算子を算出し、
前記第２シミュレーション部は、前記分析部によって算出された前記演算子を用い、前記解析自由度削減空間での前記解析条件の変更に係る処理を実行する、付記１３〜付記１９のいずれか一項に記載の熱流体シミュレーション装置。
【０１７０】
（付記２１）
前記演算子は、
前記実次元位置の状態を前記解析自由度削減空間で取得する参照演算子と、
前記参照演算子によって取得された前記状態に応じた設定値を前記実次元位置に付加することにより、前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する付加演算子と、
を含む、付記２０に記載の熱流体シミュレーション装置。
【０１７１】
（付記２２）
前記演算子は、
所定の設定値を前記実次元位置に付加することにより、前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する付加演算子を含む、付記２０記載の熱流体シミュレーション装置。
【０１７２】
（付記２３）
前記演算子は、
前記実次元位置の状態をゼロにクリアする処理を前記解析自由度削減空間で実行するクリア演算子をさらに含み、
前記第２シミュレーション部は、前記クリア演算子を用いて前記実次元位置の状態をゼロにクリアする処理を前記解析自由度削減空間で実行した後に前記付加演算子を用いて前記設定値を前記実次元位置に付加することにより、前記実次元位置の状態を前記設定値に書き換える処理を、前記解析条件の変更に係る処理として、前記解析自由度削減空間で実行する、付記２１または付記２２に記載の熱流体シミュレーション装置。
【０１７３】
（付記２４）
前記第２シミュレーション部は、外部からの変更指示、または、所定のシナリオに記述された変更指示に応じ、前記演算子を用いた前記解析条件の変更に係る処理を実行する、付記２０〜付記２３のいずれか一項に記載の熱流体シミュレーション装置。
【０１７４】
（付記２５）
流速場および温度場のシミュレーションをコンピュータにより行なう熱流体シミュレーション方法であって、
流速場および温度場のシミュレーションをそれぞれ所定の解析自由度で行ない、
前記所定の解析自由度でのシミュレーションの結果に基づき前記所定の解析自由度よりも小さい解析自由度の削減レベルを決定し、流速場の解析モデルを、前記所定の解析自由度から、流速場について決定された解析自由度の削減レベルへ変換する流速場用次元変換行列を算出するとともに、温度場の解析モデルを、前記所定の解析自由度から、温度場について決定された解析自由度の削減レベルへ変換する温度場用次元変換行列を算出し、
算出された前記流速場用次元変換行列および前記温度場用次元変換行列を用いて流速場の解析モデルおよび温度場の解析モデルをそれぞれ自由度削減モデルに変換し、流速場および温度場のシミュレーションを前記解析自由度の削減レベルで行なう、熱流体シミュレーション方法。
【０１７５】
（付記２６）
前記所定の解析自由度でのシミュレーション中の流速場および温度場のそれぞれについて、所定のタイミングでスナップショットデータを収集し、
前記解析自由度の削減レベルを決定する際、収集された流速場のスナップショットデータおよび温度場のスナップショットデータのそれぞれについて、主成分分析を行なって前記解析自由度の削減レベルを決定する、付記２５記載の熱流体シミュレーション方法。
【０１７６】
（付記２７）
前記スナップショットデータを収集する際、様々の状況の流速場および温度場のスナップショットデータを網羅的に収集する、付記２６記載の熱流体シミュレーション方法。
（付記２８）
流速場のスナップショットデータの収集を、温度場のスナップショットデータの収集時間間隔よりも短い時間間隔で行なう、付記２７記載の熱流体シミュレーション方法。
【０１７７】
（付記２９）
前記の流速場および温度場のシミュレーションを、ナビエ・ストークス方程式および熱移流拡散方程式に基づいて実行する、付記２５〜付記２８のいずれか一項に記載の熱流体シミュレーション方法。
【０１７８】
（付記３０）
前記の流速場および温度場のシミュレーションを、前記のナビエ・ストークス方程式および熱移流拡散方程式における各項を個別に考慮して逐次的に解く安定的逐次解法によって実行する、付記２９記載の熱流体シミュレーション方法。
【０１７９】
（付記３１）
所定の解析条件に基づき、前記解析自由度の削減レベルを有する解析自由度削減空間でシミュレーション実行中に、前記所定の解析自由度を有する実次元空間内において予め指定される実次元位置で前記解析条件の変更を行なう場合、解析自由度削減空間での前記シミュレーション実行前に、前記実次元位置と前記流速場用次元変換行列または前記温度場用次元変換行列とに基づき、前記実次元位置での前記解析条件の変更に係る処理を前記解析自由度削減空間で実行する演算子を算出する、処理を前記コンピュータ（２０）に実行させるとともに、
算出された前記演算子を用い、前記解析自由度削減空間での前記解析条件の変更に係る処理を実行する、付記２５〜付記３０のいずれか一項に記載の熱流体シミュレーション方法。
【符号の説明】
【０１８０】
１    熱流体シミュレーション装置
１０    入力操作部
２０    処理部（ＣＰＵ，コンピュータ）
２１    入力部
２２    表示制御部
２３    事前熱流体シミュレーション部（第１シミュレーション部）
２４    スナップショット収集部（収集部）
２５    モデル分析部（分析部）
２６    自由度削減熱流体シミュレーション部（第２シミュレーション部）
３０    記憶部
３１    計算条件データ記憶領域
３２    スナップショットデータ記憶領域
３３    解析自由度削減データ記憶領域
３４    シミュレーション結果記憶領域
４０    表示部
【図１】
0005724814.tif 000052
【図２】
0005724814.tif 000053
【図３】
0005724814.tif 000054
【図４】
0005724814.tif 000055
【図５】
0005724814.tif 000056
【図６】
0005724814.tif 000057
【図８】
0005724814.tif 000058
【図１０】
0005724814.tif 000059
【図１１】
0005724814.tif 000060
【図７】
0005724814.tif 000061
【図９】
0005724814.tif 000062