(58)【調査した分野】(Int.Cl.,DB名)
請求項1に記載のシミュレーション装置としてコンピュータを機能させるための制御プログラムであって、上記長波長成分算出部、上記短波長成分算出部、および上記合成部としてコンピュータを機能させるための制御プログラム。
【発明を実施するための形態】
【0019】
本実施形態に係るシミュレーション装置1は、所定の式を予め記憶させておくことで、シミュレーションを行うことができる。
【0020】
そこでまず、本実施形態に係るシミュレーション装置1が実行するシミュレーション方法で用いる式の導出方法を説明する。
【0021】
なお、以下では、三次元空間に設定した計算格子のうち、鉛直方向の座標スケールが、2つの水平方向の座標スケールの2倍以上である場合の式の導出方法について説明する。
【0022】
三次元直交座標系における非圧縮流体の数値計算では、安定性を確保するため、以下の式(1)(Courant条件)を満たす必要がある。
【0024】
ここで、xおよびyは水平方向座標を示し、zは鉛直方向座標を示す。また、Δx、Δy、Δzはそれぞれの方向の座標スケールを示し、Δtは時間刻み幅を示す。また、u、v、wは各方向の速度を示す。また、下付添字の「max」は計算領域内における最大値を表している。
【0025】
ここで、河川、湖、海洋等の水系環境では、数値シミュレーションに用いる計算格子の鉛直方向のスケールが、水平方向のスケールと比較して1/10〜1/1000のオーダで小さくなる。この点に基づき、Δx≒Δy>>Δzとした場合、式(1)より、Δtはw
max/Δzにほぼ依存することになる。なお、Δx≒Δy≒Δzとした場合は、式(1)を満たせば数値解を得ることができるが、水平方向に膨大な数の計算格子を要することになる。
【0026】
そこで、以下の静水圧近似モデルが提案されている。上記のような計算格子スケールの制約から、シミュレーションの演算が収束せず、発散してしまうという問題を回避するため、まず、圧力を静水圧近似した以下の式を用いる。
【0028】
ここで、pは圧力、p
0は大気圧、hは水面高さ、ρは密度、gは重力加速度を示す。この近似式を用いることにより、Courant条件は次式に緩和される。
【0030】
ただし、前記の式(3)では、鉛直方向の動的挙動を計算することができない。近年のシミュレーションでは、陸地近海や湾内において数百m以下の分解能での精度が求められており、水平方向速度の水深依存性と鉛直方向流の影響を考慮することは不可欠である。したがって、前記の式(3)は必ずしも妥当とは言えない。
【0031】
そこで、本実施形態では、上記のような計算格子スケールの制約から、シミュレーションの演算が収束せず、発散してしまうという問題を回避するため、以下の方法で方程式を導出する。具体的には、まず、鉛直方向に対し準動的な運動方程式を導出し、次に、Projection法に適用するために離散化法を適用する。そして、自由表面を組み込むように拡張する。
【0032】
〔式の導出〕
シミュレーション対象となる流体は、流体として相変化がない擬圧縮性のニュートン流体を仮定する。
【0033】
まず、カーテシアン三次元直交座標系に対して、以下のように、基礎式として、質量保存式(4)および運動量保存式(5)(6)(7)を与える。
【0038】
ここで、tは時間、D/Dtは物質微分、μは粘度である。Δx≒Δy>>Δzを考慮すれば、z方向の式(7)は次式(8)のように近似できる。
【0040】
次に、鉛直方向の波長を考慮して、変数wおよび変数pをそれぞれ以下の通り長波長成分と短波長成分との2つに分解する。なお、数式中に示したアルファベット文字の上にハット(^)が付いた文字を、本明細書中では、アルファベット文字の横にハットを付して表記する。以下、他の文字についても同様である。
【0042】
ここで、上記の式(4)〜式(8)におけるu、v、およびwのうちのw^は、波長がΔx≒Δy>>Δzのスケールで捕捉できる波長成分(以下、長波長成分と称することもある。)の各方向の速度を意味し、pのうちのp^は、長波長成分の圧力を意味する。また、wのうちのw’は、Δzのスケールで捕捉できる波長成分(以下、短波長成分と称することもある。)のz方向の速度を意味し、pのうちのp’は、短波長成分の圧力を意味する。式(9)、および式(10)を用いて、上記の式(4)〜式(6)、および式(8)を書き換えると、次の式(11)、式(12)、式(13)、および式(14)がそれぞれ得られる。
【0047】
次に、数値解法としてProjection法(棚橋隆彦著者「CFDの基礎理論」アイピーシー、pp.201-220、1990を参照)を適用し、Euler陽解法(小林敏雄[ほか]編「数値流体力学ハンドブック」丸善、2003年3月、pp.19−65を参照)を用いて、上記の式(12)、式(13)、および式(14)を時間的に離散化すると、次の式(15)、式(16)、および式(17)を得ることができる。
【0051】
ここで、上付添字の「n+1」は次の時刻(n+1)Δtにおける値であることを示し、G
x、G
y、G
zは、現在時刻nから得られた既知の値をまとめた変数を示す。
【0052】
(1.速度予測子)
上記の式(15)、式(16)、および式(17)は、p^
n+1が未知であるため、圧力項を除いて速度予測子
【0054】
を計算する。そのため、速度予測子はそれぞれ、次の式(18)、式(19)および式(20)のように記載できる。
【0056】
まず、u、およびvについて導出を進める。上記の式(18)、および式(19)を、上記の式(15)、および式(16)に代入することで、次の式(21)、および式(22)が得られる。
【0058】
ここから、次の式(23)、および式(24)がそれぞれ得られる。
【0060】
一方、wについては、上記式(20)を、上記式(17)に代入することで、次の式(25)が得られる。
【0062】
ここから、次の式(26)が得られる。
【0064】
次に、上記式(11)を、時間的に離散化することで、次の式(27)が得られる。
【0066】
(2.圧力の長波長成分の式)
上記式(27)について、Δx≒Δyのスケールで捕捉できる波長成分を考慮して、w’=p’=0とし、直交分解すると、p^
n+1に関する以下のポアソン方程式(28)(圧力の長波長成分の式)を得ることできる。
【0068】
(3.速度の長波長成分の式)
また同様に、上記の式(21)、式(22)、および式(25)について、Δx≒Δyのスケールで捕捉できる波長成分を考慮して、w’=p’=0とすると、以下の式(29)〜式(31)で示す通り、u、v、w^の時間更新の式(速度の長波長成分の式)を得ることできる。
【0070】
(4.圧力の短波長成分の式)
一方、上記式(27)を、Δzのスケールで捕捉できる波長成分に関して、直交分解して解くと、p’
n+1に関する以下のポアソン方程式(32)(圧力の短波長成分の式)を得ることできる。
【0072】
(5.速度の短波長成分の式)
また同様に、上記式(26)を、Δzのスケールで捕捉できる波長成分に関して解くと、以下の式(33)で示す通り、w’の時間更新の式(速度の短波長成分の式)を得ることできる。
【0074】
ここで、w’の計算は、安定性の問題からΔtの制約が必要である。そのため、Δtの代わりに、例えば、次の式(34)、および式(35)で算出したΔt
zを用いるとよい。
Δt
z=Δt/E
z (34)
【0076】
ここで、INTは小数点以下を切り捨てて整数化することを意味している。
【0077】
〔ポアソン方程式の数値解法の例〕
(1.圧力の長波長成分の式)
圧力の長波長成分の式である、上記のポアソン方程式(28)を数値的に解く方法を述べる。
【0078】
通常の数値流体力学の手法に倣い、変数はスタガード配置を用いる。
図2に示すように、スカラーを格子中心、ベクトルを格子の境界面に配置する。
図2は、スタガード配置の格子例を示す図である。なお、
図2では、見易さを考慮して、二次元で描いている。これによって、変数の非物理的な振動を抑えられる。x、y、z座標軸の格子位置をそれぞれi、j、kとおくと、ポアソン方程式(28)の第1項、および第2項(=Sijkとおく)は、以下の式(36)で示すように離散化できる。
【0080】
また同様に、ポアソン方程式(28)の第3項(圧力項)は、以下の式(37)で示すように離散化できる。なお、以下では、記載を容易にするため、時刻をあらわす上付き添え字を省略している。
【0082】
上記式(28)に上記の式(36)および式(37)を代入すると、pに関する演算ができる。その演算法としては大きく分けて直接法と反復法とがあるが、ここでは、反復法の一例であるGauss−Seidel法(小林敏雄[ほか]編「数値流体力学ハンドブック」丸善、2003年3月、p.19−65を参照)により以下の式(38)を導出する。
【0084】
ここで、C
C、C
R、C
L、C
T、C
B、C
F、C
Oは、上記式(37)に含まれる添え字が同一のpの係数である。上記式(37)を用いて、i、j、kに関するループを組み、収束するまで繰り返し計算を行うことにより、圧力の長波長成分p^に関する収束値を得る。
【0085】
(2.圧力の短波長成分の式)
同様に、圧力の短波長成分の式である、上記のポアソン方程式(32)も、次式(39)で示すように離散化できる。
【0087】
上記式(39)を用いて、圧力の長波長成分p^と同様に、収束するまで繰り返し計算を行うことにより、圧力の短波長成分p’に関する収束値を得ることができる。
【0088】
〔圧力境界条件〕
次に、液面の位置を考慮した圧力境界条件について説明する。
【0089】
本実施形態のように、Δx≒Δy>>Δzの計算格子を使用する場合、シミュレーションの不安定性や数値誤差を防止できるため、液面の位置を考慮することが好ましい。自由表面を水平方向に対する一価関数として計算することにより、液面の位置を考慮することができる。自由表面を水平方向に対する一価関数として計算する方法としては、例えば、SOLA−Surf(SOLution Algorithm-Surf)法等が挙げられる。
【0090】
そこで、本実施形態では、SOLA−Surf法(Hirt, C.W., Nichols, B.D., Romero, N.C. (1975): SOLA-A Numerical Solution Algorithm for Transient Fluid Flow ,Los Alamos Scientific Laboratory, LA-5852, pp. 1-50を参照)に倣い、自由表面を水平方向に対する一価関数h(海底からの液面の位置)として計算する。hは、次式(40)を用いて得ることができる。なお、自由表面を再現できる手法であればよく、VOF(Volume of Fluid)法、ALE(Arbitrary Lagrangian-Eulerian)法、BFC(Boundary Fitted Coordinate)法(いずれも小林敏雄[ほか]編「数値流体力学ハンドブック」丸善、2003年3月、pp.19−65を参照)などの方法も適用可能である。
【0092】
液面の影響を考慮するため、圧力境界条件を課す必要がある。
図3は、自由表面における圧力境界条件を説明するための図である。
【0093】
x方向およびz方向に関する格子位置をそれぞれi、kと番号付けする。位置(i,k)における圧力をp
ikと表記する。スタガード配置に倣い、p
ikは格子中心位置で定義するものとする。
【0094】
一例として、p
ikの位置とp
ik+1の位置との間に液面がある場合を考える。セル幅Δzに対する、液面位置とp
ikの位置との距離の比をηとする。液面位置で大気側の圧力がp
atmとなる条件を付与し、線形内挿関係を考慮すれば、次式(41)を得ることができる。
【0096】
上記式(41)で得られる圧力を、圧力の式(38)、および式(39)の境界条件として付与する。
【0097】
Projection法は、圧力を直接、反復計算するので、液面の位置を考慮した条件を直接反映できるのに加え、ポアソン方程式の解法を自由に選択することができる。そのため、本実施形態のように、数値解法としてProjection法を採用することにより、液面の位置を圧力境界条件への組み込むことも容易となる。また他の数値解法としてSOLA法、SMAC(Simplified Maker and Cell)法等が挙げられる。中でもSOLA法は速度と圧力とを同時反復する方法であるため、液面の位置を圧力境界条件として組み込み易い。
【0098】
本実施形態に係るシミュレーション装置1は、後述するとおり、予め上記で算出された式を記憶させておくことでシミュレーションを行うことができる。
【0099】
本実施形態に係るシミュレーション装置1の装置構成および処理フローを、以下、詳細に説明する。
【0100】
〔シミュレーション装置1の構成〕
まず、
図1を参照して、シミュレーション装置1の要部構成について説明する。
図1は、シミュレーション装置1の要部構成を示すブロック図である。
図1に示すように、シミュレーション装置1には、入力装置2と表示装置3とが接続されている。
【0101】
入力装置2は、シミュレーション装置1を操作するための装置である。入力装置2は、シミュレーション装置1を操作するための入力操作を受け付け、受け付けた入力操作の内容を示す操作データをシミュレーション装置1に送信できるものであればよく、例えばマウス、キーボード等を適用することもできる。
【0102】
表示装置3は、シミュレーション装置1が出力する表示用データを用いて画像を表示する装置である。表示装置3は、画像を表示できるものであればよく、液晶表示装置、有機EL(Electro Luminescence)表示装置等を適用することもできる。表示装置3には、シミュレーション装置1を操作するための操作画面、シミュレーション結果等が表示される。
【0103】
シミュレーション装置1は、制御部10、および記憶部20を備えている。
【0104】
制御部10は、シミュレーション装置1の動作を統括して制御するものである。制御部10は、記憶部20に格納されているプログラムを、例えばRAM(Random Access Memory)等に読み出して実行することによって上記の制御を行う。
【0105】
記憶部20は、シミュレーション装置1が動作するために必要なデータやプログラム等を格納している。また、シミュレーションの過程で算出される途中結果、シミュレーションの最終結果なども記憶部20に格納される。ここで、記憶部20には、シミュレーションの過程で用いられる、流体の物性を示すパラメータ(密度、粘度、熱容量、熱伝導度、等)、初期値、境界条件(壁における圧力、潮の流れ、等)、変数等や、計算命令順序等があらかじめ登録されており、シミュレーションの開始時または参照時に読み込ませるものとする。
【0106】
制御部10には、シミュレーション算出部30、シミュレーション制御部50、および表示制御部60が含まれ、シミュレーション算出部30には、速度予測子算出部31、圧力長波長成分算出部(長波長成分算出部)32、圧力短波長成分算出部(短波長成分算出部)33、圧力合成部(合成部)34、速度長波長成分算出部(長波長成分算出部)35、速度短波長成分算出部(短波長成分算出部)36、速度合成部(合成部)37、および圧力境界条件算出部38が含まれている。
【0107】
速度予測子算出部31は、x,y,z座標軸の各計算格子位置(i、j、k)について、x、y、z方向の速度予測子を算出するものである。具体的には、計算格子毎に、上述した式(18)、式(19)、および式(20)を用いて算出する。
【0108】
圧力長波長成分算出部32は、x,y,z座標軸の各計算格子位置(i、j、k)について、圧力の長波長成分を算出するものである。具体的には、計算格子毎に、上述した式(38)を用いて、収束するまで繰り返し演算を行い、収束値を圧力の長波長成分の算出結果として圧力合成部34に通知する。
【0109】
圧力短波長成分算出部33は、x,y,z座標軸の各計算格子位置(i、j、k)について、圧力の短波長成分を算出するものである。具体的には、計算格子毎に、上述した式(39)を用いて、収束するまで繰り返し演算を行い、収束値を圧力の短波長成分の算出結果として圧力合成部34に通知する。
【0110】
圧力合成部34は、x,y,z座標軸の各計算格子位置(i、j、k)について、圧力長波長成分算出部32が算出した圧力の長波長成分と、圧力短波長成分算出部33が算出した圧力の短波長成分とを足し合わせ、合計値を当該計算格子の圧力としてシミュレーション制御部50に通知する。
【0111】
速度長波長成分算出部35は、x,y,z座標軸の各計算格子位置(i、j、k)について、速度の長波長成分を算出するものである。具体的には、計算格子毎に、上述した式(29)、式(30)、および式(31)を用いて、x、y、z方向の速度の長波長成分を算出する。そして、算出結果のうち、x、y方向の速度の長波長成分については、当該計算格子のx,y方向の速度としてシミュレーション制御部50に通知する。また、z方向の速度の長波長成分については、速度合成部37に通知する。
【0112】
速度短波長成分算出部36は、x,y,z座標軸の各計算格子位置(i、j、k)について、z方向の速度の短波長成分を算出するものである。具体的には、計算格子毎に、上述した式(33)を用いてz方向の速度の短波長成分を算出し、算出結果を速度合成部37に通知する。
【0113】
速度合成部37は、x,y,z座標軸の各計算格子位置(i、j、k)について、速度長波長成分算出部35が算出したz方向の速度の長波長成分と、速度短波長成分算出部36が算出したz方向の速度の短波長成分とを足し合わせ、合計値を当該計算格子のz方向の速度としてシミュレーション制御部50に通知する。
【0114】
圧力境界条件算出部38では、各現在時刻tについて、上記式(40)を用いて、次の時刻t+Δtのシミュレーションの計算に用いる境界条件として、現在時刻の液面位置hを算出する。さらに、上記式(41)を用いて、圧力境界条件を算出する。
【0115】
シミュレーション制御部50は、シミュレーション算出部30を用いて、各時刻、各計算格子位置についての計算を行うことにより、流体のシミュレーションを実行し、実行結果を表示制御部60に送信する。なお、シミュレーション制御部50は、シミュレーションの実行結果を記憶部20に格納してもよい。
【0116】
より詳細には、シミュレーション制御部50は、シミュレーション算出部30による、ある計算格子位置における圧力および速度の算出が終了すると、対象の計算格子位置を更新して、更新後の計算格子位置における圧力および速度の算出をシミュレーション算出部30に実行させる。これを、全ての計算格子位置(i、j、kの全ての組み合わせ)について計算が終了するまで、繰り返しシミュレーション算出部30に実行させる。次に、シミュレーション制御部50は、時刻を更新して、上述した、全ての計算格子位置における圧力および速度の計算をシミュレーション算出部30に実行させる。そして、シミュレーション制御部50は、以上の処理を、シミュレーション終了時刻まで時刻を更新しながら、繰り返す。
【0117】
表示制御部60は、シミュレーション制御部50が実行したシミュレーション結果を表示装置3に表示させる。また、表示制御部60は、表示させる表示データを記憶部20から読み出し、表示装置3にこれを表示させる。すなわち、表示制御部60は、上述したシミュレーション装置1によるシミュレーション結果を表示装置3に表示させたり、シミュレーション装置1を操作するための操作画面データ等を記憶部20から読み出し、表示装置3に表示させる。
【0118】
〔シミュレーション装置1における処理の流れ〕
次に、
図4を参照して、シミュレーション装置1におけるシミュレーションの流れについて説明する。
図4は、シミュレーション装置1におけるシミュレーションの流れを示すフローチャートである。
【0119】
図4に示すように、まず、速度予測子算出部31が、上記の式(18)、式(19)、および式(20)を用いて速度予測子を算出する(S101)。
【0120】
次に、圧力長波長成分算出部32が、Gauss-Seidel法に倣い、上記式(38)を用いて圧力の長波長成分p^
n+1を算出する(S102、長波長成分算出ステップ)。また、これと並行して、圧力短波長成分算出部33が、上記式(39)を用いて圧力の短波長成分p’
n+1を算出する(S103、短波長成分算出ステップ)。ここで、上記式(41)で得られる圧力は、上記式(38)、および式(39)の境界条件として与えられる。次に、速度長波長成分算出部35が、ステップS102で算出した圧力の長波長成分p^
n+1を上記の式(29)、式(30)、および式(31)に代入して速度の長波長成分u
n+1、v
n+1、w^
n+1を算出する(S105、長波長成分算出ステップ)。また、これと並行して速度短波長成分算出部36が、ステップS103で算出した圧力の短波長成分p’
n+1を、上記式(33)に代入して速度の短波長成分w’
n+1を算出する(S106、短波長成分算出ステップ)。
【0121】
次に、圧力合成部34は、圧力長波長成分算出部32が算出した圧力の長波長成分p^
n+1と圧力短波長成分算出部33が算出した圧力の短波長成分p’
n+1とから、p^
n+1+p’
n+1を算出する(S104、合成ステップ)。
【0122】
また、速度合成部37は、速度長波長成分算出部35が算出した速度の長波長成分u
n+1、v
n+1、w^
n+1うち、z方向の長波長成分w^
n+1と、速度短波長成分算出部36が算出したz方向の速度の短波長成分w’
n+1とから、w^
n+1+w’
n+1を算出する(S107、合成ステップ)。
【0123】
そして、シミュレーション制御部50は、全ての計算格子位置について、ステップS101〜S107の算出が終了したか否かを判定し(S108)、終了していなければ(S108でNO)、計算格子位置を更新して(S111)、ステップS101に戻る。
【0124】
一方、ステップS108において、全ての計算格子位置について、ステップS101〜S107の算出が終了したと判定した場合(S108でYES)、シミュレーション制御部50は、位置を初期化して(S109)、シミュレーションの終了時刻まで、計算が完了しているか否かを判定する(S110)。終了時刻まで計算が完了していない場合(S110でNO)、シミュレーション制御部50は、圧力境界条件算出部38に現在時刻における液面位置hを算出させて(S112)、時刻を更新する(S113)。そして、ステップS101に戻る。
【0125】
一方、ステップS110において、シミュレーションの終了時刻まで、計算が完了していると判定した場合(S110でYES)、シミュレーションンの計算を終了する。
【0126】
なお、現在時刻とは、ステップS101〜S108、S111を実行する時刻である。そして、ステップS108で全ての位置について計算済みとなり(S108でYES)、ステップS109で位置を初期化したとき、次の時刻(シミュレーションを実行する次の時刻)に進めることになる。
【0127】
ここで、
図4では、ステップS102とS103との演算を並列に実行するものとして説明した。すなわち、ステップS102とS103とは、ステップS101で速度予測子が算出された後は、互いに依存性のない独立して演算が可能なステップである。もちろん、ステップS102とS103とを、1ステップずつ演算することも可能であり、その場合、どのステップから実行しても構わない。
【0128】
上記のように、シミュレーション装置1におけるシミュレーション方法は、長波長の方程式と短波長の方程式とを別途準備して計算するアプローチである。また、上記式(32)(すなわち、上記式(39))は、短いスケールの成分に限定して構成しているため、後述する実施例(計算事例)に示すように、収束に必要な計算回数は極端に増加しない。
【0129】
ここで、シミュレーション装置1で用いる計算格子のサイズは、鉛直方向のスケール(Δz)が、水平方向のスケール(Δx=Δy)と比較して、1/2より小さいものとする。ただし、鉛直方向のスケール(Δz)が、水平方向のスケール(Δx=Δy)と同程度であっても、シミュレーションを実行することは可能である。なお、格子サイズ比と効果との関係については、後述する。
【0130】
なお、シミュレーション装置1は、Δx≒Δy>>Δzであることを前提とするので、uおよびvの対流項の計算に、三次精度CIP(Constrained Interpolation Profile Scheme)法を適用して、空間分解能の向上を図ることができる。また、wの対流項の計算に、一次精度風上差分法を適用して、安定性をさらに向上させることができる。さらに、計算ステップの中で計算負荷が最も高いポアソン方程式はRed−Black SOR法を用いた並列計算によって高速化することができる。
【0131】
〔実施例〕
次に、
図5〜10を参照して、前述した方法で実施したシミュレーションの結果を説明する。
【0132】
〔計算格子のアスペクト比の影響〕
まず、
図5〜7を参照して、本実施形態に係る方法で、計算格子のアスペクト比を変更しても、発散させることなく計算結果を得られ、安定性を保持できることを実証する。
図5は、計算対象とした矩形三次元領域を示す図である。また、
図6は、計算条件を示す図である。また、
図7は、計算結果を示す図である。
【0133】
ここでは、前述したように、
図5に示す矩形三次元領域を計算対象とした。
図5に示す矩形三次元領域は、L
x=L
y=20m、L
z=5mであり、計算領域のアスペクト比(L
x/L
z)は4となっている。水平方向の計算格子サイズはΔx=Δy=1mとしている。流れが三次元運動を起こすように、入口境界および出口境界(いずれも2m×2.5mの面)を対向する面の対角に位置するように配置し、それ以外はすべり壁としている。入口境界および出口境界は、yz面と同じ法線を持ち、速度uを、u=1.0m/sで与えた。
【0134】
この設定によって,入口境界では、x方向のみに運動量を持つことになるが、圧力を介してy方向およびz方向にも運動量が伝えられる。
【0135】
初期条件として、全方向速度を0m/sとした。また、時間刻み幅Δtは0.1秒とし、滞留時間に相当する400秒後までの過渡計算を実施した。また、鉛直方向の計算格子サイズΔzは、
図6に示すように、1m、0.1m、0.01mの3種類に変えて、速度場に及ぼす影響を比較した。
【0136】
計算結果を
図7に示す。
図7の(a)は、実行ナンバー1の結果を示し、(b)は、実行ナンバー2の結果を示し、(c)は、実行ナンバー3の結果を示す。また、
図7では、計算開始から400秒後の、z=2.5mの位置におけるxy断面上の速度場を示している。
図7を参照すると、全ての実行結果において、壁面付近で圧力を介して速度の向きが変化している傾向が一致していることが分かる。また、パーソナルコンピュータ(CPU:Intel Xeon 3.4Ghz,Memory:32GB)を用いて計算に要した時間は、最も負荷の高い実行ナンバー3で約70時間であった。なお、従来(小林敏雄[ほか]編「数値流体力学ハンドブック」丸善、2003年3月、pp.19−65に記載の方法)の計算手法を用いた場合、実行ナンバー1以外は、時間ステップ100以下で発散し、計算結果を得ることができなかった。
【0137】
〔海洋に用いた場合の計算例〕
次に、
図8〜10を参照して、本実施形態を海洋に用いた場合の計算例を説明する。
図8は、海洋に用いた場合の計算例を説明するための図であり、瀬戸内海の深さ情報を示す図である。
図9は、海洋に用いた場合の計算例を説明するための図であり、瀬戸内海の潮流の時間と速度との関係を示す図である。
図10は、海洋に用いた場合の計算例の結果を示す図である。
【0138】
本計算例では、海洋の事例として瀬戸内海の潮流計算をおこなった。
図8に示す、香川県、愛媛県、広島県に接する瀬戸内海を計算対象とした。海底形状は、海上保安庁日本海洋データセンターの水深データから入力した。
【0139】
計算格子はΔx=Δy=500m、Δz=5mのサイズであり、総格子数は、255000である。瀬戸内海の東端を入口境界、西端を出口境界として設定した。境界条件である入口流速として、
図9に示す観測期間(1992年6月2日4:00〜1992年6月17日3:00)のデータを基に求めた時間平均値4.97m/sを与えた。
【0140】
計算結果を
図10に示す。
図8に示したように、計算対象となる領域は、多島を含み水深が50m以下の領域が多いにもかかわらず、
図10に示すように、本実施形態では、この領域の複雑な潮流を適切に計算できていることが分かる。
【0141】
〔まとめ〕
以上のように、本実施形態では、鉛直方向に対し準動的な運動方程式を導出し、Projection法に適用するために離散化している。さらに、自由表面を境界条件に組み込んで計算方法を拡張している。これにより、Δx≒Δy>>Δzの計算格子を用いた計算を行った結果、以下の結論を得ている。
(1)格子サイズのアスペクト比が1から離れた場合の計算であっても、本実施形態では、計算可能となった。
(2)例えば瀬戸内海のような、多島を含み、水深が数mの領域を多く含んだ海域を対象としても、本実施形態では、複雑な潮流を計算できた。
(3)格子サイズ比と本実施形態の効果との関係を具体的に示せば以下の通りである。格子サイズ比(Δx/Δz)が「100以上」の場合、従来の方法では、演算が収束しない可能性があるが、本実施形態では上述したように、適切に演算を実行し、シミュレーションを行うことができる。なお、多くの海洋計算や静水圧近似の計算では格子サイズ比(Δx/Δz)が100以上となる可能性が高いため、本実施形態による方法が有利となる。
【0142】
なお、本実施形態は本発明の範囲を限定するものではなく、本発明の範囲内で種々の変更が可能であり、例えば、以下のように構成することができる。
【0143】
本発明に係る計算方法は、三次元空間を運動する非圧縮性流体あるいは擬圧縮性のニュートン流体の計算方法であって、必要となる分解能になるように空間領域を分割した場合に、その三次元領域のうち少なくとも一つの座標スケールが、他の座標スケールの2倍以上、望ましくは10の2乗倍より大きい要素を対象とし、その運動方程式が偏微分方程式の楕円性を持つ場合において、該偏微分方程式を各座標スケールに応じた方程式に分解し、さらに直交分解することで圧力について得られた方程式を複数個用いることで、発散させることなく分解したスケールごとに計算できる方法であってもよい。なお,擬圧縮性のニュートン流体とは、流体の密度が圧力以外の物理因子によって変化できる流体を指し、例えば温度や化学種濃度には依存して密度を変えられる。
【0144】
さらに、本発明に係る計算方法は、液面などあらわすための圧力に関する境界条件を有した状態で安定な水象を計算する方法であってもよい。
【0145】
本実施形態では、Δx≒Δy>>Δzの場合について説明した。しかし、本発明は、少なくとも1つの座標スケールが他の座標スケールの少なくとも1つの2倍以上であればよく、例えば、Δx>>Δy≒Δz、Δx<<Δy≒Δz、Δx>>Δy>>Δzのケース等にも適用することが可能である。すなわち、座標方向に分解する格子のスケールが異なる場合、各スケールに応じて方程式を分解すれば、水系環境における数値シミュレーションの演算を発散させることなく高精度に実行でき、安定性を向上させた計算が可能になる。
【0146】
また本発明は、極座標等の直交系でも適用可能である。さらに、例えばBFC(Boundary Fitted Coordinate)法等の座標変換を施す方法に適用することで、非ユークリッド座標系(小林敏雄[ほか]編「数値流体力学ハンドブック」丸善、2003年3月、pp.19−65等を参照)にも適用できる。
【0147】
〔ソフトウェアによる実現例〕
シミュレーション装置1の制御ブロック(特に、シミュレーション算出部30、シミュレーション制御部50、および表示制御部60)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
【0148】
後者の場合、シミュレーション装置1は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0149】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。