(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024086148
(43)【公開日】2024-06-27
(54)【発明の名称】構造解析プログラム、構造解析方法および情報処理装置
(51)【国際特許分類】
G06F 30/23 20200101AFI20240620BHJP
G06F 30/27 20200101ALI20240620BHJP
G06N 3/04 20230101ALI20240620BHJP
G06F 111/10 20200101ALN20240620BHJP
G06F 119/14 20200101ALN20240620BHJP
【FI】
G06F30/23
G06F30/27
G06N3/04 100
G06F111:10
G06F119:14
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022201127
(22)【出願日】2022-12-16
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】ハデルバシュ アミル
【テーマコード(参考)】
5B146
【Fターム(参考)】
5B146DC03
5B146DJ02
5B146DJ07
(57)【要約】
【課題】構造解析シミュレーションの実行時間を短縮する。
【解決手段】情報処理装置10は、メッシュデータの要素14に含まれる節点14a,14b,14cそれぞれの特徴ベクトルを、当該節点の位置と、当該節点における弾性係数と、当該節点にかかる応力とに基づいて生成する。情報処理装置10は、節点14a,14b,14cの特徴ベクトルを、訓練済みの機械学習モデル13に入力することで、節点14a,14b,14cの間で特徴ベクトルの畳み込み演算を行い、畳み込み演算の結果に基づいて、要素14の剛性を示す要素剛性マトリクス16を推定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
メッシュデータの要素に含まれる複数の節点それぞれの特徴ベクトルを、当該節点の位置と、当該節点における弾性係数と、当該節点にかかる応力とに基づいて生成し、
前記複数の節点の前記特徴ベクトルを、訓練済みの機械学習モデルに入力することで、前記複数の節点の間で前記特徴ベクトルの畳み込み演算を行い、前記畳み込み演算の結果に基づいて、前記要素の剛性を示す要素剛性マトリクスを推定する、
処理をコンピュータに実行させる構造解析プログラム。
【請求項2】
前記機械学習モデルは、グラフ畳み込みニューラルネットワークである、
請求項1記載の構造解析プログラム。
【請求項3】
前記推定は、GPU(Graphics Processing Unit)を用いて、複数の要素に対応する複数の要素剛性マトリクスを並列に推定する処理を含む、
請求項1記載の構造解析プログラム。
【請求項4】
前記要素の中で前記複数の節点それぞれが他の全ての節点と隣接していることを示す隣接行列を生成する処理を、前記コンピュータに更に実行させ、
前記畳み込み演算は、前記隣接行列に基づいて行われる、
請求項1記載の構造解析プログラム。
【請求項5】
前記位置の情報は、前記節点の初期位置と、シミュレーション上の1つ前の時間ステップで算出された前記節点の変位量とを含む、
請求項1記載の構造解析プログラム。
【請求項6】
前記特徴ベクトルは、前記位置と前記弾性係数と前記応力とに加えて、前記節点と他の節点との間の補間関数の微分を示す形状微分行列に基づいて生成される、
請求項1記載の構造解析プログラム。
【請求項7】
他の要素に含まれる複数の他の節点それぞれに対して他の特徴ベクトルを生成し、有限要素法シミュレーションを行うことで、前記他の要素に対応する他の要素剛性マトリクスを生成し、前記他の特徴ベクトルと前記他の要素剛性マトリクスとを含む訓練データを用いて前記機械学習モデルを訓練する処理を、前記コンピュータに更に実行させる、
請求項1記載の構造解析プログラム。
【請求項8】
メッシュデータの要素に含まれる複数の節点それぞれの特徴ベクトルを、当該節点の位置と、当該節点における弾性係数と、当該節点にかかる応力とに基づいて生成し、
前記複数の節点の前記特徴ベクトルを、訓練済みの機械学習モデルに入力することで、前記複数の節点の間で前記特徴ベクトルの畳み込み演算を行い、前記畳み込み演算の結果に基づいて、前記要素の剛性を示す要素剛性マトリクスを推定する、
処理をコンピュータが実行する構造解析方法。
【請求項9】
訓練済みの機械学習モデルを記憶する記憶部と、
メッシュデータの要素に含まれる複数の節点それぞれの特徴ベクトルを、当該節点の位置と、当該節点における弾性係数と、当該節点にかかる応力とに基づいて生成し、前記複数の節点の前記特徴ベクトルを前記機械学習モデルに入力することで、前記複数の節点の間で前記特徴ベクトルの畳み込み演算を行い、前記畳み込み演算の結果に基づいて、前記要素の剛性を示す要素剛性マトリクスを推定する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は構造解析プログラム、構造解析方法および情報処理装置に関する。
【背景技術】
【0002】
コンピュータシミュレーションの1つに、構造解析シミュレーションがある。構造解析シミュレーションは、物体が外部から受ける力に応じて、物体内部に生じる応力や物体が変形する際の変位量などの力学的特性をコンピュータ上で算出する。構造解析シミュレーションは、数値解析法の1つである有限要素法を使用することがある。
【0003】
有限要素法は、物体の形状を複数の要素に分割する。各要素は、四面体や六面体などの小領域であり、複数の節点(ノード)と節点間を接続する複数の辺(エッジ)とを含む。有限要素法は、節点または辺に変数を割り当て、それら変数の間の関係を離散的に表現した連立一次方程式を生成する。有限要素法は、生成された連立一次方程式を解くことで、解析的に解くことが難しい方程式の近似解を算出する。
【0004】
構造解析シミュレーションにおける有限要素法は、剛性マトリクスを生成して連立一次方程式を規定することがある。剛性マトリクスは、外部から受ける力に対する物体の変形のしづらさである剛性を表す。構造解析シミュレーションは、シミュレーション目的に応じて、剛性マトリクスの生成と連立一次方程式の求解とを反復的に実行することがある。
【0005】
なお、正規化された有限要素を生成し、その有限要素に対する正解の歪みを算出し、変位量と歪みの関係を示すBマトリクスを形状情報から推定するように深層学習ネットワークを訓練する深層学習システムが提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】米国特許出願公開第2022/0129520号明細書
【発明の概要】
【発明が解決しようとする課題】
【0007】
構造解析シミュレーションは、実行時に特定されるパラメータ値から剛性マトリクスを生成することがある。しかし、構造解析シミュレーションの中で、剛性マトリクスを生成する負荷が相対的に高いことがある。そのため、剛性マトリクスの生成がボトルネックとなって、構造解析シミュレーションの実行時間が長くなることがある。そこで、1つの側面では、本発明は、構造解析シミュレーションの実行時間を短縮することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、コンピュータに以下の処理を実行させる構造解析プログラムが提供される。メッシュデータの要素に含まれる複数の節点それぞれの特徴ベクトルを、当該節点の位置と、当該節点における弾性係数と、当該節点にかかる応力とに基づいて生成する。複数の節点の特徴ベクトルを、訓練済みの機械学習モデルに入力することで、複数の節点の間で特徴ベクトルの畳み込み演算を行い、畳み込み演算の結果に基づいて、要素の剛性を示す要素剛性マトリクスを推定する。
【0009】
また、1つの態様では、コンピュータが実行する構造解析方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0010】
1つの側面では、構造解析シミュレーションの実行時間が短縮される。
【図面の簡単な説明】
【0011】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図3】要素剛性マトリクスの推定の手順例を示す図である。
【
図7】要素剛性マトリクスの正規化例を示す図である。
【
図10】機械学習モデルの構造例を示す図(続き)である。
【
図11】情報処理装置の機能例を示すブロック図である。
【
図12】機械学習の手順例を示すフローチャートである。
【
図13】シミュレーションの手順例を示すフローチャートである。
【
図14】要素剛性マトリクスの推定誤差の例を示すグラフである。
【
図15】要素剛性マトリクス生成の実行時間の例を示すグラフである。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0013】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、訓練済みの機械学習モデルを用いて、構造解析シミュレーションに用いられる剛性マトリクスを生成する。情報処理装置10は、生成された剛性マトリクスを用いて構造解析シミュレーションを行ってもよい。また、情報処理装置10は、訓練データを用いて機械学習モデルを訓練してもよい。情報処理装置10は、コンピュータ、構造解析装置または剛性マトリクス生成装置と呼ばれてもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。
【0014】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。
【0015】
処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0016】
記憶部11は、訓練済みの機械学習モデル13を記憶する。機械学習モデル13は、他の情報処理装置によって訓練されてもよい。機械学習モデル13は、入力された特徴量から推定値を算出する過程で、畳み込み演算を行う。畳み込み演算は、ある特徴量に、その特徴量と隣接関係をもつ他の特徴量の変換値を足し合わせる処理を含む。機械学習モデル13の訓練は、例えば、特徴量の変換に用いられるパラメータ値を決定することを含む。機械学習モデル13は、ニューラルネットワークでもよく、いわゆる畳み込みニューラルネットワークまたはグラフ畳み込みニューラルネットワークでもよい。
【0017】
処理部12は、メッシュデータに含まれる要素14を取得する。要素14は、シミュレーション対象の物体の形状を細分化した小領域であり、二次元領域でもよいし三次元領域でもよい。要素14は、例えば、CAD(Computer Aided Design)ソフトウェアによって生成される。要素14は、例えば、三角形、四角形、四面体または六面体である。
【0018】
要素14は、複数の節点および節点間を接続する複数の辺を含む。これら複数の節点および複数の辺によって、要素14の境界が規定される。節点数および辺数は、要素14のトポロジに依存する。三角形の場合は節点数が3、四角形の場合は節点数が4、四面体の場合は節点数が4、六面体の場合は節点数が8である。例えば、要素14は、節点14a,14b,14c(節点#0,#1,#2)を含む。
【0019】
処理部12は、要素14に含まれる複数の節点それぞれの特徴ベクトルを生成する。例えば、処理部12は、節点14a,14b,14cに対応する特徴ベクトル15a,15b,15cを生成する。このとき、処理部12は、ある節点の特徴ベクトルを、当該節点の位置と、当該節点における弾性係数と、当該節点にかかる応力とに基づいて生成する。処理部12は、他の特徴量を更に用いてもよい。
【0020】
各特徴ベクトルは、位置を示す特徴量と、弾性係数を示す特徴量と、応力を示す特徴量とを含むベクトルであってもよい。節点の位置は、例えば、デカルト座標系の二次元座標または三次元座標によって表現される。節点における弾性係数は、例えば、物体の材質から算出される弾性マトリクスに含まれる係数である。節点にかかる応力は、例えば、三次元または六次元の応力ベクトルに含まれる係数である。節点にかかる応力は、シミュレーション上の1つ前の時間ステップで算出された応力であってもよい。
【0021】
処理部12は、要素14に含まれる複数の節点の特徴ベクトルを、機械学習モデル13に入力する。機械学習モデル13は、複数の節点の間で特徴ベクトルの畳み込み演算を行う。例えば、処理部12は、特徴ベクトル15a,15b,15cを機械学習モデル13に入力することで、特徴ベクトル15a,15b,15cの間で畳み込み演算を行う。
【0022】
このとき、処理部12は、複数の節点の隣接関係を示す隣接行列を生成してもよく、機械学習モデル13に更に隣接行列を入力してもよい。機械学習モデル13は、隣接行列を参照して複数の特徴ベクトルの間で畳み込み演算を行ってもよい。ただし、この隣接行列は、辺の有無を示す通常の隣接行列よりも密な行列であってもよい。例えば、隣接行列は、要素14に含まれる全ての節点が相互に隣接していることを示す。
【0023】
処理部12は、畳み込み演算の結果に基づいて、要素14の剛性を示す要素剛性マトリクス16を推定する。剛性は、外部からの力に対する変位のしづらさを示す。例えば、機械学習モデル13は、要素剛性マトリクス16を推定値として出力する。このとき、処理部12は、有限要素法ソフトウェアの通常の行列生成処理をスキップしてもよい。処理部12は、GPUなどのハードウェアアクセラレータを利用して推定処理を行ってもよい。要素剛性マトリクス16は、例えば、正方行列かつ対称行列である。要素剛性マトリクス16の一辺の長さは、例えば、要素14に含まれる複数の節点の自由度の合計である。
【0024】
処理部12は、他の要素に対応する他の要素剛性マトリクスを推定してもよく、要素剛性マトリクス16と他の要素剛性マトリクスとを並列に推定してもよい。処理部12は、要素14に対応する要素剛性マトリクス16を用いて、複数の要素を含む物体形状全体に対応する全体剛性マトリクスを生成してもよい。例えば、処理部12は、要素剛性マトリクス16の中の2つの独立変数に対応する係数を、全体剛性マトリクスの中の当該2つの独立変数に対応する係数に足し合わせる。
【0025】
処理部12は、要素剛性マトリクス16または全体剛性マトリクスを用いて連立一次方程式を規定してもよく、線形ソルバを用いて連立一次方程式の解を算出してもよい。例えば、処理部12は、Aを全体剛性マトリクスとし、xを変位ベクトルとし、bを力ベクトルとして、変位ベクトルxについてAx=bを解く。処理部12は、算出された変位ベクトルxに基づいて、変位後の各節点の位置を算出してもよい。また、処理部12は、変位と歪みの関係を示す方程式と、歪みと応力の関係を示す方程式とを更に用いて、各節点にかかる応力を算出してもよい。
【0026】
処理部12は、ニュートン・ラフソン法によって、非線形方程式の近似解を算出してもよい。この場合、要素剛性マトリクス16の生成と連立一次方程式の求解とが反復的に行われ得る。また、処理部12は、時間進行法によって、時刻を微小時間ずつ進めながら、各時刻における節点の変位や応力を算出してもよい。この場合、要素剛性マトリクス16の生成と連立一次方程式の求解とが反復的に行われ得る。
【0027】
以上説明したように、第1の実施の形態の情報処理装置10は、メッシュデータの要素14に含まれる節点14a,14b,14cそれぞれの特徴ベクトルを、当該節点の位置と弾性係数と応力とに基づいて生成する。情報処理装置10は、それら特徴ベクトルを機械学習モデル13に入力することで、節点14a,14b,14cの間で特徴ベクトルの畳み込み演算を行い、要素14の剛性を示す要素剛性マトリクス16を推定する。
【0028】
これにより、情報処理装置10は、有限要素ソフトウェアによる通常の行列生成処理と比べて、要素剛性マトリクス16の生成を高速化できる。よって、情報処理装置10は、構造解析シミュレーションの実行時間を短縮できる。また、機械学習モデル13による推定処理は並列化が容易であると共に、並列度を大きくした際のオーバヘッドも比較的小さい。よって、複数の要素に対応する複数の要素剛性マトリクスの生成が高速化される。
【0029】
なお、機械学習モデル13は、グラフ畳み込みニューラルネットワークであってもよい。これにより、機械学習モデル13は、四面体や六面体などの様々なトポロジの要素に対して、要素剛性マトリクスを推定することが可能である。また、情報処理装置10は、GPUを用いて、複数の要素の要素剛性マトリクスを並列に推定してもよい。これにより、複数の要素を含むメッシュデータの行列生成処理が高速化される。
【0030】
また、情報処理装置10は、要素14に含まれる複数の節点それぞれが他の全ての節点と隣接していることを示す隣接行列を生成してもよく、この隣接行列に基づいて畳み込み演算を行ってもよい。これにより、有限要素法ソフトウェアの行列生成処理に利用されているFbar法の結果を精度よく再現でき、要素剛性マトリクス16の精度が向上する。
【0031】
また、節点の位置の情報は、当該節点の初期位置と、シミュレーション上の1つ前の時間ステップで算出された当該節点の変位量とを含んでもよい。また、情報処理装置10は、補間関数の微分を示す形状微分行列を更に用いて特徴ベクトルを生成してもよい。これにより、要素剛性マトリクス16の推定精度が更に向上する。
【0032】
また、情報処理装置10は、有限要素法シミュレーションを実行することで、特徴ベクトルと正解の要素剛性マトリクスとを含む訓練データを生成してもよく、この訓練データを用いて機械学習モデル13を訓練してもよい。これにより、要素剛性マトリクス16を精度よく推定できるような機械学習モデル13が生成される。
【0033】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、構造解析シミュレーションを実行し、外力に応じた物体構造の時間的および空間的変化を解析する。また、情報処理装置100は、要素剛性マトリクスを推定するための機械学習モデルを機械学習によって生成する。情報処理装置100は、Fbar法の行列生成に代えて、訓練済みの機械学習モデルを用いて要素剛性マトリクスを推定する。ただし、機械学習と要素剛性マトリクスの推定とは、異なる情報処理装置によって実行されてもよい。
【0034】
情報処理装置100は、自動車生産、材料開発、災害対策などに利用され得る。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータ、シミュレーション装置、構造解析装置または機械学習装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
【0035】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0036】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
【0037】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0038】
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0039】
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0040】
また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行し得る。GPU104は、複数のコアを含む。GPU104は、数万以上の多数のコアを含むことがある。複数のコアは、異なるデータに対して同一のプログラムを並列に実行し得る。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
【0041】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0042】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0043】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0044】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0045】
次に、構造解析シミュレーションおよび剛性マトリクスについて説明する。情報処理装置100は、有限要素法を用いて構造解析シミュレーションを行う。有限要素法は、物体の形状を、節点および辺を用いて複数の要素に分割する。有限要素法は、偏微分方程式の近似解を求めることで、各要素の位置や応力などの物理量を算出する。
【0046】
第2の実施の形態の構造解析シミュレーションは、時間進行法とニュートン・ラフソン法とを併用する。情報処理装置100は、時間進行法により、離散的な複数の時間ステップそれぞれにおいて、各節点の位置や応力を算出する。また、情報処理装置100は、ニュートン・ラフソン法により、各時間ステップにおいて、非線形問題を線形問題に近似し、線形ソルバを用いて線形問題を解いて近似解を更新する。
【0047】
まず、情報処理装置100は、物体の全体形状を複数の領域に分割し、複数の領域を複数の計算ノードに割り振る。複数の領域の割り振りには、例えば、MPI(Message Passing Interface)が用いられる。これにより、複数の領域の構造解析シミュレーションが並列に行われる。複数の計算ノードは、複数のCPUコアまたは複数のGPUコアでもよいし、複数のCPUまたは複数のGPUでもよいし、複数の情報処理装置でもよい。
【0048】
情報処理装置100は、最初の時間ステップにおいて、複数の要素を含むメッシュデータと、物体の材質を示す材質データと、物体にかかる外力を示す力データとを取得する。情報処理装置100は、非線形問題をAx=bという線形問題に近似する。このとき、情報処理装置100は、全体剛性マトリクスを生成する。全体剛性マトリクスは、例えば、行列Aとして使用される。全体剛性マトリクスは、変位ベクトルと力ベクトルとの間の関係を示す。情報処理装置100は、線形ソルバを用いて連立一次方程式を解き、ベクトルxの解に基づいて、各節点の位置や応力の近似解を更新する。
【0049】
情報処理装置100は、線形問題を修正して連立一次方程式を解くことを繰り返す。同一の時間ステップ内での当該繰り返しは、非線形ループと呼ばれてもよい。情報処理装置100は、近似解が収束したと判定すると、その時間ステップにおける各節点の位置や応力を確定し、次の時間ステップに進む。例えば、情報処理装置100は、最新の近似解と1つ前のイテレーションの近似解との差が閾値未満である場合に、近似解が収束したと判定する。情報処理装置100は、ユーザから指定された最後の時間ステップに到達すると、構造解析シミュレーションを終了する。
【0050】
このため、情報処理装置100は、同一の時間ステップ内で、近似解が収束するまで全体剛性マトリクスを反復的に生成する。また、情報処理装置100は、最初の時間ステップから最後の時間ステップに至るまで、全体剛性マトリクスを反復的に生成する。このように、全体剛性マトリクスの生成は、二重ループの中で行われる。
【0051】
ここで、有限要素法ソフトウェアにおいて、全体剛性マトリクスを生成する方法としてFbar法がある。しかし、全体剛性マトリクスの生成は負荷が高く、有限要素法シミュレーションの実行時間の多くを占めることがある。また、並列度を上げても、計算ノード間の同期などのオーバヘッドが原因で、高速化には限界がある。また、Fbar法のアルゴリズムは、多数の小規模ループを含む、広範囲のメモリ領域にアクセスする、条件分岐が存在するなどの特徴をもつ。このため、Fbar法のアルゴリズムを、そのままGPU104に実行させることは容易でない。
【0052】
そこで、第2の実施の形態の情報処理装置100は、各要素の要素剛性マトリクスを、機械学習モデルを用いて推定する。機械学習モデルは、Fbar法の計算結果を模倣するように訓練される。情報処理装置100は、機械学習モデルによる推定を、GPU104に実行させる。このとき、情報処理装置100は、GPU104に含まれる複数のコアを用いて、複数の要素の要素剛性マトリクスを並列に推定する。
【0053】
図3は、要素剛性マトリクスの推定の手順例を示す図である。
情報処理装置100は、要素31から隣接行列32を生成する。要素31は、8個の節点を含む六面体である。ただし、要素31が、4個の節点を含む四面体であってもよい。
【0054】
隣接行列32は、一辺の長さが8の正方行列である。1つの行は1つの節点に対応し、1つの列は1つの節点に対応する。隣接行列32は、要素31に含まれる8個の節点の間の隣接関係を示す。2つの節点に対応する係数は、例えば、当該2つの節点の間に辺が存在する場合は1であり、それ以外の場合は0である。ただし、後述するように第2の実施の形態では、情報処理装置100は、要素31を、全ての節点が相互に接続された完全グラフとみなして、隣接行列32を生成することがある。
【0055】
また、情報処理装置100は、有限要素法の実行時情報33から特徴行列34を生成する。実行時情報33は、時間進行法やニュートン・ラフソン法のもとで、全体剛性マトリクスの生成時点で得られる各種の情報である。実行時情報33は、最初の時間ステップでユーザから与えられる数値を含んでもよい。また、実行時情報33は、1つ前の時間ステップで算出された数値を含んでもよい。また、実行時情報33は、同一の時間ステップ内での1つ前のイテレーションで算出された数値を含んでもよい。
【0056】
特徴行列34は、8行75列の行列である。1つの行は1つの節点に対応し、1つの特徴ベクトルを表す。よって、特徴行列34は、8個の節点に対応する8個の特徴ベクトルを含む。75次元の特徴ベクトルの内訳については後述する。情報処理装置100は、特徴行列34に対して正規化35を実行する。情報処理装置100は、特徴行列34に含まれる特徴量を次元毎に正規化する。正規化後の特徴量は、-1以上1以下である。
【0057】
情報処理装置100は、隣接行列32と正規化35が行われた特徴行列34とを、機械学習モデル36に入力する。機械学習モデル36は、グラフ畳み込みニューラルネットワークである。機械学習モデル36は、8個の節点の間で特徴ベクトルの畳み込み演算を行うグラフ畳み込み層を含む。グラフ畳み込み層は、ある節点と隣接する他の節点の特徴ベクトルを、パラメータ値を用いて変換し、変換後の特徴ベクトルを当該節点の特徴ベクトルに足し合わせる。パラメータ値は、機械学習を通じて訓練される。グラフ畳み込み層は、隣接行列32に基づいて、節点の間の隣接関係を判断する。ただし、前述のように、隣接行列32が示す隣接関係は、要素31での実際の辺の有無と一致しない可能性がある。
【0058】
機械学習モデル36は、要素剛性マトリクス37を出力する。要素剛性マトリクス37は、要素31の剛性を示す。要素剛性マトリクス37の一辺の長さは、8個の節点における変位の自由度の合計である。要素31に含まれる8個の節点はそれぞれ、x方向、y方向およびz方向の3つの独立変数をもつ。よって、要素剛性マトリクス37は、一辺の長さが24の正方行列である。
【0059】
情報処理装置100は、複数の要素に対応する複数の要素剛性マトリクスを合成して、全体剛性マトリクスを生成する。まず、情報処理装置100は、全体剛性マトリクスに含まれる全ての係数をゼロに初期化する。全体剛性マトリクスは、複数の要素を含むメッシュデータ全体の剛性を表す。全体剛性マトリクスの一辺の長さは、メッシュデータに含まれる複数の節点における変位の自由度の合計である。
【0060】
要素31に対応する要素剛性マトリクス37が生成されると、情報処理装置100は、要素剛性マトリクス37から1つの行および1つの列に対応する係数を読み出す。情報処理装置100は、全体剛性マトリクスの中から、当該1つの行と同じ独立変数を表す行と、当該1つの列と同じ独立変数を表す列とを特定し、特定した行および特定した列に対応する係数に上記の読み出した係数を加算する。情報処理装置100は、全ての要素に対応する全ての要素剛性マトリクスについて、上記の加算処理を行う。
【0061】
図4は、特徴ベクトルの例を示す図である。
情報処理装置100は、75次元の特徴ベクトル41を節点毎に生成する。特徴ベクトル41は、座標ベクトル、変位ベクトル、ELEM1ベクトル、形状微分行列、弾性マトリクスおよび応力ベクトルを合成したベクトルである。なお、
図4に示した特徴ベクトル41に含まれる特徴量の例は、正規化前の特徴量である。
【0062】
座標ベクトルは、シミュレーション開始時点、すなわち、最初の時間ステップの開始時点における節点の初期位置を示す。座標ベクトルは、デカルト座標系の座標であり、x成分、y成分およびz成分を含む。座標ベクトルの次元数は3である。
【0063】
変位ベクトルは、現在の時間ステップの開始時点における節点の初期変位量を示す。現在の時間ステップの初期変位量は、例えば、1つ前の時間ステップの初期変位量に、1つ前の時間ステップで算出された変位量増分を加えた数値である。変位ベクトルは、節点の変位量のx成分、y成分およびz成分を含む。変位ベクトルの次元数は3である。
【0064】
ELEM1ベクトルは、現在の時間ステップの開始時点における節点の位置を示す。ELEM1ベクトルは、座標ベクトルに変位ベクトルを加算することで算出される。ELEM1ベクトルは、デカルト座標系の座標であり、x成分、y成分およびz成分を含む。ELEM1ベクトルの次元数は3である。なお、機械学習モデル36の構造によっては、特徴ベクトル41からELEM1ベクトルが省略されてもよい。
【0065】
形状微分行列は、有限要素法で使用される補間関数の導関数を表す。補間関数は、節点に割り当てられた物量量から、要素内部の任意の点の物理量を推定する関数であり、形状関数と呼ばれることがある。六面体要素では、各節点から見て8個の相手節点が存在する。2つの節点の間の補間関数の微分が、3次元で表現される。よって、形状微分行列は、8行3列の行列である。特徴ベクトル41では、この8行3列の形状微分行列が直列化されることで、24次元のベクトルとして表現される。
【0066】
弾性マトリクスは、節点における弾性係数を含む。弾性マトリクスは、弾性係数マトリクスと呼ばれることがある。弾性マトリクスは、物体の材料属性に基づいて算出される。歪みベクトルや応力ベクトルが6次元であるため、弾性マトリクスは、6行6列の行列である。特徴ベクトル41では、この6行6列の弾性マトリクスが直列化されることで、36次元のベクトルとして表現される。
【0067】
応力ベクトルは、現在の時間ステップの開始時点において節点にかかる初期応力を示す。現在の時間ステップの初期応力は、例えば、1つ前の時間ステップの初期応力に、1つ前の時間ステップで算出された応力増分を加えた数値である。応力ベクトルは、節点の応力のx成分σx、y成分σy、z成分σz、xy成分σxy、yz成分σyzおよびzx成分σzxを含む。応力ベクトルの次元数は6である。
【0068】
図5は、要素剛性マトリクスの例を示す図である。
要素剛性マトリクス42は、機械学習モデル36から出力される行列であり、前述の要素剛性マトリクス37に対応する。要素剛性マトリクス42は、24行24列の正方行列である。要素剛性マトリクス42は、その物理的特性から、i行j列の係数とj行i列の係数が同一となる対称行列である。また、要素剛性マトリクス42は、対角線付近に大きい値が集まり、対角線から離れるほどゼロや小さい値が多くなる疎行列である。情報処理装置100は、複数のGPUコアを用いて複数の要素剛性マトリクスを並列に生成する。
【0069】
図6は、隣接行列の例を示す図である。
情報処理装置100は、要素43から隣接行列44または隣接行列45を生成する。要素43は、前述の要素31に対応する。隣接行列44,45は、前述の隣接行列32に対応する。隣接行列44,45は、8行8列の正方行列である。
【0070】
隣接行列44は、要素43に含まれる8個の節点の間の隣接関係を、辺の有無に基づいて規定した疎行列である。一方の節点に対応する行と他方の節点に対応する列とによって特定される係数は、当該2つの節点を直接に接続する辺が存在すれば1であり、当該2つの節点を直接に接続する辺が存在しなければ0である。要素43が六面体であるため、隣接行列44の1つの行は3つの「1」を含む。ただし、対角線上の係数、すなわち、2つの節点が同一である場合の係数を「1」にしてもよい。
【0071】
一方、隣接行列45は、要素43に含まれる8個の節点が完全グラフを形成すると仮定して生成された密行列である。隣接行列45に含まれる全ての係数は「1」である。隣接行列45によれば、同一の要素に含まれる任意の2つの節点が隣接しているとみなされる。第2の実施の形態では、情報処理装置100は、隣接行列として、隣接行列44のような疎行列に代えて、隣接行列45のような密行列を使用する。
【0072】
情報処理装置100は、同一の要素の中では、同一の辺を共有する2つの節点の間だけでなく、同一の辺を共有しない2つの節点の間でも特徴量を伝播した方が、有限要素法のFbar法を精度よく再現することができる。そのため、隣接行列45のような密行列を使用することで、要素剛性マトリクスの精度が向上し得る。
【0073】
図7は、要素剛性マトリクスの正規化例を示す図である。
情報処理装置100は、機械学習モデルの訓練時、機械学習モデルの入力である特徴行列と、機械学習モデルの出力である要素剛性マトリクスとを正規化する。また、情報処理装置100は、要素剛性マトリクスの推定時、機械学習モデルに入力する特徴行列を正規化し、機械学習モデルが出力する要素剛性マトリクスを元のスケールに戻す。
【0074】
正規化には、例えば、Min-Max法が用いられる。機械学習モデルの訓練時、情報処理装置100は、特徴ベクトルに含まれる75次元それぞれについて、最大値および最小値を特定し、最大値が+1になり最小値が-1になるように変換方法を決定する。情報処理装置100は、75次元それぞれの変換方法を記録しておく。要素剛性マトリクスの推定時、情報処理装置100は、特徴ベクトルに含まれる75次元それぞれについて、記録しておいた変換方法に従って特徴量を正規化する。
【0075】
また、機械学習モデルの訓練時、情報処理装置100は、要素剛性マトリクスに含まれる係数の最大値および最小値を特定し、最大値が+1になり最小値が-1になるように変換方法を決定する。情報処理装置100は、係数の変換方法を記録しておく。要素剛性マトリクスの推定時、情報処理装置100は、機械学習モデルが出力する要素剛性マトリクスに含まれる正規化された係数を、記録しておいた変換方法に従って逆変換する。機械学習モデルの入出力を正規化することで、機械学習モデルの推定精度が向上する。
【0076】
正規化された値は、例えば、以下のように算出される。xを正規化前の値、x’を正規化後の値、maxを最大値、minを最小値とする。x’=-1+2(x-min)/(max-min)と規定することで、正規化後の値域が[-1,+1]になる。
【0077】
グラフ46は、ある要素剛性マトリクスに含まれる係数のうち、係数の値と係数の個数との関係を示す。横軸が正規化前の係数の値を表し、縦軸が個数を表す。グラフ47は、グラフ46と同じ要素剛性マトリクスについて、係数の値と係数の個数との関係を示す。横軸が正規化後の係数の値を表し、縦軸が個数を表す。Min-Max法によって線形変換することで、分布を維持したまま、係数の値域が-1以上+1以下の範囲になる。
【0078】
次に、グラフ畳み込みニューラルネットワークについて説明する。グラフ畳み込みニューラルネットワークは、全結合層とグラフ畳み込み層とを含む。全結合層は、各節点の特徴ベクトルを、他の節点とは独立に変換する。一方、グラフ畳み込み層は、各節点の特徴ベクトルを、隣接行列が示す隣接節点の特徴ベクトルも参照して変換する。
【0079】
全結合層は、例えば、以下のように特徴ベクトルを変換する。xを変換前の特徴行列、yを変換後の特徴行列、Wを重み行列、bをオフセットベクトルとする。特徴行列x,yの1つの行は1つの節点に対応する。全結合層は、y=xW+bという行列計算を行う。重み行列Wとオフセットベクトルbは、全ての節点に共通に使用されるものであり、機械学習を通じてその係数が決定される。重み行列Wのj列目は、特徴ベクトルのj番目の特徴量を変換するために使用される重みベクトルである。
【0080】
グラフ畳み込み層は、例えば、以下のように特徴ベクトルを変換する。Aを隣接行列、zを変換後の特徴行列とする。グラフ畳み込み層は、z=Ay=A(xW+b)という行列計算を行う。よって、グラフ畳み込み層は、全結合層と同様の行列計算を行った後に、追加的な行列計算を行う。特徴行列yのj列目の中の一部または全部の特徴量の線形和によって、特徴ベクトルのj番目の特徴量が算出される。
【0081】
図8は、グラフ畳み込み演算の例を示す図である。
特徴ベクトル51は、着目する節点の特徴ベクトルである。特徴ベクトル52,53は、着目する節点と同一の要素に含まれ、かつ、着目する節点と隣接する節点の特徴ベクトルである。グラフ畳み込み層は、特徴ベクトル51を、特徴ベクトル51に含まれる特徴量を用いて特徴ベクトル54に変換する。同様に、グラフ畳み込み層は、特徴ベクトル52を、特徴ベクトル52に含まれる特徴量を用いて特徴ベクトル55に変換し、特徴ベクトル53を、特徴ベクトル53に含まれる特徴量を用いて特徴ベクトル56に変換する。
【0082】
グラフ畳み込み層は、特徴ベクトル54に特徴ベクトル55,56を加算して、特徴ベクトル57を生成する。特徴ベクトル57は、グラフ畳み込み演算によって特徴ベクトル51から変換された、着目する節点の特徴ベクトルである。なお、前述のように密な隣接行列を使用する場合、各節点について隣接する他の節点は7個存在する。
【0083】
図9は、機械学習モデルの構造例を示す図である。
ここでは、第2の実施の形態で使用する機械学習モデルの一例を説明する。機械学習モデルは、全結合層140,141,142,144,145,146,147およびグラフ畳み込み層143,148を含む。
【0084】
全結合層140は、入力が27次元、出力が50次元の全結合層である。全結合層140は、8個の節点それぞれについて、3次元の座標ベクトルと24次元の形状微分行列を受け付け、50次元のベクトルを出力する。全結合層141は、入力が53次元、出力が50次元の全結合層である。全結合層141は、8個の節点それぞれについて、3次元の変位ベクトルと全結合層140の出力を受け付け、50次元のベクトルを出力する。
【0085】
全結合層142は、入力が27次元、出力が50次元の全結合層である。全結合層142は、8個の節点それぞれについて、24次元の形状微分行列と3次元のELEM1ベクトルを受け付け、50次元のベクトルを出力する。グラフ畳み込み層143は、入力が150次元、出力が50次元のグラフ畳み込み層である。グラフ畳み込み層143は、8個の節点分の全結合層140,141,142の出力を8行150列の行列として受け付け、8個の節点分の50次元のベクトルを8行50列の行列として出力する。
【0086】
全結合層144は、入力が100次元、出力が50次元の全結合層である。全結合層144は、8個の節点それぞれについて、全結合層141とグラフ畳み込み層143の出力とを受け付け、50次元のベクトルを出力する。全結合層145は、入力が100次元、出力が50次元の全結合層である。全結合層145は、8個の節点それぞれについて、全結合層142,144の出力を受け付け、50次元のベクトルを出力する。
【0087】
全結合層146は、入力が103次元、出力が50次元の全結合層である。全結合層146は、8個の節点それぞれについて、3次元の変位ベクトルと全結合層140,144の出力を受け付け、50次元のベクトルを出力する。全結合層147は、入力が100次元、出力が50次元の全結合層である。全結合層147は、8個の節点それぞれについて、全結合層145,146の出力を受け付け、50次元のベクトルを出力する。
【0088】
グラフ畳み込み148は、入力が136次元、出力が72次元のグラフ畳み込み層である。グラフ畳み込み層148は、8個の節点分の36次元の弾性マトリクスと全結合層140,147の出力を8行136列の行列として受け付け、8個の節点分の72次元のベクトルを8行72列の行列として出力する。
【0089】
図10は、機械学習モデルの構造例を示す図(続き)である。
機械学習モデルは、全結合層149,150,151,153,154,155,156,157,158,160およびグラフ畳み込み層152,159を更に含む。
【0090】
全結合層149は、入力が100次元、出力が50次元の全結合層である。全結合層149は、8個の節点それぞれについて、全結合層140,144の出力を受け付け、50次元のベクトルを出力する。全結合層150は、入力が100次元、出力が50次元の全結合層である。全結合層150は、8個の節点それぞれについて、全結合層142,144の出力を受け付け、50次元のベクトルを出力する。
【0091】
全結合層151は、入力が150次元、出力が50次元の全結合層である。全結合層151は、8個の節点それぞれについて、全結合層146,149,150の出力を受け付け、50次元のベクトルを出力する。グラフ畳み込み層152は、入力が106次元、出力が72次元のグラフ畳み込み層である。グラフ畳み込み層152は、8個の節点分の6次元の固定値と全結合層140,151の出力を8行106列の行列として受け付け、8個の節点分の72次元のベクトルを8行72列の行列として出力する。
【0092】
全結合層153は、入力が56次元、出力が50次元の全結合層である。全結合層153は、8個の節点それぞれについて、6次元の応力ベクトルと全結合層146の出力を受け付け、50次元のベクトルを出力する。全結合層154は、入力が150次元、出力が50次元の全結合層である。全結合層154は、8個の節点それぞれについて、全結合層140,144,153の出力を受け付け、50次元のベクトルを出力する。
【0093】
全結合層155は、入力が100次元、出力が50次元の全結合層である。全結合層155は、8個の節点それぞれについて、全結合層150,154の出力を受け付け、50次元のベクトルを出力する。全結合層156は、入力が100次元、出力が50次元の全結合層である。全結合層156は、8個の節点それぞれについて、全結合層144,155の出力を受け付け、50次元のベクトルを出力する。
【0094】
全結合層157は、入力が100次元、出力が50次元の全結合層である。全結合層157は、8個の節点それぞれについて、全結合層142,156の出力を受け付け、50次元のベクトルを出力する。全結合層158は、入力が100次元、出力が50次元の全結合層である。全結合層158は、8個の節点それぞれについて、全結合層153,157の出力を受け付け、50次元のベクトルを出力する。
【0095】
グラフ畳み込み層159は、入力が150次元、出力が72次元のグラフ畳み込み層である。グラフ畳み込み層159は、8個の節点分の全結合層140,155,158の出力を8行150列の行列として受け付け、8個の節点分の72次元のベクトルを8行72列の行列として出力する。
【0096】
全結合層160は、入力が216次元、出力が72次元の全結合層である。全結合層160は、8個の節点分のグラフ畳み込み層148,152,159の出力を8行216列の行列として受け付け、8行72列の行列を出力する。情報処理装置100は、この行列の係数を並べ替えることで、24行24列の要素剛性マトリクスを生成する。
【0097】
次に、機械学習モデルの訓練について説明する。情報処理装置100は、既存の有限要素法ソフトウェアを実行することで、機械学習モデルを訓練するための訓練データを生成する。情報処理装置100は、有限要素法ソフトウェアによる行列生成の直前時点をトラップし、その時点で保持されている実行時情報を抽出する。実行時情報は、行列生成に使用される入力データであってもよい。また、情報処理装置100は、行列生成の直後時点をトラップし、生成された要素剛性マトリクスを抽出する。
【0098】
情報処理装置100は、抽出された実行時情報を8行75列の特徴行列に変換して、説明変数に相当する入力データとして訓練データに挿入する。また、情報処理装置100は、要素から8行8列の隣接行列を生成し、説明変数に相当する入力データとして訓練データに挿入する。また、情報処理装置100は、要素剛性マトリクスを、目的変数に相当する正解ラベルとして訓練データに挿入する。
【0099】
情報処理装置100は、訓練データを用いて、誤差逆伝播法によって機械学習モデルを訓練する。情報処理装置100は、隣接行列と特徴行列を機械学習モデルに入力し、機械学習モデルの出力と正解の要素剛性マトリクスとの間の誤差を算出する。情報処理装置100は、誤差が小さくなるように、機械学習モデルに含まれるパラメータ値を更新する。
【0100】
ここで、1回の要素剛性マトリクスの生成は、1つの分割領域、1つの時間ステップ、1つの非線形イテレーションおよび1つの要素の組み合わせによって特定される。情報処理装置100は、1回の要素剛性マトリクスの生成から、訓練データの1つのサンプルを生成することができる。この組み合わせの総数は膨大であるため、情報処理装置100は、構造解析シミュレーション中に生成される全ての要素剛性マトリクスを抽出しなくてもよい。何れの時点の要素剛性マトリクスを抽出するかは、訓練データの精度に影響を与え、その結果として機械学習モデルの精度に影響を与える。
【0101】
一例として、情報処理装置100は、200万節点を含むメッシュデータに対して、2万時間ステップの三次元有限要素法を実行する。その途中で、情報処理装置100は、ランク0のMPIプロセス、第1時間ステップおよび第2非線形イテレーションにおける、100個の要素の実行時情報および要素剛性マトリクスを抽出する。これにより、100個のサンプルを含む訓練データが生成される。情報処理装置100は、ミニバッチサイズを1として、100イテレーション×250エポックで機械学習モデルを訓練する。
【0102】
次に、情報処理装置100の機能および処理手順について説明する。
図11は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、メッシュデータ記憶部121およびモデル記憶部122を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、情報処理装置100は、領域分割部131、イテレーション制御部132、可視化部133、行列生成部134、線形ソルバ135、行列推定部136、訓練データ生成部137および機械学習部138を有する。これらの処理部は、例えば、CPU101、GPU104およびプログラムを用いて実装される。
【0103】
メッシュデータ記憶部121は、CADソフトウェアを用いて生成されたメッシュデータを記憶する。メッシュデータは、複数の節点および複数の辺を含み、シミュレーション対象の物体の形状から分割された複数の要素を含む。また、メッシュデータ記憶部121は、物体の材質や外部から物体に働く力などの設定情報を記憶する。
【0104】
モデル記憶部122は、訓練済みの機械学習モデルを記憶する。機械学習モデルは、前述のようなグラフ畳み込みニューラルネットワークである。機械学習モデルは、他の情報処理装置によって訓練されてもよい。
【0105】
領域分割部131は、メッシュデータを複数の領域に分割する。領域分割部131は、分割領域1つにつきMPIプロセスを1つ起動し、複数のMPIプロセスを並列に実行させる。領域分割部131は、他の情報処理装置にMPIプロセスを実行させてもよい。
【0106】
イテレーション制御部132は、時間進行法およびニュートン・ラフソン法によるイテレーションを制御する。イテレーション制御部132は、行列生成部134または行列推定部136を呼び出して全体剛性マトリクスを生成させる。イテレーション制御部132は、全体剛性マトリクスを用いて連立一次方程式を規定し、線形ソルバ135を呼び出して連立一次方程式の解を算出させる。イテレーション制御部132は、連立一次方程式の解を用いて、変位ベクトルや応力ベクトルなど、非線形問題の近似解を更新する。
【0107】
イテレーション制御部132は、近似解が収束したか判定する。近似解が収束していない場合、イテレーション制御部132は、近似解を更新するための次の線形問題を規定する。近似解が収束した場合、イテレーション制御部132は、次の時間ステップに進む。
【0108】
可視化部133は、イテレーション制御部132によって算出された複数の時間ステップの近似解を可視化する。例えば、可視化部133は、三次元物体の形状や応力の時間変化を可視化した画像を生成し、生成された画像を表示装置111に表示する。また、可視化部133は、シミュレーション結果をHDD103などの不揮発性ストレージに保存してもよいし、他の情報処理装置に送信してもよい。
【0109】
行列生成部134は、イテレーション制御部132からの要求に応じて、Fbar法によって全体剛性マトリクスを生成する。行列生成部134は、要素毎に要素剛性マトリクスを生成し、複数の要素の要素剛性マトリクスを合成して全体剛性マトリクスを生成する。行列生成部134は、CPU101を用いて要素剛性マトリクスを生成する。
【0110】
線形ソルバ135は、イテレーション制御部132からの要求に応じて、連立一次方程式の解を算出する。例えば、線形ソルバ135は、共役勾配法(CG:Conjugate Gradient)などの反復法により、大規模連立一次方程式の解を算出する。
【0111】
行列推定部136は、イテレーション制御部132からの要求に応じて、全体剛性マトリクスを推定する。行列推定部136は、行列生成部134の代わりに使用される。行列推定部136は、要素毎に、実行時情報から特徴行列を生成して正規化する。行列推定部136は、正規化された特徴行列を、モデル記憶部122に記憶された機械学習モデルに入力することで、正規化された要素剛性マトリクスを推定する。行列推定部136は、正規化された要素剛性マトリクスを元のスケールに戻し、複数の要素の要素剛性マトリクスを合成して全体剛性マトリクスを生成する。
【0112】
行列推定部136は、GPU104を用いて要素剛性マトリクスを推定する。行列推定部136は、複数の要素に対応する複数の特徴行列を生成し、一度に複数の特徴行列をGPU104に転送することで、GPU104に複数の要素剛性マトリクスを並列に推定させる。並列処理される要素の個数を示すバッチサイズは、GPU104のコア数に依存する。バッチサイズは、ユーザから指定されてもよい。
【0113】
訓練データ生成部137は、行列生成部134から実行時情報および要素剛性マトリクスを抽出する。訓練データ生成部137は、実行時情報を特徴行列に変換して正規化し、要素剛性マトリクスを正規化する。また、訓練データ生成部137は、要素から隣接行列を生成する。訓練データ生成部137は、隣接行列と正規化された特徴行列と正規化された要素剛性マトリクスとを含むサンプルを訓練データに挿入する。これにより、訓練データ生成部137は、複数のサンプルを含む訓練データを生成する。
【0114】
機械学習部138は、訓練データ生成部137によって生成された訓練データを用いて機械学習モデルを訓練し、訓練済みの機械学習モデルをモデル記憶部122に保存する。ただし、機械学習部138は、訓練された機械学習モデルを表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0115】
機械学習部138は、誤差逆伝播法によって機械学習モデルを訓練する。機械学習部138は、サンプルに含まれる隣接行列と正規化された特徴行列とを機械学習モデルに入力し、機械学習モデルの出力とサンプルに含まれる正規化された要素剛性マトリクスとの間の誤差を算出する。機械学習部138は、末尾の層から先頭の層に向かって順に、各層がもつパラメータ値の誤差勾配を算出し、誤差勾配を用いてパラメータ値を更新する。機械学習部138は、誤差の算出とパラメータ値の更新とを繰り返す。
【0116】
図12は、機械学習の手順例を示すフローチャートである。
(S10)領域分割部131は、メッシュデータを複数の領域に分割する。以下のステップS11~S19は、複数の領域に対して並列に実行され得る。
【0117】
(S11)行列生成部134は、分割領域に含まれる要素のうち要素剛性マトリクスが未生成である1つの要素を選択する。訓練データ生成部137は、要素剛性マトリクスの生成に使用される入力データを行列生成部134から抽出する。ただし、訓練データ生成部137は、特定のイテレーションでのみ入力データを抽出してもよい。
【0118】
(S12)行列生成部134は、Fbar法によって要素剛性マトリクスを生成する。訓練データ生成部137は、生成された要素剛性マトリクスを行列生成部134から抽出する。ただし、訓練データ生成部137は、特定のイテレーションでのみ要素剛性マトリクスを抽出してもよい。
【0119】
(S13)行列生成部134は、ステップS12で生成された要素剛性マトリクスを、分割領域に対応する全体剛性マトリクスに合成する。
(S14)行列生成部134は、分割領域に含まれる全ての要素を処理したか判断する。全ての要素を処理した場合、ステップS15に処理が進む。未処理の要素がある場合、ステップS11に処理が戻り、未処理の要素が1つ選択される。
【0120】
(S15)イテレーション制御部132は、全体剛性マトリクスを用いて連立一次方程式を規定する。線形ソルバ135は、連立一次方程式を解く。
(S16)イテレーション制御部132は、ステップS15で算出された連立一次方程式の解に基づいて、ニュートン・ラフソン法により非線形方程式の近似解を更新する。
【0121】
(S17)イテレーション制御部132は、非線形方程式の近似解が収束したか判断する。近似解が収束した場合、ステップS18に処理が進む。近似解が収束していない場合、ステップS11に処理が戻り、ステップS11~S16が再度実行される。
【0122】
(S18)イテレーション制御部132は、最後の時間ステップに到達したか判断する。現在の時間ステップが最後の時間ステップである場合、ステップS20に処理が進む。現在の時間ステップが最後の時間ステップでない場合、ステップS19に処理が進む。
【0123】
(S19)イテレーション制御部132は、現在の時間ステップの変位ベクトルや応力ベクトルを確定し、時間ステップを1つ進める。そして、ステップS11に処理が戻り、次の時間ステップについてステップS11~S17が実行される。
【0124】
(S20)訓練データ生成部137は、ステップS11で抽出された入力データから特徴行列を生成して正規化する。また、訓練データ生成部137は、ステップS12で抽出された要素剛性マトリクスを正規化する。訓練データ生成部137は、正規化された特徴行列と正規化された要素剛性マトリクスとを対応付けて訓練データを生成する。
【0125】
(S21)機械学習部138は、ステップS20で生成された訓練データを用いて、機械学習モデルを訓練する。機械学習部138は、訓練された機械学習モデルを保存する。
図13は、シミュレーションの手順例を示すフローチャートである。
【0126】
(S30)領域分割部131は、メッシュデータを複数の領域に分割する。以下のステップS31~S41は、複数の領域に対して並列に実行され得る。
(S31)行列推定部136は、分割領域に含まれる要素のうち特徴行列が未生成である1つの要素を選択する。行列推定部136は、要素の形状に応じた隣接行列を生成する。例えば、行列推定部136は、六面体要素から、全ての係数が「1」である8行8列の密行列を隣接行列として生成する。
【0127】
(S32)行列推定部136は、実行時情報から特徴行列を生成して正規化する。
(S33)行列推定部136は、隣接行列および特徴行列がGPU104に未転送である要素の数が、バッチサイズに達したか判断する。要素数がバッチサイズに達した場合、ステップS34に処理が進む。要素数がバッチサイズに達していない場合、ステップS31に処理が戻り、次の1つの要素が選択される。
【0128】
(S34)行列推定部136は、バッチサイズに相当する個数の要素の隣接行列と特徴行列をGPU104に転送する。行列推定部136は、訓練済みの機械学習モデルを用いて、それら複数の要素の要素剛性マトリクスをGPU104に並列に推定させる。
【0129】
(S35)行列推定部136は、GPU104から、バッチサイズに相当する個数の要素の要素剛性マトリクスを読み出す。行列推定部136は、それら複数の要素の要素剛性マトリクスを、分割領域に対応する全体剛性マトリクスに合成する。
【0130】
(S36)行列推定部136は、分割領域に含まれる全ての要素を処理したか判断する。全ての要素を処理した場合、ステップS37に処理が進む。未処理の要素がある場合、ステップS31に処理が戻り、ステップS31~S35が再度実行される。
【0131】
(S37)イテレーション制御部132は、全体剛性マトリクスを用いて連立一次方程式を規定する。線形ソルバ135は、連立一次方程式を解く。
(S38)イテレーション制御部132は、ステップS37で算出された連立一次方程式の解に基づいて、ニュートン・ラフソン法により非線形方程式の近似解を更新する。
【0132】
(S39)イテレーション制御部132は、非線形方程式の近似解が収束したか判断する。近似解が収束した場合、ステップS40に処理が進む。近似解が収束していない場合、ステップS31に処理が戻り、ステップS31~S38が再度実行される。
【0133】
(S40)イテレーション制御部132は、最後の時間ステップに到達したか判断する。現在の時間ステップが最後の時間ステップである場合、シミュレーションが終了する。現在の時間ステップが最後の時間ステップでない場合、ステップS41に処理が進む。
【0134】
(S41)イテレーション制御部132は、現在の時間ステップの変位ベクトルや応力ベクトルを確定し、時間ステップを1つ進める。そして、ステップS31に処理が戻り、次の時間ステップについてステップS31~S39が実行される。
【0135】
図14は、要素剛性マトリクスの推定誤差の例を示すグラフである。
グラフ61は、推定された要素剛性マトリクスについて、誤差と係数の個数との関係を示す。横軸は0以上1以下の誤差比率を表し、縦軸は要素剛性マトリクスに含まれる係数のうち特定の推定誤差をもつ係数の個数を表す。ある要素剛性マトリクスについて、最大誤差は0.0025(0.25%)であり、平均誤差は0.00058(0.058%)である。よって、機械学習モデルは、高い精度で要素剛性マトリクスを推定できる。なお、ここでは隣接行列として密行列が使用されている。
【0136】
図15は、要素剛性マトリクス生成の実行時間の例を示すグラフである。
グラフ62は、要素数と要素剛性マトリクス生成の実行時間との関係を示す。横軸は要素数を表し、縦軸は特定の要素数の要素剛性マトリクスを生成するためにかかる実行時間を表す。グラフ62は、要素数として、1個、1000個、2000個、3000個、4000個、5000個、10000個および20000個を挙げている。同じ要素数についての2つのバーのうち、左側のバーはFbar法の実行時間を表し、右側のバーは機械学習モデルによる推定の実行時間を表す。
【0137】
Fbar法の実行時間は、CPU101が特定の要素数の要素剛性マトリクスを逐次的に生成するためにかかる実行時間である。機械学習モデルによる推定の実行時間は、GPU104が特定の要素数の要素剛性マトリクスを並列に推定するためにかかる実行時間である。この場合、特定の要素数は、前述のバッチサイズに相当する。
【0138】
CPU101とGPU104との間に通信のオーバヘッドが存在し、また、GPUコア単体の演算性能はCPUコアよりも低いことが多い。そのため、バッチサイズが大きいほど推定の高速化効果が大きい。グラフ62の例では、要素数が20000個の場合、実行時間が2.44秒から1.12秒に短縮しており、実行速度が2.18倍になっている。ただし、バッチサイズの上限は、GPU104のコア数などのハードウェア仕様に依存する。一例として、バッチサイズは、10000個~60000個程度が好ましい。
【0139】
なお、第2の実施の形態の行列推定は、熱伝導、流体動力学、物質移行、電磁ポテンシャルなどの各種の科学技術計算や各種のコンピュータシミュレーションに応用することが可能である。また、Fbar法は、行列式が負になるような歪んだ要素の要素剛性マトリクスを生成することが困難であるのに対し、機械学習モデルは、そのような歪んだ要素の要素剛性マトリクスも推定することが可能である。
【0140】
以上説明したように、第2の実施の形態の情報処理装置100は、有限要素法による構造解析シミュレーションで使用される要素剛性マトリクスを、グラフ畳み込みニューラルネットワークを用いて推定する。これにより、情報処理装置100は、Fbar法で要素剛性マトリクスを生成する場合と比べて、要素剛性マトリクスを生成する負荷を軽減でき、構造解析シミュレーションの実行時間を短縮できる。
【0141】
また、情報処理装置100は、機械学習モデルによる推定をGPU104に実行させることができ、多数のGPUコアを用いて多数の要素の要素剛性マトリクスを並列に推定することができる。よって、構造解析シミュレーションが高速化される。
【0142】
また、機械学習モデルがグラフ畳み込みニューラルネットワークであるため、情報処理装置100は、隣接行列を変更することで、四面体や六面体などの様々なトポロジの要素を、同一の機械学習モデルを用いて処理することができる。また、情報処理装置100は、同一の要素に含まれる複数の節点が完全グラフのように相互に隣接しているとみなして、密行列である隣接行列を生成し、グラフ畳み込み演算に使用する。これにより、機械学習モデルがFbar法の計算を模倣して、要素剛性マトリクスを高精度に推定できる。
【0143】
また、情報処理装置100は、座標ベクトル、変位ベクトル、ELEM1ベクトル、形状微分行列、弾性マトリクスおよび応力ベクトルを含む特徴ベクトルから、要素剛性マトリクスを推定する。これにより、機械学習モデルがFbar法の計算を模倣して、要素剛性マトリクスを高精度に推定することができる。
【符号の説明】
【0144】
10 情報処理装置
11 記憶部
12 処理部
13 機械学習モデル
14 要素
14a,14b,14c 節点
15a,15b,15c 特徴ベクトル
16 要素剛性マトリクス