(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-03
(45)【発行日】2023-02-13
(54)【発明の名称】流体解析システム、流体解析方法、および流体解析プログラム
(51)【国際特許分類】
G16Z 99/00 20190101AFI20230206BHJP
G06F 30/10 20200101ALI20230206BHJP
G06F 30/20 20200101ALI20230206BHJP
G06F 30/25 20200101ALI20230206BHJP
G06F 30/27 20200101ALI20230206BHJP
G06F 30/28 20200101ALI20230206BHJP
G06N 20/00 20190101ALI20230206BHJP
【FI】
G16Z99/00
G06F30/10
G06F30/20
G06F30/25
G06F30/27
G06F30/28
G06N20/00 130
(21)【出願番号】P 2019009187
(22)【出願日】2019-01-23
【審査請求日】2022-01-11
(73)【特許権者】
【識別番号】397073201
【氏名又は名称】株式会社電通国際情報サービス
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100144440
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】横井 俊昭
(72)【発明者】
【氏名】小川 雄太郎
【審査官】宮地 匡人
(56)【参考文献】
【文献】西田 友是,流体力学のCG応用,ながれ,日本流体力学会,2018年08月25日,Vol.37 No.4,pp.313-321
【文献】L. Ladicky et al.,ata-driven Fluid Simulations using Regression Forests,ACM Transactions on Graphics,2015年11月,Volume 34 Issue 6,Article No.199
(58)【調査した分野】(Int.Cl.,DB名)
G16Z 99/00
G06F 30/10
G06F 30/20
G06F 30/25
G06F 30/27
G06F 30/28
G06N 20/00
JSTPlus(JDreamIII)
JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
少なくとも一つのプロセッサを備え、
前記少なくとも一つのプロセッサが、
液体を構成する複数の粒子のそれぞれの第1時点における位置および速度
から得られる、該複数の粒子のそれぞれに作用する力に基づいて、該複数の粒子のそれぞれの、前記第1時点から所与の時間ステップが経過した第2時点における仮位置を算出し、
前記複数の粒子のそれぞれの前記仮位置に基づく特徴量を示す入力ベクトルを設定し、
前記入力ベクトルを機械学習モデルに入力することで、
前記第2時点における、前記複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成
し、
前記複数の粒子のそれぞれの前記仮位置に基づく特徴量が、近傍粒子との距離に基づく特徴量と、前記粒子の前記仮位置での圧力を得るための連立一次方程式を示す行列またはベクトルに関連する特徴量と、前記仮位置での粒子密度に関連した特徴量と、前記仮位置での相対密度に関連した特徴量とを含む、
流体解析システム。
【請求項2】
前記少なくとも一つのプロセッサが、前記複数の粒子のそれぞれの前記第1時点における圧力にさらに基づく入力ベクトルを取得する、
請求項
1に記載の流体解析システム。
【請求項3】
前記少なくとも一つのプロセッサが、前記複数の粒子のそれぞれの前記第2時点における圧力をさらに示す出力ベクトルを生成する、
請求項1
または2に記載の流体解析システム。
【請求項4】
少なくとも一つのプロセッサを備える流体解析システムにより実行される流体解析方法であって、
液体を構成する複数の粒子のそれぞれの第1時点における位置および速度
から得られる、該複数の粒子のそれぞれに作用する力に基づいて、該複数の粒子のそれぞれの、前記第1時点から所与の時間ステップが経過した第2時点における仮位置を算出するステップと、
前記複数の粒子のそれぞれの前記仮位置に基づく特徴量を示す入力ベクトルを設定するステップと、
前記入力ベクトルを機械学習モデルに入力することで、
前記第2時点における、前記複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成するステップと
を含
み、
前記複数の粒子のそれぞれの前記仮位置に基づく特徴量が、近傍粒子との距離に基づく特徴量と、前記粒子の前記仮位置での圧力を得るための連立一次方程式を示す行列またはベクトルに関連する特徴量と、前記仮位置での粒子密度に関連した特徴量と、前記仮位置での相対密度に関連した特徴量とを含む、
流体解析方法。
【請求項5】
液体を構成する複数の粒子のそれぞれの第1時点における位置および速度
から得られる、該複数の粒子のそれぞれに作用する力に基づいて、該複数の粒子のそれぞれの、前記第1時点から所与の時間ステップが経過した第2時点における仮位置を算出するステップと、
前記複数の粒子のそれぞれの前記仮位置に基づく特徴量を示す入力ベクトルを設定するステップと、
前記入力ベクトルを機械学習モデルに入力することで、
前記第2時点における、前記複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成するステップと
をコンピュータに実行さ
せ、
前記複数の粒子のそれぞれの前記仮位置に基づく特徴量が、近傍粒子との距離に基づく特徴量と、前記粒子の前記仮位置での圧力を得るための連立一次方程式を示す行列またはベクトルに関連する特徴量と、前記仮位置での粒子密度に関連した特徴量と、前記仮位置での相対密度に関連した特徴量とを含む、
流体解析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は、流体解析システム、流体解析方法、および流体解析プログラムに関する。
【背景技術】
【0002】
液体の挙動をコンピュータで解析する手法が知られている。例えば、特許文献1には、MPS法に基づく計算アルゴリズムを実行して非圧縮性流体に係る流体の挙動解析を行う方法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
MPS法は、連続体に関する方程式を数値的に解くための離散化手法である粒子法の一種である。格子法とは異なり、粒子法は流体の挙動を格子に丸め込まないので、飛沫などのような流体の細部の挙動を予測することができ、また、流体の大きな変形を予測することも可能である。その一方で、粒子法では計算の精度を上げようとすると計算時間が増大してしまう。そのため、粒子法を用いた液体の挙動の予測を短時間で実行することが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係る流体解析システムは少なくとも一つのプロセッサを備える。少なくとも一つのプロセッサは、液体を構成する複数の粒子のそれぞれの第1時点における位置および速度に基づく入力ベクトルを取得し、入力ベクトルを機械学習モデルに入力することで、第1時点から所与の時間ステップが経過した第2時点における、複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成する。
【0006】
本開示の一側面に係る流体解析方法は、少なくとも一つのプロセッサを備える流体解析システムにより実行される。この流体解析方法は、液体を構成する複数の粒子のそれぞれの第1時点における位置および速度に基づく入力ベクトルを取得するステップと、入力ベクトルを機械学習モデルに入力することで、第1時点から所与の時間ステップが経過した第2時点における、複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成するステップとを含む。
【0007】
本開示の一側面に係る流体解析プログラムは、液体を構成する複数の粒子のそれぞれの第1時点における位置および速度に基づく入力ベクトルを取得するステップと、入力ベクトルを機械学習モデルに入力することで、第1時点から所与の時間ステップが経過した第2時点における、複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成するステップとをコンピュータに実行させる。
【0008】
このような側面においては、液体を構成する個々の粒子の位置および速度が機械学習を用いて計算される。粒子法を用いた予測の少なくとも一部に機械学習を導入することで、その予測を短時間で実行することが可能になる。
【発明の効果】
【0009】
本開示の一側面によれば、粒子法を用いた液体の挙動の予測を短時間で実行することができる。
【図面の簡単な説明】
【0010】
【
図1】MPS法の手順の一例を示すフローチャートである。
【
図2】実施形態に係る流体解析システムで用いられるコンピュータのハードウェア構成の一例を示す図である。
【
図3】実施形態に係る流体解析システムの機能構成の一例を示す図である。
【
図4】実施形態に係る流体解析システムによる学習処理の一例を示すフローチャートである。
【
図5】実施形態に係る流体解析システムによる予測処理の一例を示すフローチャートである。
【
図6】実施形態に係る流体解析システムによる学習処理の別の例を示すフローチャートである。
【
図7】実施形態に係る流体解析システムによる予測処理の別の例を示すフローチャートである。
【
図8】実施形態に係る流体解析システムによる学習処理の別の一例を示すフローチャートである。
【
図9】実施形態に係る流体解析システムによる予測処理の別の例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0012】
[システムの概要]
実施形態に係る流体解析システムは液体の挙動を予測するコンピュータシステムである。より具体的には、流体解析システムは何らかの構造物に関連する液体の挙動を予測する。液体の挙動とは、時間の経過に伴う液体の動きのことをいう。処理対象となる液体の種類、すなわち、モデル化される液体(液体モデル)の種類は何ら限定されず、例えば水、オイルなどでもよい。処理対象となる液体を取り巻く雰囲気(例えば温度)は限定されず、例えば、高温下で液化した物質が処理対象であってもよい。液体に関連する構造物の種類、すなわち計算の前提として設定される構造物の種類も何ら限定されず、人工物でも自然物でもよい。構造物の例として水車、タンク、水洗トイレ、船舶、ギアボックス、堤防、ダムなどが挙げられるが、当然にこれらに限定されない。
【0013】
流体解析システムは機械学習を利用する。機械学習とは、与えられた情報に基づいて反復的に学習することで法則またはルールを自律的に見つけ出す手法である。入力データから(連続的な)数値を予測する回帰問題を扱うことができる限り、機械学習の具体的な手法は限定されない。例えば、流体解析システムはランダムフォレスト、勾配ブースティング決定木(GBDT)、ニューラルネットワーク、サポートベクター回帰(SVR)などの任意の手法が用いられてよい。
【0014】
流体解析システムは、データを学習することで計算モデル(機械学習モデル)を生成し、この計算モデルを学習済みモデルとして取得することができる。これは学習フェーズに相当する。学習済みモデルは、液体の挙動を予測するために最適であると推定される計算モデル(機械学習モデル)であり、“現実に最適である計算モデル(機械学習モデル)”とは限らないことに留意されたい。流体解析システムは、学習済みモデルを用いて入力データを処理することで、液体の挙動を示す予測データを出力することもできる。これは予測フェーズに相当する。
【0015】
学習済みモデルはコンピュータシステム間で移植可能である。したがって、或るコンピュータシステムで生成された学習済みモデルを、別のコンピュータシステムで用いることができる。もちろん、一つのコンピュータシステムが学習済みモデルの生成および利用の双方を実行してもよい。すなわち、流体解析システムは、学習フェーズおよび予測フェーズの双方を実行してもよいし、学習フェーズおよび予測フェーズのいずれか一方を実行しなくてもよい。
【0016】
[粒子法]
流体解析システムは液体の挙動を予測するために粒子法を利用する。粒子法は、連続体に関する方程式を数値的に解くための離散化手法の一つである。格子法とは異なり、粒子法は流体の挙動を格子に丸め込まないので、飛沫などのような流体の細部の挙動を予測することに適しており、また、流体の大きな変形を予測することにも適している。粒子法では、流体を複数の粒子に分割することでモデル化する。この粒子は、分子、液滴などの実体そのものではなく、液体の動きと共に移動する計算点である。個々の粒子には何らかの物理量(例えば、速度、質量、圧力など)が関連付けられる。
【0017】
粒子法の代表的なものとしてDEM(Discrete Element Method)法、SPH(Smoothed Particle Hydrodynamics)法、およびMPS(Moving Particle Semi-implicit)法がある。DEM法は、粒子間にバネを仮定して粒子の衝突および反発を計算する手法である。SPH法は、流体解析の物理方程式であるナビエ・ストークス方程式を計算するために、近傍粒子上の関数値の重み付き平均によって補間関数を定義する手法である。MPS法は、そのような補間関数を定義せず、各粒子の位置、速度などについて、重み関数で補正した近傍粒子点の和でナビエ・ストークス方程式を計算する手法である。一般に、DEM法は粉体の問題を扱うのに対して、SPH法およびMPS法は液体の問題を扱う。SPH法は陽解法(fully explicit)で計算を行うため、計算ステップを細かく刻む必要があるのに対して、MPS法は半陰的解法(semi-implicit)なので、計算ステップを大きく刻めるという利点がある。
【0018】
本実施形態ではMPS法を応用する。流体解析システムはMPS法を利用した予測において機械学習モデルを用いることで、計算時間の短縮を可能にする。
【0019】
流体解析システムの詳細に先立ち、
図1を参照しながらMPS法の手順を処理フローS1として説明する。
図1はMPS法の手順の一例を示すフローチャートである。
【0020】
ステップS11では、粒子数密度などの計算条件が設定される。ステップS12では個々の粒子の初期条件(r0,u0,P0)が設定される。r0は個々の粒子の初期位置を示し、u0は個々の粒子の初期速度を示し、P0は個々の粒子間の初期圧力を示す。ただしP0は必須ではなく、P0が与えられなくても流体解析は可能である。本開示では、粒子の位置および速度は2次元または3次元のベクトルで表され、粒子に作用する圧力はスカラーで表される。上記の通り、粒子とはシミュレーションにおける計算点であり、したがって、粒子の大きさは、解析対象の大きさ、期待する解像度などにより任意に設定されてよい。
【0021】
ステップS13では個々の粒子の仮速度が計算される。仮速度は、現在の時点から時間ステップΔtだけ経過した時点における粒子の速度を示す仮の値である。時間ステップは、解析において1回あたりに進める時間間隔である。
【0022】
粒子の仮速度u
*は、粘性項および重力・外力項を含む式(1)により得られる。gは重力加速度である。したがって、粒子の仮速度u
*は、該粒子に作用する力に基づいて算出されるということができる。
【数1】
【0023】
粘性項は、重み関数w(・)を含む下記式(2)で得られる。
【数2】
ここで、
【数3】
【数4】
である。νは動粘性係数を示し、dは計算領域の次元を示す。n
0は一粒子の近傍粒子の粒子数密度の基準値を示す。λ
0は一粒子の影響の範囲内にある近傍粒子との距離の2乗の重み平均値を示す。u
i
kは計算ステップkにおけるi番目の粒子の速度を示す(iは粒子番号を示す)。r
i
kは計算ステップkにおけるi番目の粒子の位置を示す。なお、粘性項は式(2)に限定されず、高精度粒子法に基づく別の手法によって計算されてもよい。
【0024】
重み関数w(・)については一般に式(3)が用いられる。
【数5】
ここで、|r
j-r
i|は二つの粒子i,j間の距離を示す。r
eは或る粒子を近傍粒子と見做す距離(近傍粒子の距離)の基準値である。なお、重み関数は式(3)に限定されるものではなく、他の種類の重み関数が用いられてもよい。
【0025】
ステップS14では個々の粒子の仮位置r
*が式(4)によって計算される。仮位置は、現在の時点から時間ステップだけ経過した時点における粒子の位置を示す仮の値である。上述したように粒子の仮速度u
*は該粒子に作用する力に基づいて算出されるので、粒子の仮位置r
*もその力に基づいて算出されるということができる。
【数6】
【0026】
ステップS15では、粒子の仮位置での圧力P
k+1が式(5)によって計算される。
【数7】
ここで、行列Aの要素a
ijは式(6)で示される。
【数8】
ベクトルbの要素b
iは式(7)で示される。
【数9】
ρ
0は液体の密度の基準値を示す。n
i
*はi番目の粒子の仮位置r
i
*での粒子密度であり次式で定義される。
【数10】
なお、行列Aおよびベクトルbの計算方法は上記のものに限定されず、他の手法が用いられてもよい。
【0027】
ステップS16では、圧力勾配∇P
k+1による速度変化量u´が式(8)によって計算される。
【数11】
圧力勾配∇P
k+1は式(9)で示される。
【数12】
ここで、P^
i
k+1は、i番目の粒子と近傍粒子との圧力差が負圧にならないように補正するための値である。圧力勾配の計算方法は式(9)に限定されず、他の手法が用いられてもよい。
【0028】
ステップS17では、粒子の速度および位置が更新される。これは、仮に求めた粒子の速度および位置を確定することを意味する。粒子の速度u
k+1は式(10)で示され、更新後の粒子の位置r
k+1は式(11)で示される。
【数13】
【数14】
【0029】
ステップS18に示すように、ステップS13~S17の処理は、予測における所与の最終時刻に到達するまで繰り返し実行される。その最終時刻にまだ到達していない場合には(ステップS18においてNO)、ステップS19において時間ステップΔtの分だけ時間が進められて、その後、更新後の粒子の速度および位置に対してステップS13~S17の処理が実行される。ステップS18において終了条件が満たされるまで個々の粒子の速度および位置が更新され続けることで、所与の初期時刻から所与の最終時刻までの間の液体の挙動が予測される。
【0030】
MPS法による処理(処理フローS1)の中で計算時間が特に掛かるのが仮位置での圧力の計算(ステップS15)である。この処理では圧力Pk+1を連立一次方程式で解く必要があり、そのためには行列Aおよびベクトルbを用いて反復法もしくは直接法で計算する必要がある。そのため、複数の計算ノードによる分散メモリ型並列計算ではノード間のデータ通信量が大きな負荷となり、高速化が困難である。一方、ステップS15以外の処理は、複数の計算ノードによる並列計算に適している。例えば、液体モデルが存在する空間であるシミュレーション空間を複数の区画に分割して個々の計算ノードが個々の区画について計算を実行することで、計算の高速化が可能である。本実施形態では、少なくとも仮位置での圧力の計算(ステップS15)を含む処理を機械学習で実行することで、液体の挙動を予測する処理の高速化を図る。
【0031】
[システムの構成]
図2は実施形態に係る流体解析システム10を構成するコンピュータ100の一般的なハードウェア構成の一例を示す。例えば、コンピュータ100はプロセッサ101、主記憶部102、補助記憶部103、通信制御部104、入力装置105、および出力装置106を備える。プロセッサ101はオペレーティングシステムおよびアプリケーション・プログラムを実行する。主記憶部102は例えばROMおよびRAMで構成される。補助記憶部103は例えばハードディスクまたはフラッシュメモリで構成され、一般に主記憶部102よりも大量のデータを記憶する。通信制御部104は例えばネットワークカードまたは無線通信モジュールで構成される。入力装置105は例えばキーボード、マウス、タッチパネルなどで構成される。出力装置106は例えばモニタおよびスピーカで構成される。
【0032】
流体解析システム10の各機能要素は、補助記憶部103に予め記憶される流体解析プログラム110により実現される。具体的には、各機能要素は、プロセッサ101または主記憶部102の上に流体解析プログラム110を読み込ませてその流体解析プログラム110を実行させることで実現される。プロセッサ101はその流体解析プログラム110に従って、通信制御部104、入力装置105、または出力装置106を動作させ、主記憶部102または補助記憶部103におけるデータの読み出しおよび書き込みを行う。処理に必要なデータまたはデータベースは主記憶部102または補助記憶部103内に格納される。
【0033】
流体解析プログラム110は、例えば、CD-ROM、DVD-ROM、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、流体解析プログラム110は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0034】
流体解析システム10は1台のコンピュータ100で構成されてもよいし、複数台のコンピュータ100で構成されてもよい。複数台のコンピュータ100を用いる場合には、これらのコンピュータ100がインターネットやイントラネットなどの通信ネットワークを介して接続されることで、論理的に一つの流体解析システム10が構築される。
【0035】
図3は実施形態に係る流体解析システム10の機能構成の一例を示す図である。本実施形態では、流体解析システム10は機能要素として学習部11および予測部12を備える。学習部11は、機械学習を実行することで学習済みモデルを生成および取得する機能要素である。予測部12は、その学習済みモデルを用いて入力データから予測データを求める機能要素である。
【0036】
[システムの動作]
流体解析システム10の動作を説明するとともに本実施形態に係る流体解析方法について説明する。まず、
図4および
図5を参照しながら、MPS法のすべてを機械学習に置き換える手法の一例を説明する。
図4は流体解析システム10の学習処理の一例を処理フローS2として示すフローチャートである。
図5は流体解析システム10の予測処理の一例を処理フローS3として示すフローチャートである。
図4および
図5はそれぞれ、学習フェーズおよび予測フェーズに対応する。処理フローS2,S3のいずれも、本開示に係る流体解析方法に対応し得る。処理フローS2は学習済みモデルの生成方法の一例であるともいえる。
【0037】
図4を参照しながら、学習部11により実行される処理フローS2を説明する。学習部11は、ステップS21では一つの液体モデルを示す教師データに基づいて計算条件を取得し、ステップS22ではその教師データに基づいて個々の粒子の初期条件(r
0,u
0,P
0)を取得する。ステップS21,S22はそれぞれステップS11,S12に対応する。
【0038】
教師データは、初期時刻(粒子の初期条件に対応する時刻)から所与の最終時刻までの間の個々の時点(すなわち、時間ステップΔtずつ進む個々の時点)における、全粒子のそれぞれの位置および速度を示すデータである。機械学習で得られる出力ベクトルが各粒子の圧力をさらに含む場合には、教師データは各時点における全粒子のそれぞれの圧力をさらに含む。教師データの準備方法は限定されず、例えば、教師データは、別途実行されるコンピュータ・シミュレーションによって生成されてもよい。一般に、複数の液体モデルのそれぞれについて教師データが用意される。用意される教師データの個数(液体モデルの個数)は限定されない。
【0039】
教師データの取得方法は限定されない。例えば、学習部11は流体解析システム10のユーザ操作により入力されたデータを受け付けてもよいし、所与のデータベースにアクセスしてデータを読み出してもよいし、他のコンピュータシステムから送られてきたデータを受信してもよい。
【0040】
ステップS23では、学習部11は、複数の粒子の位置および速度を示す入力ベクトルを用いて機械学習を実行する。具体的には、学習部11は、第1計算ステップkにおける複数の粒子の位置および速度を示す入力ベクトルを教師データから生成する。そして、学習部11はその入力ベクトルを機械学習モデルに入力し、第2計算ステップk+1における該複数の粒子の位置および速度を示す出力ベクトルを得る。ステップS23はステップS13~S19に対応する。第1計算ステップは第1時点に対応し、第2計算ステップは第2時点に対応する。第1時点は或る時刻tであり、第2時点は該時刻tから時間ステップΔtだけ進んだ時刻(t+Δt)である。第1時点の初期値は粒子の初期条件に対応する時点であり、その後、計算ステップが1ずつ進むごとに第1時点が時間ステップΔtずつ進む。機械学習モデルに入力される複数の粒子は、教師データで示される全粒子であってもよいし、一部の粒子のみであってもよい。一部の粒子は例えばランダムに選択されてもよい。一部の粒子のみを用いることで学習時間を短縮することができる。
【0041】
粒子の総数をNとし、粒子の位置をrとし、粒子の速度をuとし、さらに、時間ステップ毎に進む時刻を計算ステップkで表すとする。この場合、入力ベクトルは{(rk
1,uk
1),(rk
2,uk
2),…,(rk
N,uk
N)}と表され、出力ベクトルは{(rk+1
1,uk+1
1),(rk+1
2,uk+1
2),…,(rk+1
N,uk+1
N)}と表される。第2時点における粒子の位置での圧力を求めてもよく、この場合には、出力ベクトルは{(rk+1
1,uk+1
1,Pk+1
1),(rk+1
2,uk+1
2,Pk+1
2),…,(rk+1
N,uk+1
N,Pk+1
N)}と表される。
【0042】
この機械学習では、教師データで示される第2時点での値が正解として用いられる。学習部11は、入力ベクトルを機械学習モデルに与えることで出力ベクトルを生成する。そして、学習部11は予測結果を示す出力ベクトルと正解との差(すなわち、誤差)に基づいて、バックプロパゲーション(誤差逆伝播法)などの手法を用いて機械学習モデル内のパラメータを更新する。なお、機械学習モデル内の更新されるパラメータの種類は限定されず、例えば、様々な設定値または制限値であってもよい。ニューラルネットワークの重みはパラメータの一例である。
【0043】
ステップS23において、学習部11は機械学習を一つの計算ステップごとに実行してもよいし、すべての計算ステップについて一度に実行してもよい。すべての計算ステップについて一度に実行する場合には、入力ベクトルは{(r1
1,u1
1),(r1
2,u1
2),…,(r1
N,u1
N),(r2
1,u2
1),(r2
2,u2
2),…,(r2
N,u2
N),…,(rk
1,uk
1),(rk
2,uk
2),…,(rk
N,uk
N)}と表される。また、出力ベクトルは{(r2
1,u2
1),(r2
2,u2
2),…,(r2
N,u2
N),(r3
1,u3
1),(r3
2,u3
2),…,(r3
N,u3
N),…,(rk+1
1,uk+1
1),(rk+1
2,uk+1
2),…,(rk+1
N,uk+1
N)}と表される。圧力を含む出力ベクトルも同様に表現できる。
【0044】
一つの教師データを用いた機械学習の終了条件は任意に設定されてよい。例えば、終了条件は誤差に基づいて設定されてもよいし、学習のサイクル数に基づいて設定されてもよい。
【0045】
学習フェーズでは学習部11は複数の液体モデルのそれぞれの教師データを用いて処理フローS2を実行し得る。任意の個数の液体モデルについて処理フローS2を実行した後に、学習部11は処理された機械学習モデルを学習済みモデルとして取得する。この処理は、学習済みモデルが生成されたことを意味する。学習部11はその学習済みモデルを出力する。学習済みモデルの出力方法は限定されない。例えば、学習部11は学習済みモデルを、メモリ、データベースなどの記憶装置に格納してもよいし、他のコンピュータシステムに送信してもよい。本実施形態では、予測部12がその学習済みモデルを用いる。
【0046】
図5を参照しながら、予測部12により実行される処理フローS3を説明する。予測部12は、ステップS31では予測しようとする液体モデルの計算条件を取得し、ステップS32では該液体モデルの個々の粒子の初期条件(r
0,u
0,P
0)を取得する。ステップS31,S32はそれぞれステップS11,S12に対応する。計算条件と粒子の初期条件とを示す入力データの取得方法は限定されない。例えば、予測部12は流体解析システム10のユーザ操作により入力されたデータを受け付けてもよいし、所与のデータベースにアクセスしてデータを読み出してもよいし、他のコンピュータシステムから送られてきたデータを受信してもよい。
【0047】
ステップS33では、予測部12は、複数の粒子の位置および速度を示す入力ベクトルを学習済みモデルに入力することで出力ベクトルを生成する。具体的には、予測部12は、第1時点における全粒子の位置および速度を示す入力ベクトルを学習済みモデルに入力し、第2時点における全粒子の位置および速度を示す出力ベクトルを得る。ステップS33はステップS13~S17に対応する。第1時点は或る時刻tであり、第2時点は該時刻tから時間ステップΔtだけ進んだ時刻(t+Δt)である。第1時点の初期値は粒子の初期条件に対応する時点であり、その後、第1時点は時間ステップΔtずつ進む。入力ベクトルは、1ループ目では初期条件に対応する全粒子の位置および速度を含んで構成され、2ループ目以降では、前のループで得られた出力ベクトルで示される全粒子の位置および速度を含んで構成される。処理フローS2に対応して、出力ベクトルは圧力を含んでもよいし含まなくてもよい。
【0048】
ステップS34では、予測部12は計算を終了する否かを判定する。具体的には、予測部12は予測における所与の最終時刻に到達したか否かを判定する。第2時刻が最終時刻でない場合には(ステップS34においてNO)、処理はステップS35に進む。ステップS35では、予測部12は時間ステップΔtだけ時間を進める。そして、予測部12はその進めた時間を第1時点として、ステップS33の処理を再び実行する。
【0049】
計算を終了すると判定した場合、すなわち所与の最終時刻に到達した場合には、処理はステップS36に進む。ステップS36では、予測部12は予測データを出力する。予測データの構造は限定されず、例えば、予測部12は、初期時刻(粒子の初期条件に対応する時刻)から所与の最終時刻までの各時点における、全粒子のそれぞれの位置および速度を示す予測データを出力してもよい。あるいは、予測部12は初期時刻から最終時刻までの間の任意の一または複数の時点における、全粒子のそれぞれの位置および速度を示す予測データを出力してもよい。予測データの出力方法は限定されない。例えば、予測部12は予測データを、モニタ上に表示してもよいし、所定のデータベースに格納してもよいし、他のコンピュータシステムに送信してもよい。予測データの表現方法も任意であり、例えば、予測データはコンピュータグラフィックス、表、数字列などのなどの任意の手法で表現されてよい。いずれにしても、流体解析システム10のユーザはその予測データを参照することで液体の挙動の予測を得ることができる。
【0050】
次に、
図6および
図7を参照しながら、MPS法の一部を機械学習に置き換える手法の一例を説明する。
図6は流体解析システム10の学習処理の一例を処理フローS4として示すフローチャートである。
図7は流体解析システム10の予測処理の一例を処理フローS5として示すフローチャートである。
図6および
図7はそれぞれ、学習フェーズおよび予測フェーズに対応する。処理フローS4,S5のいずれも、本開示に係る流体解析方法に対応し得る。処理フローS4は学習済みモデルの生成方法の一例であるともいえる。
【0051】
図6を参照しながら、学習部11により実行される処理フローS4を説明する。学習部11は、ステップS41では一つの液体モデルを示す教師データに基づいて計算条件を取得し、ステップS42ではその教師データに基づいて個々の粒子の初期条件(r
0,u
0,P
0)を取得する。処理フローS2と同様に教師データの取得方法は限定されない。ステップS41,S42はそれぞれステップS11,S12に対応する。
【0052】
学習部11は、ステップS43では個々の粒子の仮速度を求め、ステップS44では個々の粒子の仮位置を求め、ステップS45では個々の粒子について仮位置での圧力を求める。ステップS43,S44,S45はそれぞれステップS13,S14,S15に対応する。ステップS43,S44は、第1時点(時刻t)における個々の粒子の位置および速度に基づいて、第2時点(時刻t+Δt)における個々の粒子の位置および速度を仮に求める処理である。処理フローS4では、ステップS45で得られる圧力Pk+1が教師データとなり、正解として用いられる。
【0053】
ステップS46では、学習部11は個々の粒子について特徴量を求める。本実施形態では、特徴量は以下に示す第1特徴量~第9特徴量を一つにまとめたベクトルとして表現される。この例では、学習部11は第1特徴量~第9特徴量を以下の方針(A)~(D)に基づいて計算する。
【0054】
(A)近傍粒子との距離に関連した値を用いる。
(B)圧力Pk+1を求める式(5)に関連した値を用いる。
(C)粒子密度に関連した値を用いる。
(D)相対密度に関連した値を用いる。
【0055】
学習部11は第1特徴量を計算する。第1特徴量は粒子iから距離r
e内に存在するn
0個の近傍粒子jとの距離である。第1特徴量はn
0次元のベクトルであり、各要素は昇順に配置される。第1特徴量のn
0個の要素F1
jは次式で定義される。
【数15】
ここで、|r
j
*-r
i
*|は二つの粒子i,j間の距離(二つの仮位置の間の距離)を示す。r
eは或る粒子を近傍粒子と見做す距離(近傍粒子の距離)の基準値である。距離r
e内に存在する粒子がn
0個に満たない場合は、ゼロが代替として第1特徴量の要素に設定される。
【0056】
学習部11は第2特徴量を計算する。第2特徴量は式(5)の行列Aに関連する特徴量であり、n
0次元のベクトルである。第2特徴量のn
0個の要素F2
jは次式で定義される。
【数16】
ここで、a
iiは式(6)で得られる。距離r
e内に存在する粒子がn
0個に満たない場合は、ゼロが代替として第2特徴量の要素に設定される。
【0057】
学習部11は第3特徴量を計算する。第3特徴量は式(5)の行列Aに関連する特徴量であり、n
0次元のベクトルである。第3特徴量のn
0個の要素F3
jは次式で定義される。
【数17】
ここで、n
j
*はj番目の粒子の仮位置r
j
*での粒子密度である。距離r
e内に存在する粒子がn
0個に満たない場合は、ゼロが代替として第3特徴量の要素に設定される。
【0058】
学習部11は第4特徴量を計算する。第4特徴量は式(5)の行列Aに関連する特徴量であり、n
0次元のベクトルである。第4特徴量のn
0個の要素F4
jは次式で定義される。
【数18】
ここで、n
j
**はj番目の粒子の仮位置r
j
*での相対密度であり、次式で定義される。
【数19】
距離r
e内に存在する粒子がn
0個に満たない場合は、ゼロが代替として第4特徴量の要素に設定される。
【0059】
学習部11は第5特徴量を計算する。第5特徴量は式(5)のベクトルbに関連する特徴量であり、n
0次元のベクトルである。第5特徴量のn
0個の要素F5
jは次式で定義される。
【数20】
距離r
e内に存在する粒子がn
0個に満たない場合は、ゼロが代替として第5特徴量の要素に設定される。
【0060】
学習部11は第6特徴量を計算する。第6特徴量は上記の粒子密度に関連する特徴量であり、n
0次元のベクトルである。第6特徴量のn
0個の要素F6
jは次式で定義される。
【数21】
距離r
e内に存在する粒子がn
0個に満たない場合は、ゼロが代替として第6特徴量の要素に設定される。
【0061】
学習部11は第7特徴量を計算する。第7特徴量は上記の相対密度に関連する特徴量であり、n
0次元のベクトルである。第7特徴量のn
0個の要素F7
jは次式で定義される。
【数22】
距離r
e内に存在する粒子がn
0個に満たない場合は、ゼロが代替として第7特徴量の要素に設定される。
【0062】
学習部11は第8特徴量を計算する。第8特徴量は式(5)のベクトルbに関連する特徴量であり、スカラーである。第8特徴量は次式で定義される。
【数23】
【0063】
学習部11は第9特徴量を計算する。第9特徴量は上記の粒子密度に関連する特徴量であり、スカラーである。第9特徴量は次式で定義される。
【数24】
【0064】
ステップS47では、学習部11は複数の粒子の特徴量を示す入力ベクトルを用いて機械学習を実行する。
【0065】
この機械学習に対応する理論は次の通りである。計算ステップkにおいて粒子iの圧力P
i
k+1は次式により得られる。Regression()は回帰式を表し、F
iは粒子iの特徴量を示す。
【数25】
【0066】
第1特徴量~第7特徴量はそれぞれn0次元のベクトルなので、それぞれの説明変数はn0個である。第8特徴量および第9特徴量はスカラーなので、それぞれの説明変数は1個である。したがって、機械学習での説明変数は(7×n0+2)個である。
【0067】
学習部11は、複数の粒子のそれぞれの特徴量を示す入力ベクトルを用いて機械学習を実行する。具体的には、学習部11は、複数の粒子の特徴量を示す入力ベクトルを機械学習モデルに入力し、該複数の粒子の圧力Pk+1を示す出力ベクトルを得る。粒子の特徴量は、該粒子の第1時点における位置および速度に基づいて得られる。したがって、複数の粒子のそれぞれの特徴量を示す入力ベクトルも、複数の粒子のそれぞれの第1時点における位置および速度に基づく。処理フローS2と同様に、機械学習モデルに入力される複数の粒子は、教師データで示される全粒子であってもよいし、ランダム選択などの手法により選択された一部の粒子のみであってもよい。
【0068】
粒子の総数をNとし、粒子の特徴量をFとし、さらに、時間ステップ毎に進む時刻を計算ステップkで表すとする。この場合、入力ベクトルは{F1
k,F2
k,…,FN
k}と表され、出力ベクトルは{P1
k+1,P2
k+1,…,PN
k+1}と表される。
【0069】
この機械学習では、ステップS45で得られた圧力Pk+1が正解として用いられる。学習部11は出力ベクトルと正解との差(すなわち、誤差)に基づいて機械学習モデル内のパラメータを更新する。
【0070】
ステップS48では、学習部11は、圧力勾配∇Pk+1による速度変化量u´を式(8)によって計算する。ステップS48はステップS16に対応する。
【0071】
ステップS49では、学習部11は粒子の速度および位置を更新する。これは、仮に求めた粒子の速度および位置を確定することを意味する。粒子の速度uk+1は式(10)で示され、更新後の粒子の位置rk+1は式(11)で示される。ステップS49はステップS17に対応する。
【0072】
ステップS43~S49で示される一連の処理は、計算ステップk(第1時点)での値を示す入力から、計算ステップk+1(第2時点)での値を示す出力を得る処理である。学習部11はこの一連の処理を一つの計算ステップごとに実行してもよいし、すべての計算ステップについて一度に実行してもよい。すべての計算ステップについて一度に実行する場合には、入力ベクトルは{F1
1,F2
1,…,FN
1,F1
2,F2
2,…,FN
2,…,F1
k,F2
k,…,FN
k}と表され、出力ベクトルは{P1
2,P2
2,…,PN
2,P1
3,P2
3,…,PN
3,…,P1
k+1,P2
k+1,…,PN
k+1}と表される。
【0073】
学習フェーズでは学習部11は複数の液体モデルのそれぞれの教師データを用いて処理フローS4を実行し得る。任意の個数の液体モデルについて処理フローS4を実行した後に、学習部11は処理された機械学習モデルを学習済みモデルとして取得する。この処理は、学習済みモデルが生成されたことを意味する。処理フローS2と同様に、学習部11はその学習済みモデルを任意の手法で出力する。
【0074】
図7を参照しながら、予測部12により実行される処理フローS5を説明する。予測部12は、ステップS51では予測しようとする液体モデルの計算条件を取得し、ステップS52では該液体モデルの個々の粒子の初期条件(r
0,u
0,P
0)を取得する。処理フローS3と同様に、液体モデルを示す入力データの取得方法は限定されない。ステップS51,S52はそれぞれステップS11,S12に対応する。
【0075】
予測部12は、ステップS53では個々の粒子の仮速度を求め、ステップS54では個々の粒子の仮位置を求める。ステップS53,S54はそれぞれステップS13,S14に対応する。ステップS53,S54は、第1時点(時刻t)における個々の粒子の位置および速度に基づいて、第2時点(時刻t+Δt)における個々の粒子の位置および速度を仮に求める処理である。
【0076】
ステップS55では、予測部12は個々の粒子について特徴量を求める。ステップS55はステップS46に対応し、したがって、予測部12は、ステップS46における学習部11と同様の手法で特徴量(第1特徴量~第9特徴量を一つにまとめたベクトル)を求める。
【0077】
ステップS56では、予測部12は、複数の粒子の特徴量を示す入力ベクトルを学習済みモデルに入力することで出力ベクトルを生成する。具体的には、予測部12は、各粒子の特徴量を示す入力ベクトルを学習済みモデルに入力し、各粒子の圧力を示す出力ベクトルを得る。ステップS56はステップS47に対応する。粒子の特徴量は、該粒子の第1時点における位置および速度に基づいて得られる。したがって、複数の粒子のそれぞれの特徴量を示す入力ベクトルも、複数の粒子のそれぞれの第1時点における位置および速度に基づく。第1時点の初期値は粒子の初期条件に対応する時点であり、その後、第1時点は時間ステップΔtずつ進む。1ループ目では、入力ベクトルは、初期条件に対応する全粒子の位置および速度に基づいて算出された全粒子の特徴量で構成される。2ループ目以降では、入力ベクトルは、前のループで得られた出力ベクトルで示される圧力に基づいて算出された全粒子の特徴量で構成される。
【0078】
ステップS57では、予測部12は、出力ベクトルPk+1を用いて、圧力勾配∇Pk+1による速度変化量u´を式(8)により求める。ステップS57はステップS16に対応する。
【0079】
ステップS58では、予測部12は個々の粒子の速度および位置を更新する。ステップS58はステップS17に対応する。
【0080】
ステップS59では、予測部12は計算を終了する否かを判定する。具体的には、予測部12は予測における所与の最終時刻に到達したか否かを判定する。第2時刻が最終時刻でない場合には(ステップS59においてNO)、処理はステップS591に進む。ステップS591では、予測部12は時間ステップΔtだけ時間を進める。そして、予測部12はその進めた時間を第1時点として、ステップS53~S58の処理を再び実行する。
【0081】
計算を終了すると判定した場合、すなわち所与の最終時刻に到達した場合には、処理はステップS592に進む。ステップS592では、予測部12は予測データを出力する。処理フローS3と同様に、予測データのデータ構造、出力方法、および表現方法はいずれも限定されない。
【0082】
次に、
図8および
図9を参照しながら、MPS法の一部を機械学習に置き換える手法の別の例を説明する。
図8は流体解析システム10の学習処理の一例を処理フローS6として示すフローチャートである。
図9は流体解析システム10の予測処理の一例を処理フローS7として示すフローチャートである。
図8および
図9はそれぞれ、学習フェーズおよび予測フェーズに対応する。処理フローS6,S7のいずれも、本開示に係る流体解析方法に対応し得る。処理フローS6は学習済みモデルの生成方法の一例であるともいえる。
【0083】
図8を参照しながら、学習部11により実行される処理フローS6を説明する。学習部11は、ステップS61では一つの液体モデルを示す教師データに基づいて計算条件を取得し、ステップS62ではその教師データに基づいて個々の粒子の初期条件(r
0,u
0,P
0)を取得する。教師データの取得方法が限定されないのは処理フローS2と同様である。ステップS61,S62はそれぞれステップS11,S12に対応する。
【0084】
ステップS63では、学習部11は個々の粒子について特徴量を求める。この例では、特徴量は以下の方針に基づいて計算される。
【0085】
・物理量の平均場近似を考慮する。
・可能な変数をローカル空間にマッピングし、特徴量を計算する際に該変数を参照する。
・圧力場の計算方法はMPS陽解法に基づく。
・粒子間距離の計算では、平方根を使わない近似計算を用いる。
・重み関数として、距離の逆平方根を含まないモデルを用いる。
【0086】
相互に左右し合う粒子の組合せを効率的に探すために、学習部11はシミュレーション空間を、近傍粒子の距離の基準値reを1辺の長さとする格子状の複数の部分空間に分割する。この部分空間をバケットともいう。
【0087】
学習部11は個々のバケットについて代表物理変数を定義してこの変数をバケットにマッピングする。このマッピングは平均場近似に基づく。或る一つのバケットをバケットJと表すとすると、学習部11は式(12),(13),(14)で示される三つの代表物理変数r
J
k,u
J
k,P
J
kを定義し、これらの変数をバケットJにマッピングする。
【数26】
【数27】
【数28】
ここで、n
J
kはバケットJに含まれる粒子の数を示し、jは粒子番号を示す。
【0088】
学習部11は、相互に隣接するバケット内に属する二つの粒子i,j間の距離を、原点を共有するローカル座標系(x
l,y
l,z
l)で定義された点(x
li,y
li,z
li),(x
lj,y
lj,z
lj)を用いて、式(15)により近似する。
【数29】
ここで、c0~c4は、相互に隣接するバケット同士の位置関係に応じた定数である。式(15)ではi,jの成分が互いに独立なので、式(16),(17)によって各バケットへのマッピングが可能である。
【数30】
【数31】
【0089】
学習部11は、式(18)で示される重み関数を用いる。式(18)は、二つの粒子間の距離の逆平方根を含まないモデルを示し、このモデルを用いることで、計算を安定的に且つ高速に実行することが可能になる。
【数32】
ここで、c,Nはいずれも、特徴量に応じた定数である。
【0090】
本実施形態では、学習部11は、粘性力に対応する特徴量(粘性力特徴量)を求める。粘性力特徴量は、粒子に作用する力の特徴量の一例である。バケットJからの寄与(∇
2u
i)
J
kに対応する、粒子iの粘性力特徴量Φ
k
visc,i,Jは、式(12),(13)の結果を用いて式(19)で定義される。
【数33】
【0091】
学習部11はnJ
k,uJ
k,rJ
kをマッピング変数として参照することで、式(19)を高速に計算することができる。
【0092】
本実施形態では、学習部11はさらに、圧力に対応する特徴量(圧力特徴量)を計算する。圧力特徴量も、粒子に作用する力の特徴量の一例である。バケットJからの寄与(∇P
i)
J
k+1に対応する、粒子iの圧力特徴量Φ
k
pres,i,Jは、式(20)で定義される。
【数34】
ここで、記号“*”は、計算ステップk+1の値が確定する前の仮変数であることを表す。
【0093】
変数P
i
k+1,P
J
k+1はMPS陽解法に基づいて得られる。
【数35】
【数36】
【0094】
変数n
i
*,n
J
*は、MPS法の定義に従って重み関数を足し合わせたものに平均場近似を適用することで得られる。
【数37】
【数38】
【0095】
n
J
k,n
J´
kはマッピング変数として参照される。r
i
*,r
J
*は次式により表される。
【数39】
【数40】
【0096】
Φ
k
visc,i,J,r
J
k,u
J
k,Φ
k
visc,J,J´はマッピング変数として参照される。Φ
k
visc,J,J´は、バケットJに隣接するバケットJ´を用いて式(21)で表される。
【数41】
n
J´
k,u
J´
k,u
J
k,r
J´
k,r
J
kはマッピング変数として参照される。
【0097】
ステップS64では、学習部11は複数の粒子のそれぞれの粘性力特徴量および圧力特徴量を示す入力ベクトルを用いて機械学習を実行する。
【0098】
この機械学習に対応する理論は次の通りである。計算ステップkにおいて粒子iに作用する加速度a
i
kは式(22)により得られる。Regression()は回帰式を表す。
【数42】
【0099】
速度変化量u´
iは式(23)で得られる。
【数43】
【0100】
粒子iの速度u
i
k+1は式(24)で示され、粒子iの位置r
i
k+1は式(25)で示される。
【数44】
【数45】
【0101】
式(22)で考慮されるバケットJの範囲はシミュレーション空間の次元により異なり、これに応じて機械学習の説明変数の個数も異なる。シミュレーション空間が2次元であれば、一つの基準バケットは8個の隣接バケットで囲まれるので9個(=3×3)のバケットが考慮される。個々のバケットについて粘性力特徴量および圧力特徴量が得られるので、機械学習の説明変数は18個である。シミュレーション空間が3次元であれば、一つの基準バケットは26個の隣接バケットで囲まれるので27個(=3×3×3)のバケットが考慮され、したがって、機械学習の説明変数は54個である。
【0102】
学習部11は、複数の粒子のそれぞれの粘性力特徴量および圧力特徴量を示す入力ベクトルを用いて機械学習を実行する。具体的には、学習部11は、複数の粒子の粘性力特徴量および圧力特徴量を示す入力ベクトルを機械学習モデルに入力し、第2時点における該複数の粒子の位置および速度を示す出力ベクトルを得る。粘性力特徴量および圧力特徴量は、粒子の第1時点における位置および速度に基づいて得られる。したがって、粘性力特徴量および圧力特徴量を示す入力ベクトルも、複数の粒子のそれぞれの第1時点における位置および速度に基づく。処理フローS2と同様に、機械学習モデルに入力される複数の粒子は、教師データで示される全粒子であってもよいし、ランダム選択などの手法により選択された一部の粒子のみであってもよい。
【0103】
粒子の総数をN、時間ステップ毎に進む時刻を計算ステップk、粘性力特徴量をΦk
visc、圧力特徴量をΦk
presと表すとする。この場合、入力ベクトルは{(Φk
visc,1,Φk
pres,1),(Φk
visc,2,Φk
pres,2),…,(Φk
visc,N,Φk
pres,N)}と表され、出力ベクトルは{(rk+1
1,uk+1
1),(rk+1
2,uk+1
2),…,(rk+1
N,uk+1
N)}と表される。第2時点における粒子の位置での圧力を求めてもよく、この場合には、出力ベクトルは{(rk+1
1,uk+1
1,Pk+1
1),(rk+1
2,uk+1
2,Pk+1
2),…,(rk+1
N,uk+1
N,Pk+1
N)}と表される。
【0104】
この機械学習でも、教師データで示される第2時点での値が正解として用いられる。学習部11は出力ベクトルと正解との差(すなわち、誤差)に基づいて機械学習モデル内のパラメータを更新する。
【0105】
ステップS63,S64で示される一連の処理は、計算ステップk(第1時点)での値を示す入力から、計算ステップk+1(第2時点)での値を示す出力を得る処理である。学習部11はこの一連の処理を一つの計算ステップごとに実行してもよいし、すべての計算ステップについて一度に実行してもよい。すべての計算ステップについて一度に実行する場合には、入力ベクトルは{(Φ1
visc,1,Φ1
pres,1,Φ1
visc,2,Φ1
pres,2,…,Φ1
visc,N,Φ1
pres,N),(Φ2
visc,1,Φ2
pres,1,Φ2
visc,2,Φ2
pres,2,…,Φ2
visc,N,Φ2
pres,N),…, (Φk
visc,1,Φk
pres,1,Φk
visc,2,Φk
pres,2,…,Φk
visc,N,Φk
pres,N)}と表される。また、出力ベクトルは{(r2
1,u2
1,r2
2,u2
2,…,r2
N,u2
N),(r3
1,u3
1,r3
2,u3
2,…,r3
N,u3
N),…,(rk+1
1,uk+1
1,rk+1
2,uk+1
2,…,rk+1
N,uk+1
N)}と表される。圧力を含む出力ベクトルも同様に表現できる。
【0106】
学習フェーズでは学習部11は複数の液体モデルのそれぞれの教師データを用いて処理フローS6を実行し得る。任意の個数の液体モデルについて処理フローS6を実行した後に、学習部11は処理された機械学習モデルを学習済みモデルとして取得する。この処理は、学習済みモデルが生成されたことを意味する。処理フローS2と同様に、学習部11はその学習済みモデルを任意の手法で出力する。
【0107】
図9を参照しながら、予測部12により実行される処理フローS7を説明する。予測部12は、ステップS71では予測しようとする液体モデルの計算条件を取得し、ステップS72では該液体モデルの個々の粒子の初期条件(r
0,u
0,P
0)を取得する。液体モデルの取得方法が限定されないのは処理フローS3と同様である。ステップS71,S72はそれぞれステップS11,S12に対応する。
【0108】
ステップS73では、予測部12は個々の粒子について粘性力特徴量および圧力特徴量を求める。ステップS73はステップS63に対応する。
【0109】
ステップS74では、予測部12は、複数の粒子の粘性力特徴量および圧力特徴量を示す入力ベクトルを学習済みモデルに入力することで出力ベクトルを生成する。具体的には、予測部12は、全粒子の粘性力特徴量および圧力特徴量を示す入力ベクトルを学習済みモデルに入力し、第2時点における全粒子の位置および速度を示す出力ベクトルを得る。ステップS74はステップS64に対応する。粒子の特徴量は、該粒子の第1時点における位置および速度に基づいて得られる。したがって、複数の粒子のそれぞれの粘性力特徴量および圧力特徴量を示す入力ベクトルも、複数の粒子のそれぞれの第1時点における位置および速度に基づく。
【0110】
第1時点の初期値は粒子の初期条件に対応する時点であり、その後、第1時点は時間ステップΔtずつ進む。1ループ目では、入力ベクトルは、初期条件に対応する全粒子の位置および速度に基づいて算出された全粒子の粘性力特徴量および圧力特徴量を含んで構成される。2ループ目以降では、入力ベクトルは、前のループで得られた出力ベクトルで示される全粒子の位置および速度に基づいて算出された全粒子の粘性力特徴量および圧力特徴量を含んで構成される。処理フローS6に対応して、出力ベクトルは圧力を含んでもよいし含まなくてもよい。
【0111】
ステップS75では、予測部12は計算を終了する否かを判定する。具体的には、予測部12は予測における所与の最終時刻に到達したか否かを判定する。第2時刻が最終時刻でない場合には(ステップS75においてNO)、処理はステップS76に進む。ステップS76では、予測部12は時間ステップΔtだけ時間を進める。そして、予測部12はその進めた時間を第1時点として、ステップS73,S74の処理を再び実行する。
【0112】
計算を終了すると判定した場合、すなわち所与の最終時刻に到達した場合には、処理はステップS77に進む。ステップS77では、予測部12は予測データを出力する。処理フローS3と同様に、予測データのデータ構造、出力方法、および表現方法はいずれも限定されない。
【0113】
[効果]
以上説明したように、本開示の一側面に係る流体解析システムは少なくとも一つのプロセッサを備える。少なくとも一つのプロセッサは、液体を構成する複数の粒子のそれぞれの第1時点における位置および速度に基づく入力ベクトルを取得し、入力ベクトルを機械学習モデルに入力することで、第1時点から所与の時間ステップが経過した第2時点における、複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成する。
【0114】
本開示の一側面に係る流体解析方法は、少なくとも一つのプロセッサを備える流体解析システムにより実行される。この流体解析方法は、液体を構成する複数の粒子のそれぞれの第1時点における位置および速度に基づく入力ベクトルを取得するステップと、入力ベクトルを機械学習モデルに入力することで、第1時点から所与の時間ステップが経過した第2時点における、複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成するステップとを含む。
【0115】
本開示の一側面に係る流体解析プログラムは、液体を構成する複数の粒子のそれぞれの第1時点における位置および速度に基づく入力ベクトルを取得するステップと、入力ベクトルを機械学習モデルに入力することで、第1時点から所与の時間ステップが経過した第2時点における、複数の粒子のそれぞれの位置および速度を示す出力ベクトルを生成するステップとをコンピュータに実行させる。
【0116】
このような側面においては、液体を構成する個々の粒子の位置および速度が機械学習を用いて計算される。粒子法を用いた予測の少なくとも一部に機械学習を導入することで、その予測を短時間で実行することが可能になる。
【0117】
他の側面に係る流体解析システムでは、少なくとも一つのプロセッサが、複数の粒子のそれぞれの第1時点における位置および速度から得られる、該複数の粒子のそれぞれに作用する力に基づいて、入力ベクトルを設定してもよい。粒子に作用する力に基づいて入力ベクトルを設定することで、第2時点における粒子の位置および速度をより高い精度で予測することができる。
【0118】
他の側面に係る流体解析システムでは力が粘性力および圧力を含んでもよい。粒子に作用する粘性力および圧力に基づいて入力ベクトルを設定することで、第2時点における粒子の位置および速度をより高い精度で予測することができる。
【0119】
他の側面に係る流体解析システムでは、少なくとも一つのプロセッサが、複数の粒子のそれぞれに作用する力の特徴量を示す入力ベクトルを設定し、特徴量が、粘性力に対応する粘性力特徴量と、圧力に対応する圧力特徴量とを含んでもよい。粒子に作用する力の特徴量(粘性力特徴量および圧力特徴量)を示す入力ベクトルを設定することで、第2時点における粒子の位置および速度をより高い精度で予測することができる。
【0120】
他の側面に係る流体解析システムでは、少なくとも一つのプロセッサが、流体が存在するシミュレーション空間を格子状に分割することで複数の部分空間を設定し、複数の粒子のそれぞれについて、該粒子に影響を及ぼす1以上の部分空間のそれぞれに対応する力を示す特徴量を算出し、複数の粒子のそれぞれについて算出された特徴量を示す入力ベクトルを設定してもよい。粒子に影響を与える可能性がある部分空間を設定して、その部分空間が粒子に及ぼす力を示す特徴量を考慮することで、第2時点における粒子の位置および速度をより高い精度で予測することができる。
【0121】
他の側面に係る流体解析システムでは、少なくとも一つのプロセッサが、複数の粒子のそれぞれに作用する力に基づいて、該複数の粒子のそれぞれの第2時点における仮位置を算出し、複数の粒子のそれぞれの仮位置に基づく特徴量を示す入力ベクトルを設定してもよい。第2時点における仮位置に基づく特徴量を示す入力ベクトルを設定することで、第2時点における粒子の位置および速度をより高い精度で予測することができる。
【0122】
他の側面に係る流体解析システムでは、複数の粒子のそれぞれの仮位置に基づく特徴量が、近傍粒子との距離に基づく特徴量と、粒子の仮位置での圧力を得るための連立一次方程式を示す行列またはベクトルに関連する特徴量と、仮位置での粒子密度に関連した特徴量と、仮位置での相対密度に関連した特徴量とを含んでもよい。これらの特徴量を示す入力ベクトルを設定することで、第2時点における粒子の位置および速度をより高い精度で予測することができる。
【0123】
他の側面に係る流体解析システムでは、少なくとも一つのプロセッサが、複数の粒子のそれぞれの第1時点における位置および速度を示す入力ベクトルを設定してもよい。粒子法を用いた予測の全体を機械学習で処理することで、その予測を短時間で実行することが可能になる。
【0124】
他の側面に係る流体解析システムでは、少なくとも一つのプロセッサが、複数の粒子のそれぞれの第1時点における圧力にさらに基づく入力ベクトルを取得してもよい。粒子の位置および速度だけでなく圧力も考慮することで、第2時点における粒子の位置および速度をより高い精度で予測することができる。
【0125】
他の側面に係る流体解析システムでは、少なくとも一つのプロセッサが、複数の粒子のそれぞれの第2時点における圧力をさらに示す出力ベクトルを生成してもよい。粒子の位置および速度だけでなく圧力も出力することで、第2時点における粒子の状態をより詳細に予測することができる。
【0126】
[変形例]
以上、本開示での実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0127】
学習部および予測部の少なくとも一方は並列計算によって処理を実行してもよい。上述したように、少なくとも仮位置での圧力の計算を含む処理(すなわち、並列計算が困難な処理)が機械学習で実行されるので、処理フローS2~S7のそれぞれについて、その全体を並列に処理することが可能である。
【0128】
上述したように、学習済みモデルはコンピュータシステム間で移植可能であり、流体解析システムは、学習フェーズおよび予測フェーズの双方を実行してもよいし、学習フェーズおよび予測フェーズのいずれか一方を実行しなくてもよい。したがって、流体解析システムは学習部11および予測部12のうちのいずれか一方に相当する機能要素を備えなくてもよい。
【0129】
上記実施形態では粒子に作用する力の特徴量として粘性力特徴量および圧力特徴量を示したが、流体解析システムはこれら2種類の特徴量のうちのいずれか一つのみを用いてもよい。あるいは、流体解析システムはこれら2種類の特徴量の少なくとも一つと、別の種類の特徴とを用いてもよい。
【0130】
少なくとも一つのプロセッサにより実行される流体解析方法の処理手順は上記実施形態での例に限定されない。例えば、上述したステップの一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0131】
流体解析システム内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
【符号の説明】
【0132】
10…流体解析システム、110…流体解析プログラム、11…学習部、12…予測部。