(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024025512
(43)【公開日】2024-02-26
(54)【発明の名称】シミュレーション方法、シミュレーション装置、及びプログラム
(51)【国際特許分類】
G16Z 99/00 20190101AFI20240216BHJP
【FI】
G16Z99/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022129013
(22)【出願日】2022-08-12
(71)【出願人】
【識別番号】000002107
【氏名又は名称】住友重機械工業株式会社
(74)【代理人】
【識別番号】100105887
【弁理士】
【氏名又は名称】来山 幹雄
(72)【発明者】
【氏名】廣田 真人
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049DD02
(57)【要約】
【課題】粒子法を用いた解析において、解析精度を高く維持し、かつ計算量を削減することが可能なシミュレーション方法を提供する。
【解決手段】流体を複数の計算粒子で表し、複数の計算粒子のそれぞれに物理量に付与し、解析空間に複数の計算粒子を配置し、複数の計算粒子のそれぞれに付与された物理量及び複数の計算粒子の位置を、支配方程式を解いて時間発展させる。複数の計算粒子で表される流れ場の状態に応じて、複数の計算粒子の大きさに依存する空間解像度の過不足を、複数の計算粒子のそれぞれについて評価し、空間解像度の過不足の評価の結果に応じて、空間解像度を調整する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれに物理量に付与し、解析空間に前記複数の計算粒子を配置し、前記複数の計算粒子のそれぞれに付与された物理量及び前記複数の計算粒子の位置を、支配方程式を解いて時間発展させるシミュレーション方法であって、
前記複数の計算粒子で表される流れ場の状態に応じて、前記複数の計算粒子の大きさに依存する空間解像度の過不足を、前記複数の計算粒子のそれぞれについて評価し、
空間解像度の過不足の評価の結果に応じて、空間解像度を調整するシミュレーション方法。
【請求項2】
解析対象の流体は壁面に接触しており、
空間解像度の過不足の評価は、前記複数の計算粒子のそれぞれの位置において、流れ場のレイノルズ数、または前記壁面からの距離に基づいて行い、
空間解像度の調整は、前記複数の計算粒子を分割または合体させることにより行う請求項1に記載のシミュレーション方法。
【請求項3】
前記複数の計算粒子を分割または合体させることにより生じる前記複数の計算粒子の分布の歪みを低減させる方向に作用する人工移流項を前記支配方程式に付与し、
時間発展の際に、前記人工移流項が付与された前記支配方程式を解く請求項2に記載のシミュレーション方法。
【請求項4】
前記支配方程式はラグランジュ微分項を含んでおり、ラグランジュ微分項を、前記人工移流項を加味したものに修正して前記支配方程式を解くことにより、前記人工移流項を付与することによって生じる前記複数の計算粒子ごとの物理量の歪みを修正する方向に物理量を変化させる請求項3に記載のシミュレーション方法。
【請求項5】
粒子法を用いて流体の流れを解析するシミュレーション装置であって、
シミュレーション条件が入力される入力部と、
前記入力部に入力されたシミュレーション条件に基づいて、粒子法を用いて複数の粒子のそれぞれの位置を時間発展させる処理部と
を備え、
前記処理部は、
流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれに物理量に付与し、解析空間に前記複数の計算粒子を配置し、前記複数の計算粒子のそれぞれに付与された物理量及び前記複数の計算粒子の位置を、支配方程式を解いて時間発展させる手順と、
前記複数の計算粒子で表される流れ場の状態に応じて、前記複数の計算粒子の大きさに依存する空間解像度の過不足を、前記複数の計算粒子のそれぞれについて評価する手順と、
空間解像度の過不足の評価の結果に応じて、空間解像度を調整する手順と
を実行するシミュレーション装置。
【請求項6】
粒子法を用いて流体の流れを解析するシミュレーションをコンピュータに実行させるプログラムであって、
流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれに物理量に付与し、解析空間に前記複数の計算粒子を配置し、前記複数の計算粒子のそれぞれに付与された物理量及び前記複数の計算粒子の位置を、支配方程式を解いて時間発展させる手順と、
前記複数の計算粒子で表される流れ場の状態に応じて、前記複数の計算粒子の大きさに依存する空間解像度の過不足を、前記複数の計算粒子のそれぞれについて評価する手順と、
空間解像度の過不足の評価の結果に応じて、空間解像度を調整する手順と
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーション方法、シミュレーション装置、及びプログラムに関する。
【背景技術】
【0002】
流体の運動を粒子系の運動として近似して、流体の挙動を解析するシミュレーション方法が知られている。このシミュレーション方法は、粒子法と呼ばれる。粒子法では、流体が複数の粒子で表され、流体の流れ場の中に配置される壁境界も一般的に複数の粒子で表される。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】原田隆宏、越塚誠一、「SPHにおける壁境界計算手法の改良」、情報処理学会論文誌、Vol.48、No.4、1838~1846頁、2007年
【発明の概要】
【発明が解決しようとする課題】
【0004】
粒子法による流体解析においては、空間解像度が粒子の直径によって決まる。粒子の直径は、解析しようとする流体運動の長さスケールに対して十分小さく設定しなければならない。一般に、流体運動の長さスケールは場所によって異なる。例えば、流体内に配置される物体の壁から遠い領域では、粒子の直径を大きくしても十分精度の高い解析を行うことができる。ところが、壁の近傍では、流体運動の長さスケールは境界層の厚さで代表されるため、壁近傍の流体の運動を精度よく解析するためには、粒子の直径を境界層の厚さよりも十分小さくしなければならない。
【0005】
解析空間全体において高精度の解析を行うためには、壁から遠い領域においても、境界層の厚さに応じて粒子の直径を小さくしなければならない。このため、解析空間に配置する粒子数が多くなり、その結果、計算量が増大してしまう。
【0006】
本発明の目的は、粒子法を用いた解析において、解析精度を高く維持し、かつ計算量を削減することが可能なシミュレーション方法、シミュレーション装置、及びプログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明の一観点によると、
流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれに物理量に付与し、解析空間に前記複数の計算粒子を配置し、前記複数の計算粒子のそれぞれに付与された物理量及び前記複数の計算粒子の位置を、支配方程式を解いて時間発展させるシミュレーション方法であって、
前記複数の計算粒子で表される流れ場の状態に応じて、前記複数の計算粒子の大きさに依存する空間解像度の過不足を、前記複数の計算粒子のそれぞれについて評価し、
空間解像度の過不足の評価の結果に応じて、空間解像度を調整するシミュレーション方法が提供される。
【0008】
本発明の他の観点によると、
粒子法を用いて流体の流れを解析するシミュレーション装置であって、
シミュレーション条件が入力される入力部と、
前記入力部に入力されたシミュレーション条件に基づいて、粒子法を用いて複数の粒子のそれぞれの位置を時間発展させる処理部と
を備え、
前記処理部は、
流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれに物理量に付与し、解析空間に前記複数の計算粒子を配置し、前記複数の計算粒子のそれぞれに付与された物理量及び前記複数の計算粒子の位置を、支配方程式を解いて時間発展させる手順と、
前記複数の計算粒子で表される流れ場の状態に応じて、前記複数の計算粒子の大きさに依存する空間解像度の過不足を、前記複数の計算粒子のそれぞれについて評価する手順と、
空間解像度の過不足の評価の結果に応じて、空間解像度を調整する手順と
を実行するシミュレーション装置が提供される。
【0009】
本発明のさらに他の観点によると、
粒子法を用いて流体の流れを解析するシミュレーションをコンピュータに実行させるプログラムであって、
流体を複数の計算粒子で表し、前記複数の計算粒子のそれぞれに物理量に付与し、解析空間に前記複数の計算粒子を配置し、前記複数の計算粒子のそれぞれに付与された物理量及び前記複数の計算粒子の位置を、支配方程式を解いて時間発展させる手順と、
前記複数の計算粒子で表される流れ場の状態に応じて、前記複数の計算粒子の大きさに依存する空間解像度の過不足を、前記複数の計算粒子のそれぞれについて評価する手順と、
空間解像度の過不足の評価の結果に応じて、空間解像度を調整する手順と
を実行させるプログラムが提供される。
【発明の効果】
【0010】
空間解像度の過不足の評価の結果に応じて、空間解像度を調整することにより、解析空間全体において、適切な空間解像度で解析を行うことができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、一実施例によるシミュレーション装置のブロック図である。
【
図2】
図2は、本実施例によるシミュレーション方法の手順を示すフローチャートである。
【
図3】
図3は、解析空間、及び解析空間内に配置された複数の計算粒子を示す模式図である。
【
図4】
図4は、空間解像度を評価する方法の手順を示すフローチャートである。
【
図5】
図5は、壁面及び評価対象の計算粒子の位置関係を表す模式図である。
【
図6】
図6は、ステップSA6(
図2)で実行する空間解像度の調整方法の手順を示すフローチャートである。
【
図7】
図7Aは、分割前の計算粒子の模式図であり、
図7Bは、1つの計算粒子を分割して生成された2個の計算粒子の模式図である。
【
図8】
図8Aは、1つの計算粒子を分割して生成された4個の計算粒子の模式図であり、
図8Bは、1つの計算粒子を分割して生成された8個の計算粒子の模式図である。
【
図9】
図9Aは、複数の計算粒子の分布の一例を示す模式図であり、
図9Bは、2つの計算粒子を合体させた後の計算粒子の分布の一例を示す模式図である。
【
図10】
図10Aは、計算粒子を分割する前の複数の計算粒子の分布を示す模式図であり、
図10Bは、1つの計算粒子を分割した後の複数の計算粒子の分布を示す模式図であり、
図10Cは、
図10Bに示した状態から一定のタイムステップが経過した時点の複数の計算粒子の分布を模式図である。
【
図11】
図11Aは、2つの計算粒子を合体させる前の複数の計算粒子の分布を示す模式図であり、
図11Bは、2つの計算粒子を合体させた後の複数の計算粒子の分布を示す模式図であり、
図11Cは、
図11Bに示した状態から一定のタイムステップが経過した時点の複数の計算粒子の分布を模式図である。
【
図12】
図12は、他の実施例によるシミュレーション方法の手順を示すフローチャートである。
【
図13】
図13は、実際にシミュレーションを行った解析モデルの模式図である。
【
図14】
図14A及び
図14Bは、それぞれ計算開始時点及び計算終了時点における計算粒子の分布を示す模式図である。
【
図15】
図15は、計算終了時点の速度分布及び初期状態の速度分布を示すグラフである。
【発明を実施するための形態】
【0012】
本発明の一実施例について説明する前に、一般的なSPH(Smoothed Particle Hydrodynamics)法について簡単に説明する。SPH法は、連続体を複数の計算粒子の集合を用いて離散化し、流れ場の時間発展を計算するラグランジュ型の数値計算手法である。SPH法では、粒子1個の質量分布として、連続かつ微分可能なカーネル関数を用いるとともに、カーネル関数の微分係数の重ね合わせを空間微分とする離散化モデルを用いる。
【0013】
SPH法では、計算粒子の質量mはカーネル関数Wによってその周囲に分配され、連続的に分布しており、密度場は、その重ね合わせとして与えられる。すなわち、s番目の計算粒子の位置x
sにおける密度ρ
sは、以下の式で表される。
【数1】
本明細書において、下付きの添え字s及びmは、計算粒子のそれぞれに付与された通し番号を表し、下付きの添え字s、mが付された物理量は、それぞれs番目及びm番目の計算粒子に付された物理量を意味する。
【0014】
カーネル関数Wとして、例えば、以下の関数を用いることができる。以下の関数は、C2Wendlandカーネルと呼ばれる。
【数2】
【0015】
hは、平滑化長さであり、カーネル幅ともいわれる。カーネル幅hは、複数の粒子を同一の質量及び物性密度の球体に置き換えた等価球の直径に等しい。本明細書において、カーネル幅hを粒子の直径という場合がある。
【0016】
任意の位置x
sにおける任意のスカラー量A及びベクトル量Aの値は、カーネル関数の重ね合わせによって以下の式で表すことができる。
【数3】
【0017】
任意のスカラー量Aの勾配は、カーネル関数の微分係数の重ね合わせによって以下の式で表される。
【数4】
【数5】
【0018】
ここで、∇W(x
sm,h)はカーネル関数の導関数であり、カーネル関数としてC2Wendlandカーネルを用いる場合、以下の式で表される。
【数6】
なお、式(2)の関数W(q)は1変数の関数であるため、その勾配∇Wはスカラー量である。
【0019】
任意のベクトル量Aに対する発散は、式(6)と同様に、以下の式で表すことができる。
【数7】
【0020】
任意のスカラー量Aに対する2次導関数は、例えば以下の公式を用いて算出することができる。
【数8】
【0021】
[流れの支配方程式]
次に、圧縮性流れを解析対象とする場合の支配方程式について説明する。高レイノルズ数の圧縮性流れを、限られた計算資源で解析する手段として、例えばReynolds-Averaged Navier-Stokes(RANS)解析を用いることができる。これは、流れの支配方程式をレイノルズ分解によって平均場と変動場とに分解し、平均場に対する変動場の寄与をモデル化し、平均場の支配方程式だけを数値的に解くことで、少ない計算資源で高レイノルズ数流れの平均場を解析する技術である。
【0022】
RANS解析の定式化方法として、例えばShear Stress Transport(SST)モデルを用いることができる。SSTモデルについては、F. R. MENTER, “Two-equation eddy-viscosity turbulence models for engineering applications”, AIAA Journal Vol.32 No.8, (1994), pp.1598-1605, _eprint: https://doi.org/10.2514/3.12149に説明されている。
【0023】
SSTモデルを用いた圧縮性流れの支配方程式は、例えば次のように記述することができる。
【数9】
【数10】
【数11】
【数12】
【数13】
ここで、tは時間、xは空間座標、ρは密度、vは速度、pは圧力、uは内部エネルギ、及びTは温度を表す。下付きの添え字i、j、kは、ベクトル量またはテンソル量の成分を表す。k及びωは、SSTモデルの変数であり、kは乱流の運動エネルギ、ωは乱流の運動エネルギの散逸時間スケールに相当する量である。c
pは低圧比熱であり、Prはプラントル数を表す。
【0024】
σ
ijは粘性応力テンソルを表し、次の式で与えられる。
【数14】
ここで、S
ijは歪み速度テンソルを表す。μは粘性係数であり、例えばサザーランドの式を用いて算出することができる。δ
ijはクロネッカーのδを表す。τ
ijはレイノルズ応力項であり、次式による表現が多く用いられる。
【数15】
【0025】
ここで、μ
tは渦粘性係数である。圧力pは、例えば下記の理想気体の状態方程式を用いて算出することができる。
【数16】
ここで、Rは気体状数である。
【0026】
式(9)~式(13)のその他の変数は、SSTモデルで用いられる定数である。SSTモデルは一般的に広く用いられていることから、これらの定数については、ここでは説明を省略する。
【0027】
式(9)~式(13)を、式(4)を用いて離散化して数値的に解くことにより、SPH法を用いて、高レイノルズ数の圧縮性流れの解析を行うことができる。
【0028】
SPH法によって離散化された支配方程式は、以下のように記述される。
【数17】
【数18】
【数19】
【数20】
【数21】
【数22】
ここで、δv
iは計算粒子の空間分布の不均一性を均すための人工移流項である。
【0029】
人工移流項δv
iとして、例えば以下の式を用いることができる。
【数23】
【数24】
ここで、S及びκは、人工移流項の強さを示すパラメータである。例えば、S=0.4、κ=4と設定することができる。c
0は代表音速である。代表音速c
0として、よどみ点条件における音速を用いることができる。
【0030】
[空間解像度の過不足]
次に、粒子法を用いて流れ場を解析する場合の空間解像度の過不足について説明する。SPH法をはじめとする粒子法を用いた流体解析においては、解析の空間解像度は計算粒子の直径(例えば、カーネル幅)によって決まる。一般に、流体運動の長さスケールは場所によって異なる。例えば、物体の壁面近傍では流体運動の長さスケールは、境界層厚さで代表され、相対的に高い空間解像度が必要とされる。
【0031】
一方で、壁面からの距離が遠い領域では、流体運動の長さスケールは、境界層厚さより大きいことが多い。このため、壁面からの距離が遠い領域では、壁面近傍の領域と比べて、低い空間解像度で解析を行うことができる。
【0032】
高い空間解像度で解析を行う必要がある領域に、直径の大きな計算粒子を配置すると、解析の空間解像度が不足してしまう。逆に、低い空間解像度で解析を行うことが可能な領域に、直径の小さな計算粒子を配置すると、解析の空間解像度が過剰になってしまう。以下に説明する実施例では、解析の空間解像度の過不足を低減させ、必要十分な空間解像度で解析を行うことができる。
【0033】
[実施例によるシミュレーション手順]
図1及び
図2を参照して、本実施例によるシミュレーション装置及びシミュレーション方法について説明する。
【0034】
図1は、本実施例によるシミュレーション装置のブロック図である。実施例によるシミュレーション装置は、入力部30、処理部31、出力部32、及び記憶部33を含む。入力部30から処理部31にシミュレーション条件等が入力される。さらに、ユーザから入力部30に各種指令(コマンド)等が入力される。入力部30は、例えば通信装置、リムーバブルメディア読取装置、キーボード、ポインティングデバイス等で構成される。
【0035】
処理部31は、入力されたシミュレーション条件及び指令に基づいて粒子法によるシミュレーションを実行する。さらに、シミュレーション結果を出力部32に出力する。シミュレーション結果には、シミュレーション対象物である粒子系の粒子の状態、粒子系の物理量の時間的変化等を表す情報が含まれる。処理部31は、例えばコンピュータの中央処理ユニット(CPU)を含む。粒子法によるシミュレーションをコンピュータに実行させるためのプログラムが、記憶部33に記憶されている。出力部32は、通信装置、リムーバブルメディア書込み装置、ディスプレイ等を含む。
【0036】
図2は、本実施例によるシミュレーション方法の手順を示すフローチャートである。
まず、入力部30に入力されたシミュレーション条件を処理部31が取得する(ステップSA1)。シミュレーション条件には、例えば、シミュレーション対象の流体を定義する情報、境界条件、初期条件等が含まれる。流体を定義する情報には、流体の密度、粘度等の物性値が含まれる。境界条件には、解析空間の形状、大きさを指定する情報が含まれる。初期条件には、流体の初期物性値を指定する方法、計算粒子のカーネル幅の初期値、及び複数の計算粒子を解析空間に配置するための情報が含まれる。
【0037】
シミュレーション条件には、さらに、空間解像度の過不足の評価指標、計算粒子の分割方法、最大カーネル幅を指定するための情報が含まれる。これらの情報は、以下に説明する本実施例のシミュレーションにおいて参照される。
【0038】
次に、処理部31は、取得したシミュレーション条件に基づいて解析空間に複数の計算粒子を配置する(ステップSA2)。
【0039】
図3は、解析空間10、及び解析空間10内に配置された複数の計算粒子20を示す模式図である。一例として、解析空間10は直方体の形状を有しており、解析空間10の各面に、滑り無し条件、周期境界条件等の条件が課される。
【0040】
次に、複数の計算粒子20のそれぞれについて式(17)~式(22)に示した支配方程式を数値的に解くことにより、計算粒子20のそれぞれに付与される物理量を計算し、計算粒子20のそれぞれの物理量及び位置を更新する(ステップSA3)。
【0041】
次に、空間解像度の過不足を評価するか否かを判定する(ステップSA4)。例えば、処理部31は、空間解像度の過不足の評価を行った直近のタイムステップから一定のタイムステップ数が経過した時点で、空間解像度の過不足を評価すると判定する。
【0042】
処理部31は、空間解像度の過不足を評価すると判定した場合は、空間解像度の過不足の評価を行う(ステップSA5)。例えば、解析に必要とされる空間解像度に比べて計算粒子20の直径が大きすぎる場合は、空間解像度が不足していると判定する。逆に、解析に必要とされる空間解像度に比べて計算粒子20の直径が小さすぎる場合は、空間解像度が過剰であると判定する。
【0043】
処理部31は、空間解像度の過不足を評価した後、評価結果に基づいて空間解像度を調整する(ステップSA6)。例えば、空間解像度が不足していると判定された領域においては、計算粒子20の直径を現在の直径より小さくすることにより、空間解像度を高める。このとき、計算粒子20の直径を小さくしたことに伴い、計算粒子20の個数を増加させる。空間解像度が過剰であると判定された領域においては、計算粒子20の直径を現在の直径より大きくすることにより、空間解像度を低下させる。このとき、計算粒子20の直径を大きくしたことに伴い、計算粒子20の個数を減少させる。
【0044】
ステップSA4で、空間解像度の過不足を評価しないと判定した場合は、ステップSA5及びステップSA6を実行しない。
【0045】
解析終了条件が満たされるまで、ステップSA3以降の処理を繰り返し実行する(ステップSA7)。解析終了条件は、例えば実行するタイムステップ数等で規定される。解析を終了したら、解析結果を出力部32に出力する(ステップSA8)。
【0046】
[空間解像度の過不足の評価]
次に、
図4及び
図5を参照して、ステップSA5(
図2)で実行する空間解像度の評価方法の一例について説明する。
【0047】
図4は、空間解像度を評価する方法の手順を示すフローチャートである。この評価は、複数の計算粒子20のそれぞれについて実行する。
【0048】
まず、評価対象の計算粒子20が壁面に近接しているか否かを判定する(ステップSB1)。ここで、
図3に示した解析空間10の壁面のうち、周期境界条件を適用する壁面については、判定対象の壁面に含めない。例えば、滑り無し条件を適用している壁面について判定を行う。
【0049】
図5は、壁面11及び評価対象の計算粒子20sの位置関係を表す模式図である。壁面11の表面をxz面とし、壁面11の法線方向をy方向とするxyz直交座標系を定義する。計算粒子20sの直径をh
sと標記し、壁面11から計算粒子20sの中心までの距離をy
sと標記する。一例として、y
s<h
sを満たす計算粒子20sを、壁面11の近傍に位置する粒子と判定する。流体の速度ベクトルの壁面11に平行な成分をv
hと標記する。壁面11の近傍においては、壁面11から遠ざかるにしたがって速度v
hが大きくなる。
【0050】
壁面に近接していない計算粒子20sについて、計算粒子20sの中心位置におけるせん断強さγドットによって定義されるレイノルズ数Re
γsを、以下の式を用いて計算する(ステップSB2)。
【数25】
ここで、せん断強さγドットは、以下の式を用いて計算することができる。
【数26】
ここで、v
x、v
y、v
zは、それぞれ計算粒子20の速度ベクトルのx成分、y成分、及びz成分を表す。
【0051】
処理部31は、計算粒子20sの位置におけるレイノルズ数Reγsを計算した後、レイノルズ数Reγsが10より大きいか否かを判定する(ステップSB4)。レイノルズ数Reγsが10より大きい場合、計算粒子20sの位置における空間解像度は不足であると判定する(ステップSB6)。レイノルズ数Reγsが10以下のとき、処理部31は、レイノルズ数Reγsが2.5より小さいか否かを判定する(ステップSB8)。レイノルズ数Reγsが2.5より小さい場合、計算粒子20sの位置における空間解像度は過剰であると判定する(ステップSB10)。本明細書において、計算粒子の位置における空間解像度を、単に「計算粒子の空間解像度」という場合がある。
【0052】
計算粒子20sが壁面11に近接している場合、処理部31は壁面11から計算粒子20sの中心までの無次元距離y
s
+を、以下の式により計算する(ステップSB3)。
【数27】
ここで、v
τsは壁面摩擦速度であり、以下の式で表される。
【数28】
【数29】
ここで、τ
wは、壁面11に作用する摩擦応力を表す。なお、壁面11の近傍に位置する計算粒子20sに対しては、近似的に、計算粒子20sの位置における速度勾配を用いて壁面摩擦応力τ
wsを以下の式で計算することができる。
【数30】
【0053】
計算粒子20sについて無次元距離ys
+が求まると、処理部31は、無次元距離ys
+が3より大きいか否かを判定する(ステップSB5)。無次元距離ys
+が3より大きい場合、計算粒子20sの位置の空間解像度は不足であると判定する(ステップSB7)。無次元距離ys
+が3以下の場合、処理部31は、無次元距離ys
+が1より小さいか否かを判定する(ステップSB9)。無次元距離ys
+が1より小さい場合、処理部31は、計算粒子20sの空間解像度は過剰であると判定する(ステップSB11)。
【0054】
すべての計算粒子20について、空間解像度の過不足を判定する上記ステップを繰り返す(ステップSB12)。
【0055】
[空間解像度の調整方法]
次に、
図6~
図9Bを参照して、ステップSA6(
図2)で実行する空間解像度の調整方法の一例について説明する。
【0056】
図6は、ステップSA6(
図2)で実行する空間解像度の調整方法の手順を示すフローチャートである。この調整は、複数の計算粒子20のそれぞれについて実行する。
【0057】
処理部31は、ステップSA5で行った評価結果に基づいて、着目する計算粒子20の空間解像度が過剰か否かを判定する(ステップSC1)。空間解像度が過剰ではないと判定された場合、計算粒子20の空間解像度が不足しているか否かを判定する(ステップSC5)。計算粒子20の空間解像度が不足している場合、計算粒子20を分割し(ステップSC6)、カーネル幅がより小さい複数の計算粒子を生成する。
【0058】
1つの計算粒子20を複数の計算粒子20に分割する場合には、計算粒子20の質量や体積等の物理量が保存される必要がある。また、分割後の複数の計算粒子20の個数及び配置には任意性がある。
【0059】
図7Aは、分割前の計算粒子20aの模式図である。
図7Bは、1つの計算粒子20aを分割して生成された2個の計算粒子20a1、20a2の模式図である。
図8Aは、1つの計算粒子20aを分割して生成された4個の計算粒子20a1~20a4の模式図である。
図8Bは、1つの計算粒子20aを分割して生成された8個の計算粒子20a1~20a8の模式図である。
【0060】
まず、
図7Bに示すように、2個の計算粒子20a1、20a2に分割する場合について説明する。分割前の計算粒子20aの位置をx
1、カーネル幅をh
1、質量をm
1、体積をV
1と標記する。分割後の2つの計算粒子20a1、20a2の各々のカーネル幅をh
2、質量をm
2、体積をV
2と標記する。分割後の2つの計算粒子20a1、20a2の位置を、それぞれx
21、x
22と標記する。ここで、V
1=h
1
3、V
2=h
2
3である。
【0061】
分割後の計算粒子20a1、20a2のそれぞれの質量m
2、体積V
2、カーネル幅h
2は、以下の式で計算することができる。
【数31】
【0062】
分割後の2つの計算粒子20a1、20a2の位置x
21、x
22は、例えば以下の式で与えることができる。
【数32】
ここで、ベクトルi、j、kは、それぞれ解析空間10(
図3)に定義されたxyz直交座標系のx方向、y方向、z方向の単位ベクトルを表す。
【0063】
次に、
図8Aに示すように、4個の計算粒子20a1~20a4に分割する場合について説明する。分割後の4個の計算粒子20a1~20a4の各々のカーネル幅をh
2、質量をm
2、体積をV
2と標記する。分割後の4個の計算粒子20a1~20a4の位置を、それぞれx
21~x
24と標記する。
【0064】
分割後の計算粒子20a1~20a4のそれぞれの質量m
2、体積V
2、カーネル幅h
2は、以下の式で計算することができる。
【数33】
【0065】
分割後の4個の計算粒子20a1~20a4の位置x
21~x
24は、例えば以下の式で与えることができる。
【数34】
【0066】
次に、
図8Bに示すように、8個の計算粒子20a1~20a8に分割する場合について説明する。分割後の8個の計算粒子20a1~20a8の各々のカーネル幅をh
2、質量をm
2、体積をV
2と標記する。分割後の8個の計算粒子20a1~20a8の位置を、それぞれx
21~x
28と標記する。
【0067】
分割後の計算粒子20a1~20a8のそれぞれの質量m
2、体積V
2、カーネル幅h
2は、以下の式で計算することができる。
【数35】
【0068】
分割後の8個の計算粒子20a1~20a8の位置x
21~x
28は、例えば以下の式で与えることができる。
【数36】
【0069】
分割後のs番目の計算粒子20sの任意の物理量A
2sは、例えば分割前の計算粒子20の物理量A
1の勾配を用いて以下の式で与えることができる。
【数37】
ここで、物理量A
2s、A
1は、式(18)~式(22)の支配方程式の左辺の物理量に相当する。
【0070】
なお、解析空間が二次元である場合も、同様の手法で分割後の計算粒子20の位置、及び計算粒子20の物理量を求めることができる。
【0071】
ステップSC1(
図6)で空間解像度が過剰であると判定された場合、最近接ペアを構成する相手粒子があるか否かを判定する(ステップSC2)。「最近接ペア」とは、互いに最近接の関係を有する計算粒子20のペアを意味する。
【0072】
図9Aを参照して、最近接ペアについて具体的に説明する。
図9Aは、複数の計算粒子20の分布の一例を示す模式図である。
図9Aに示した矢印は、計算粒子20のそれぞれから最近接の計算粒子20に向かう。例えば、計算粒子20aの最近接粒子は、計算粒子20bであり、計算粒子20bの最近接粒子は計算粒子20aである。したがって、2つの計算粒子20a、20bは、最近接ペアを構成する。
【0073】
計算粒子20cの最近接粒子は計算粒子20dである。ところが、計算粒子20dの最近接粒子は、計算粒子20eであり、計算粒子20cではない。したがって、計算粒子20cは、他の計算粒子20と最近接ペアを構成しない。計算粒子20eの最近接粒子は計算粒子20dである。このため、計算粒子20dと20eとが、最近接ペアを構成している。
【0074】
ステップSC2(
図6)において最近接ペアを構成する相手の計算粒子20が有ると判定された場合、最近接ペアを構成する相手粒子の空間解像度が過剰か否かを判定する(ステップSC3)。相手粒子の空間解像度が過剰であると判定された場合は、最近接ペアを構成する2つの計算粒子20を合体させ(ステップSC4)、2つの計算粒子20のいずれのカーネル幅より大きいカーネル幅を持つ1つの大きな計算粒子を生成する。すなわち、最近接ペアを構成する2つの計算粒子20のそれぞれの空間解像度が共に過剰である場合に、2つの計算粒子20を合体させる。
【0075】
図9Aに示した計算粒子20のうち、計算粒子20a、20b、20c、20dは、空間解像度が過剰と判定されたものであり、他の計算粒子20は、空間解像度が過剰と判定されていない。
図9Aにおいて、空間解像度が過剰と判定された計算粒子20a、20b、20c、20dにハッチングを付している。
【0076】
最近接ペアを構成する計算粒子20aと20bとは、共に空間解像度が過剰と判定されたものであるため、計算粒子20aと20bとを合体させる。最近接ペアを構成する計算粒子20dと20eとは、一方の計算粒子20eの空間解像度が過剰ではないため、計算粒子20dと20eとは合体させない。
【0077】
図9Bは、計算粒子20aと20bとを合体させた後の計算粒子20の分布の一例を示す模式図である。計算粒子20aと20bとが合体されて、大きな計算粒子20abが生成されている。
図9Bにおいて、合体後の計算粒子20abに、相対的に淡いハッチングを付している。
【0078】
次に、2つの計算粒子20を合体させる方法について説明する。
合体前の一方の計算粒子20aの位置をx
11、カーネル幅をh
11、質量をm
11、体積をV
11と標記し、他方の計算粒子20bの位置をx
12、カーネル幅をh
12、質量をm
12、体積をV
12と標記する。合体後の計算粒子20ab(
図9B)の質量m
2、カーネル幅h
2は、以下の式を用いて計算することができる。
【数38】
【0079】
合体後の計算粒子20abの位置x
2は、合体前の2つの計算粒子20a、20bの位置x
11、x
12を、質量に基づく重み付き平均値を用いて、以下の式で決めることができる。
【数39】
【0080】
合体後の計算粒子20abの任意の物理量A
2も同様に、合体前の計算粒子20a、20bの物理量A
11、A
12を用いて以下の式で計算することができる。
【数40】
または、合体前の計算粒子20a、20bの物理量A
11、A
12と、これらの物理量の勾配とを用いて、例えば以下の式で計算してもよい。
【数41】
【0081】
すべての計算粒子20について、空間解像度の調整の処理が終了するまで、ステップSC1からの手順を繰り返す(ステップSC7)。
【0082】
次に、本実施例の優れた効果について説明する。
本実施例では、
図2に示したステップSA5で空間解像度の過不足を評価し、ステップSA6で空間解像度を調整するため、解析空間内の全域で、適切な空間解像度で解析を行うことができる。例えば、壁面の近傍では高い空間解像度で解析が行われることになり、流れ場に関する十分な情報を得ることができる。また、壁面から遠い領域では、相対的に低い空間解像度で解析が行われることになり、計算負荷を軽減することができる。
【0083】
解析空間内の場所によって異なる空間解像度で解析を行う手法として、解析空間を、空間解像度の異なる複数の領域に分割し、分割された領域ごとに、大きさの異なる計算粒子を配置する手法が考えられる。ただし、この手法では、分割された領域の間で物理量を交換する処理を行う必要があり、この処理の計算負荷が大きい。分割数を増やすと、計算負荷がさらに大きくなってしまう。また、複雑な流れ場においては、分割された領域を跨って計算粒子が移動する際に、質量保存則に不整合が生じ、解析が数値的に不安定になる場合がある。さらに、解析空間の分割はオペレータの手作業で行われるため、オペレータの技量によっては、不適切な空間解像度の設定がなされてしまう可能性もある。
【0084】
これに対して本実施例では、解析空間を複数の領域に分割しないため、上述のような課題が生じない。
【0085】
本実施例では、
図4に示したステップSB4及びステップSB8での判定の基準となる閾値を、10及び2.5に設定し、ステップSB5及びステップSB9での判定の基準となる閾値を、3及び1に設定しているが、これらの閾値として他の値を用いてもよい。ただし、空間解像度が過剰と判定する基準となる閾値を、空間解像度が不足であると判定する基準となる閾値より小さくし、両者の間に差を設けることが好ましい。このように閾値を設定することにより、計算粒子20が分割と合体とを頻繁に繰り返すことが防止される。
【0086】
また、少ないタイムステップ数の間に、計算粒子20が分割や合体を繰り返すと、解析空間10(
図3)を満たす複数の計算粒子20の分布に不整合が生じ、計算が数値的に不安定になる場合がある。これを回避するために、空間解像度を調整する処理(ステップSA6)を、ある程度長い時間間隔で実行することが好ましい。この時間間隔に相当するタイムステップ数をN
rと標記し、最大カーネル幅をh
maxと標記し、流体の代表音速をc
0と標記し、計算の時間刻み幅をΔtと標記したとき、タイムステップ数N
rを以下のように設定するとよい。
【数42】
ここで、最大カーネル幅h
max及びαは任意のパラメータであり、最大カーネル幅h
maxは、例えば流れ場の代表長さの1/10以上1/30以下程度の値に設定することができ、αは例えば10に設定することができる。
【0087】
[計算粒子の分割、合体に伴う誤差の低減]
次に、
図10A~
図11Cを参照して、計算粒子20を分割、合体させたことにより生じ得る誤差を低減させる方法について説明する。
【0088】
図10Aは、計算粒子20aを分割する前の複数の計算粒子20の分布を示す模式図である。
図10Aにおいて、分割すべき計算粒子20aにハッチングを付している。分割前の状態では、計算粒子20aを含めて複数の計算粒子20がほぼ均一に分布している。
【0089】
図10Bは、計算粒子20a(
図10A)を分割した後の複数の計算粒子20の分布を示す模式図である。1個の計算粒子20a(
図10A)が2個の計算粒子20a1と20a2とに分割されている。
図10Bにおいて、分割された2個の計算粒子20a1、20a2にハッチングを付している。
【0090】
1つの計算粒子20a(
図10A)を2つの計算粒子20a1、20a2に分割したことにより、2つの計算粒子20a1、20a2を含む複数の計算粒子20の分布に偏りが生じる。
【0091】
図11Aは、2つの計算粒子20a及び20bを合体させる前の複数の計算粒子20の分布を示す模式図である。
図11Aにおいて、合体前の2つの計算粒子20a、20bにハッチングを付している。合体前の状態では、計算粒子20a、20bを含めて複数の計算粒子20がほぼ均一に分布している。
【0092】
図11Bは、計算粒子20a及び20b(
図11A)を合体させた後の複数の計算粒子20の分布を示す模式図である。2つの計算粒子20a、20b(
図11A)が合体されて1つの計算粒子20abが生成されている。
図11Bにおいて、合体により生成された計算粒子20abにハッチングを付している。
【0093】
2つの計算粒子20a、20b(
図11A)を合体させて1つの計算粒子20abを生成したことにより、合体後の計算粒子20abを含む複数の計算粒子20の分布に偏りが生じる。
【0094】
図10B及び
図11Bに示したように、計算粒子20の分布に偏りが生じると、式(17)に付加している人工移流項δv
iの作用により、計算粒子20のそれぞれに、分布の偏りを解消する方向に人工的な速度が付加される。
図10B及び
図11Bに示された矢印は、人工的に付加される速度の方向を示す。
【0095】
図10Cは、
図10Bに示した状態から一定のタイムステップが経過した時点の複数の計算粒子20の分布を示す模式図である。
図11Cは、
図11Bに示した状態から一定のタイムステップが経過した時点の複数の計算粒子20の分布を示す模式図である。式(17)の人工移流項δv
iの作用によって、複数の計算粒子20の分布の偏りが解消されている。
【0096】
この人工移流項によってもたらされる計算粒子20の運動は、流体運動とは無関係のものである。このため、計算粒子20の分布の偏りが解消されることによって、流れ場が元々持っていた物理量の分布に歪みが生じてしまう。以下、この歪みを抑制する方法について説明する。
【0097】
式(17)~式(22)に示した支配方程式はラグランジュ微分項を含んでいる。以下に説明する方法では、このラグランジュ微分項を、人工移流項を加味したものに修正することにより、物理量の歪みを低減させる。
【0098】
式(17)の人工移流項δv
iによる非物理的な運動に伴う物理量の歪みを抑制するために、人工移流項を加味したラグランジュ微分dA/dtを以下の式で定義する。なお、DA/Dtは、人工移流項を加味していない通常のラグランジュ微分である。
【数43】
式(43)は、観測者が式(17)の人工移流項δv
iの方向に移動したときに観測される物理量Aの変化を抑制する方向に、物理量Aを変化させることを意味する。
【0099】
式(43)の右辺第2項は、任意のスカラー量Aに対して以下のように書き換えることができる。
【数44】
【0100】
式(43)の右辺第2項は、任意のベクトル量Aに対して以下のように書き換えることができる。
【数45】
【0101】
式(43)を用いて、式(17)~式(22)を書き換えると、SPH法で解くべき支配方程式は、以下のように記述される。
【数46】
【数47】
【数48】
【数49】
【数50】
【数51】
【0102】
式(47)~式(51)は、式(18)~式(22)に含まれるラグランジュ微分項を、人工移流項を加味したものに修正した支配方程式である。式(46)~式(51)に示した支配方程式を解くことにより、人工移流項を付与することによって生じる物理量の歪みが修正される方向に物理量が変化する。これにより、計算粒子20の分割及び合体と人工移流項の作用とによって発生する物理量の歪みを、低減させることができる。
【0103】
[空間解像度の過不足を評価する時期]
次に、
図12を参照して、空間解像度の過不足を評価する時期を好適化した他の実施例によるシミュレーション方法について説明する。
図12は、本実施例によるシミュレーション方法の手順を示すフローチャートである。以下、
図2に示したフローチャートとの差に着目して説明する。
【0104】
粒子法を用いた流体解析手法においては、計算粒子20のそれぞれについて、その計算粒子20の近傍に存在する他の計算粒子20の番号が保存された近接粒子リストを用いた解析が広く用いられている。この近接粒子リストを更新する処理は、一定の間隔で実行される。
図12に示すように、タイムステップごとに、近接粒子リストを更新するか否かを判定する(ステップSA10)。近接粒子リストを更新するタイムステップにおいて、近接粒子リストを更新し(ステップSA11)、その他のタイムステップでは、近接粒子リストの更新は行わない。
【0105】
図2に示した方法では、タイムステップごとに、空間解像度の過不足を評価するか否かを判定する(ステップSA4)。これに対して
図12に示した実施例では、近接粒子リストを更新するタイムステップのときにのみ、近接粒子リストを更新する前に、空間解像度の過不足を評価するか否かを判定する(ステップSA4)。
【0106】
近接粒子リストを更新する間隔は、一般的に、式(42)で計算されるタイムステップ数Nrより短い。ステップSA4において、直近に空間解像度の過不足の評価を行った時点からタイムステップ数Nr以上経過した場合に、空間解像度の過不足の評価を行うと判定すればよい。
【0107】
計算粒子20の分割や合体を行った後は、近接粒子リストを更新する必要がある。したがって、近接粒子リストを更新するタイミングで計算粒子20の分割や合体を行うことにより、計算効率を高めることができる。
【0108】
[実際に行ったシミュレーションの結果]
次に、
図13~
図15を参照して、
図12に示したシミュレーション方法を用いてシミュレーションを行った結果について説明する。このシミュレーションには、式(46)~式(51)の支配方程式を用い、平行平板間の流れの解析を行った。
【0109】
図13は、解析モデルの模式図である。解析空間10を直方体の形状とした。流れの方向(
図13の左右方向)の寸法を0.025mとし、平行な一対の壁面11の間隔(
図13の高さ方向の寸法)を0.1mとし、流れに直交する幅方向の寸法を0.025mとした。流れ方向及び幅方向の境界条件として、周期境界条件を課した。壁面11の境界条件として、滑り無し条件を与えた。
【0110】
計算粒子20のカーネル幅の初期値を0.005mとし、複数の計算粒子20を解析空間10に等間隔に配置した。作動流体として空気を想定し、温度の初期値293K、圧力の初期値101.3kPaを、解析空間10内の全ての計算粒子20に与えた。速度の初期条件として、平均流速が170m/sの放物線分布になるように、壁面11からの距離に応じて、計算粒子20のそれぞれに速度の初期値を与えた。粘性係数はサザーランドの法則を用いて算出し、その100倍の値を与えた。解析中は、流れ場の平均速度が170m/sになるように流れ方向に圧力勾配を与えた。
【0111】
解析の時間刻み幅を7.28×10-7sとした。時刻0sを初期状態とし、流れ場を時間発展させ、時刻0.1sにおける速度分布の値を出力した。また、比較対象として、解析に要する最大の空間解像度に合わせて、すべての計算粒子20のカーネル幅を0.0005mに固定した解析も行った。
【0112】
図14A及び
図14Bは、それぞれ計算開始時点及び計算終了時点における計算粒子20の分布を示す模式図である。計算開始時点は、カーネル幅が0.005mの複数の計算粒子20が等間隔に整列している。計算終了時点では、壁面11に近い領域ほど、細かい計算粒子20が分布していることがわかる。これは、壁面11の近傍では速度勾配が大きく、より高い空間解像度が必要なため、計算中に計算粒子20が分割されてその大きさが小さくなっていったためである。計算終了時点では、計算粒子20は約12,000個であった。なお、計算粒子20のカーネル幅を0.0005mに固定した比較例においては、計算粒子20は約500,000個であった。
【0113】
図15は、計算終了時点の速度分布及び初期状態の速度分布を示すグラフである。
図15の横軸は流速を単位[m/s]で表し、縦軸は、一方の壁面11からの距離を単位[m]で表す。
図15中の細い実線は初期状態の速度分布を示し、太い実線及び破線は、それぞれ本実施例及び比較例によるシミュレーション方法で求めた計算終了時点における速度分布を示す。
【0114】
本実施例によるシミュレーション方法で求めた速度分布は、比較例によるシミュレーション方法で求めた速度分布とほぼ同じであることがわかる。すなわち、本実施例では、比較例と比べて計算粒子20の個数を約1/40に低減させるとともに、流れ場の全域に亘って十分高い解像度で解析を行うことができることが確認された。
【0115】
上述の実施例は例示であり、本発明は上述の実施例に制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。上記実施例では、粒子法としてSPH法を用いているが、その他の粒子法、例えばMPS法等を用いた流体解析にも、上記実施例による手法を適用することが可能である。
【符号の説明】
【0116】
10 解析空間
11 壁面
20、20a、20a1~20a8、20ab、20b、20c、20d、20e、20s 計算粒子
30 入力部
31 処理部
32 出力部
33 記憶部