(57)【特許請求の範囲】
【請求項１】
物理的システムを構築するプロセッサ実行方法であって：
物理的システムに関連した特性データを受け取るステップ；
該特性データに基づいて該物理的システムのモデルを構築するステップ；
該モデルを使用して該物理的システムの非線形過渡シミュレーションを行うステップであって、該シミュレーションが、複数の時間間隔に亘って行われ、該ステップが：
該複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ；
時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ；及び
該時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップ、を含む、該ステップ、
該シミュレーションの結果に基づいて物理的特性を決定するステップ、を含み、
該物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する、前記方法。
【請求項２】
前記物理的システムが、周期的システムであるか又は非周期的システムであるかを決定するステップをさらに含み、該物理的システムが周期的システムである場合に第1のモデルが構築され、該物理的システムが非周期的システムである場合に第2のモデルが構築される、請求項1記載の方法。
【請求項３】
前記決定するステップが、コンピュータシステムによって自動的に行われる、請求項2記載の方法。
【請求項４】
前記物理的システムが周期的システムである場合は、前記モデルが：
【数１】
0006803173.tif 000030
に従って構築され、
式中、Ki及びMiは、ヤコビ行列であり、Δxiは、非線形反復の増分であり、かつbiは、非線形反復の残差である、請求項1記載の方法。
【請求項５】
Mn行列の階数を閾値と比較するステップをさらに含み；
該Mn行列の階数が、該閾値未満である場合は、直接ソルバーを使用して前記モデルの時間間隔を解き；
該Mn行列の階数が、該閾値以上である場合は、反復ソルバーを使用して該モデルの時間間隔を解く、請求項4記載の方法。
【請求項６】
前記反復ソルバーが、収束基準が満たされるまで前記モデルの時間間隔を処理するループを含む、請求項5記載の方法。
【請求項７】
並列で解くための前記モデルの時間間隔の分割の前に、前処理行列を用いてA行列を調整するステップをさらに含む、請求項6記載の方法。
【請求項８】
元のシステム行列のMnブロックの階数が閾値未満である場合は、該Mnブロックを0に設定し、残りの下ブロック三角行列を、直接ソルバーによって並列にLU分解し、該元の行列の解がウッドベリー式によって得られる、請求項5記載の方法。
【請求項９】
前記物理的システムが非周期的システムである場合は、前記モデルが：
【数２】
0006803173.tif 000031
に従って構築され、
式中、Ki及びMiは、ヤコビ行列であり、Δxiは、非線形反復の増分であり、かつbiは、非線形反復の残差である、請求項1記載の方法。
【請求項１０】
ブロック直接ソルバーを使用して、前記モデルの時間間隔を解く、請求項9記載の方法。
【請求項１１】
前記ブロック直接ソルバーが、複数のA行列のブロックのそれぞれに対してLU分解を行い、続いて複数のブロックの前進代入演算を行う、請求項10記載の方法。
【請求項１２】
前記時間間隔の群が並列に解かれたら、収束チェックを行い；
収束が達成されていない場合は、各群に関連したヤコビ行列を、並列に更新して再び解き；
収束が達成されている場合は、後処理を行って前記物理的特性を決定する、請求項1記載の方法。
【請求項１３】
前記群を、ニュートン・ラフソン法を使用して調整する、請求項12記載の方法。
【請求項１４】
前記モデルに関連したデータの第1の部分を、どの特定の群の時間間隔が第1の解ユニットに割り当てられたかに基づいて該第1の解ユニットに送信し、該モデルに関連したデータの第2の異なる部分を、どの特定の群の時間間隔が第2の解ユニットに割り当てられたかに基づいて該第2の解ユニットに送信する、請求項1記載の方法。
【請求項１５】
各解ユニットが、別個のデータ処理ユニットである、請求項1記載の方法。
【請求項１６】
前記シミュレーションが、入力に対する前記物理的システムの物理的反応を解析する、請求項1記載の方法。
【請求項１７】
前記物理的反応が、媒体中の波動伝播、熱伝導、又は電気機械装置の過渡挙動である、請求項16記載の方法。
【請求項１８】
物理的システムを構築するためのコンピュータ実行システムであって：
1つ以上のデータプロセッサ；
複数のステップを実行するために1つ以上のデータプロセッサに指令するための命令で符号化されたコンピュータ可読媒体であって、該複数のステップが：
物理的システムに関連した特性データを受け取るステップ；
該特性データに基づいて該物理的システムのモデルを構築するステップ；
該モデルを使用して該物理的システムの非線形過渡シミュレーションを行うステップであって、該シミュレーションが、複数の時間間隔に亘って行われ、該ステップが：
該複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ；
時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ；及び
該時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップ、を含む、該ステップ、
該シミュレーションの結果に基づいて物理的特性を決定するステップを含む、該コンピュータ可読媒体を含み、
該物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する、前記システム。
【請求項１９】
前記複数のステップが：
前記物理的システムが、周期的システムであるか又は非周期的システムであるかを決定するステップをさらに含み、該物理的システムが周期的システムである場合に第1のモデルが構築され、該物理的システムが非周期的システムである場合に第2のモデルが構築される、請求項18記載のシステム。
【請求項２０】
前記物理的システムが周期的システムである場合は、前記モデルが：
【数３】
0006803173.tif 000032
に従って構築され、
式中、Ki及びMiは、ヤコビ行列であり、Δxiは、非線形反復の増分であり、かつbiは、非線形反復の残差である、請求項18記載のシステム。
【請求項２１】
前記複数のステップが：
M行列の階数を閾値と比較するステップをさらに含み；
該M行列の階数が、該閾値未満である場合は、直接ソルバーを使用して前記モデルの時間間隔を解き；
該M行列の階数が、該閾値以上である場合は、反復ソルバーを使用して該モデルの時間間隔を解く、請求項20記載のシステム。
【請求項２２】
物理的システムを構築するための方法のステップを実行するために1つ以上のデータプロセッサに指令するための命令で符号化されたコンピュータ可読媒体であって、該方法が：
物理的システムに関連した特性データを受け取るステップ；
該特性データに基づいて該物理的システムのモデルを構築するステップ；
該モデルを使用して該物理的システムの非線形過渡シミュレーションを行うステップであって、該シミュレーションが、複数の時間間隔に亘って行われ、該ステップが：
該複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ；
時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ；及び
該時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップ、を含む、該ステップ、
該シミュレーションの結果に基づいて物理的特性を決定するステップ、を含み、
該物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する、前記コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、参照によりその全てが本明細書に組み入れられる2015年8月24日出願の米国仮特許出願第62/209,155号の優先権を主張する。
【背景技術】
【０００２】
（背景）
物理的システムの挙動を再現するために計算モデルを使用するコンピュータシミュレーションは、技術解析及び設計の広い分野で不可欠になってきている。コンピュータシミュレーションの1つの重要な部分は、物理方程式（例えば、物理的システムの物理的特性に関連した特性データから導かれた方程式）を数値的に解くことである。これらの物理方程式（多くの場合、動的方程式と呼ばれる）は、一般に、空間微分項及び時間微分項の両方から構成され、空間及び時間で異なる物理量を記述する。それらの動的方程式を数値的に、即ち、周波数ドメイン及び時間ドメインにおいて解析するための2つの典型的な方法が存在する。周波数ドメインにおいて、物理量は、時間に関してではなく、フーリエ変換によって周波数に関して表現することができる。通常は、周波数ドメインシミュレーションは、線形物理的システムに対して非常に効率的な方法であるが、非線形物理的システムに対しては経済的ではなく、又は精度に欠ける。従って、時間ドメインシミュレーション（過渡シミュレーションとも呼ばれる）は、多くの場合、非線形物理的システムに採用される。
【発明の概要】
【課題を解決するための手段】
【０００３】
（概要）
物理的システムを構築するためのシステム及び方法が提供される。物理的システムに関連した特性データを受け取る。物理的システムのモデルを、特性データに基づいて構築する。このモデルを用いて物理的システムの非線形過渡シミュレーションを行い、このシミュレーションは、複数の時間間隔に亘って行う。このシミュレーションは、複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ、時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ、及び時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップを含む。物理的特性を、シミュレーションの結果に基づいて決定し、物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する。
【０００４】
別の例として、物理的システムを構築するためのコンピュータ実行システムは、1つ以上のデータプロセッサ、及び方法のステップを実行するために1つ以上のデータプロセッサに指令するための命令で符号化されたコンピュータ可読媒体を含む。この方法では、物理的システムに関連した特性データを受け取る。物理的システムのモデルを、特性データに基づいて構築する。このモデルを用いて物理的システムの非線形過渡シミュレーションを行い、このシミュレーションは、複数の時間間隔に亘って行う。このシミュレーションは、複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ、時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ、及び時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップを含む。物理的特性を、シミュレーションの結果に基づいて決定し、物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する。
【０００５】
さらなる例として、コンピュータ可読媒体を、物理的システムを構築するための方法のステップを実行するために1つ以上のデータプロセッサに指令するための命令で符号化する。この方法では、物理的システムに関連した特性データを受け取る。物理的システムのモデルを、特性データに基づいて構築する。このモデルを用いて物理的システムの非線形過渡シミュレーションを行い、このシミュレーションは、複数の時間間隔に亘って行う。このシミュレーションは、複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ、時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ、及び時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップを含む。物理的特性を、シミュレーションの結果に基づいて決定し、物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する。
【図面の簡単な説明】
【０００６】
（図面の簡単な説明）
【図１】図1は、時間ドメイン分解シミュレーションエンジンを示す線図である。
【０００７】
【図２】図2は、時間ドメイン分解エンジンの動作の例を示す線図である。
【０００８】
【図３】図3は、一般過渡TDMモデルと共に使用されるプロセスを示す線図である。
【０００９】
【図４】図4は、直接ブロック三角行列ソルバーを示す線図である。
【００１０】
【図５】図5は、周期的TDMモデル用の直接ソルバーを示す流れ図である。
【００１１】
【図６】図6は、2つのサブドメインの重複を示す線図である。
【００１２】
【図７】図7は、周期的TDMモデル用の反復ソルバーの例を示す線図である。
【００１３】
【図８】図8は、非線形物理的システムの過渡シミュレーションのための時間ドメイン分解法を示す線図である。
【００１４】
【図９】図9は、TDMの実行のアーキテクチャを示す線図であり、該アーキテクチャは、高位でのMPI（メッセージ・パッシング・インターフェイス）に基づいた分散メモリ型並列化及び低位でのマルチスレッドに基づいた共有メモリ型並列化の2つのレベルの並列化から構成されている。
【００１５】
【図１０】図10A、図10B、及び図10Cは、コンピュータ実行時間ドメイン分解ソルバーエンジンを実行するための本明細書に記載のアプローチを実施するためのシステムの例を示している。
【発明を実施するための形態】
【００１６】
（詳細な説明）
過渡シミュレーションは、一実施態様では、物理方程式の空間離散化及び時間離散化を含む。空間離散化を行うためのいくつかのアプローチ（例えば、有限差分法、有限要素法、及び有限体積法）が存在する。有限要素法（FEM）は、不規則格子を使用して、複雑な不均質で異方性の材料をモデル化して複雑なジオメトリを表現することができるため、工学の実務で幅広く使用されている。FEM離散化は、一連の行列微分方程式を作成する。時間離散化は、後退オイラー法、クランク・ニコルソン法、及びθ法（theata-method）を含み得る。非線形のため、行列は、一般に解ベクトルに依存し、従って、反復法、例えば、ニュートン・ラフソン法を使用して、これらの非線形行列方程式を解くことができる。即ち、非線形行列方程式は、それぞれの非線形反復に対して線形化される。線形化行列方程式は、直接行列ソルバー又は反復行列ソルバーのいずれかによって解くことができる。過渡シミュレーションは、ＮｔＮｅ個の行列を解く必要があるため通常は時間がかかり、Ｎｔは、時間ステップの数であり、Ｎｅは、非線形反復の平均数である。
【００１７】
アルゴリズム（又は方法）を並列化することができるとすると、並列計算が、過渡問題のシミュレーション時間を短縮することができる。例えば、並列計算は、各時間ステップにおいて行列を解くことに適用することができる。これは、パフォーマンスを向上させることができるが、スケーリングが、様々な因子、例えば、コア間の通信によって限定されるために、全ての並列コアを完全に使用することが常に可能なわけではない。良好な並列スケーラビリティーを達成するために、システム及び方法は、時間軸に沿ったドメイン分解（TDM）を利用して、過渡問題を時間ステップごとに解く代わりに、全ての時間ステップ（又は全ての時間ステップの細分）を同時に解くことができる。実際の適用例では、システム及び方法は、2つのTDMモデルを利用することができ：1つは、全ての時間ステップを同時に解くことに基づいた周期的定常状態シミュレーション用の周期的TDMモデルであり；もう1つは、全ての時間ステップの細分を同時に解くことに基づいた一般過渡適用例用の一般TDMモデルである。両方のTDMモデルの離散化により、ブロック行列の形になる。ブロック行列の構造は、一部の例では、特定のアルゴリズムの助けを借りて並列計算を十分に活用することができる。これは、これらのブロック行列を解くための専用の直接ソルバー及び前処理付き反復ソルバーの両方を提案することによって高い並列計算効率を達成することができる。
【００１８】
図1は、時間ドメイン分解法（TDM）シミュレーションエンジンを示す線図である。シミュレーションエンジン100は、物理的システム104に関連した特性データ102を受け取る。シミュレーションエンジン100は、特性データに基づいて物理的システムのモデルを構築する。シミュレーションエンジン100は、このモデルを用いて物理的システムの非線形過渡シミュレーションを行い、このシミュレーションは、複数の時間間隔に亘って行う。シミュレーションは、複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割することを含む。時間間隔の各群に関連したデータは、異なる解ユニットに送信され、該解ユニットにおいて、時間間隔の群のそれぞれが、異なる解ユニットを用いて並列に解かれる。物理的特性は、シミュレーション結果としてエンジン100から出力され、該エンジン100において、物理的システムは、シミュレーションにより決定された物理的特性に基づいて構築又は修正される。
【００１９】
図2は、時間ドメイン分解エンジンの動作の例を示す線図である。エンジン200は、物理的システム204に関連した特性データ202を受け取る。物理的システム204に関連したタイプ又は該物理的システム204に与えられる励起のタイプの両方に基づいて（例えば、エンジン200による検出又は手動選択に基づいて）、特定のタイプの時間ドメイン分解モデルが選択される。例えば、システム204又は励起が周期的挙動になる可能性が高い場合は、周期的TDMモデル206が選択され、非周期的システム／励起は、非周期的モデル208を利用する（例えば、物理的システム204に周期的な励起が与えられ、かつシステムの応答が同じ期間を有すると予想される場合は、周期的TDMモデル206が選択される）。周期的TDMモデル206が使用される場合は、直接周期的モデルソルバー210又は反復周期的モデルソルバー212のいずれかが、時間間隔の群のそれぞれを解くために使用される。非周期的TDMモデル208が使用される場合は、直接ブロック三角行列ソルバー214を、解くために利用することができる。ソルバー210、212、214の1つからの結果が、シミュレーション結果を解釈して物理的システム204の物理的特性を決定する後処理モジュール216に送られ、該物理的特性は、該物理的システム204の構築又は修正に使用するために218で出力される。
【００２０】
過渡シミュレーションは、複合媒体での波動伝播、熱伝導、及び電気機械装置の遷移挙動などを含む様々な工学的な適用を有する。動的方程式の空間離散化は、以下のような半離散型を生成する。
【数１】
0006803173.tif 000002
【００２１】
上式において、S(x,t)及びT(x,t)は、行列であり、f(x,t)及びw(x,t)は、励起ベクトルであり、そしてx(t)は、一部の物理量、例えば、磁場、弾性変位などを表す解ベクトルである。S(x,t)及びT(x,t)は、x(t)に依存してシステムの非線形性を反映することに留意されたい。物理的システムによっては、上の行列又は励起ベクトルの全てがx(t)に依存するわけではない。例えば、一例では、行列S(x,t)のみが、A-φ定式化に基づいた電気機械の過渡有限要素解析においてx(t)に依存する。方程式を解く従来の方法は、ＮｔＮｅ個の行列を解く必要があるため時間がかかり、Ｎｔは、時間ステップの数であり、Ｎｅは、非線形反復の平均数である。高性能計算能力を十分に活用するために、本明細書に記載の特定のシステム及び方法は、2つのタイプのTDMモデルを導入し：1つは、過渡周期的定常状態シミュレーション用の周期的TDMモデルであり；もう1つは、一般過渡適用例用の一般TDMモデルである。
【００２２】
（周期的TDMモデル）
周期的モデルを使用して、時間周期的入力を用いてシステムの定常状態挙動をシミュレーションする。このモデルでは、初期条件を必要としないこともあり得、実際に、既知のアプリオリでなくても良く、解ベクトル及び励起ベクトルが周期的条件を満たす。即ち、
x(t)=x(t+T),f(t)=f(t+T),w(t)=w(t+T)    (2)
は、システムの期間Tで固定する。半離散型（1）は、後退オイラー法、を適用することによってさらに離散化することができる。
【数２】
0006803173.tif 000003
ここで、下付き文字iは、時点tiにおける量の値を表し、例えば、xi=x(ti)である。
【００２３】
簡単にして説明を容易にするために、後退オイラー法のみを、この説明における時間離散化に使用する。しかしながら、これは、本明細書に記載のシステム及び方法を限定するものではない。即ち、本明細書に記載のシステム及び方法は、他の時間離散化法、例えば、クランク・ニコルソン及びθ法にも等しく適用することができる。2つ以上の前の時点を伴う高次積分法（例えば、BDF2）も使用することができる。ニュートン・ラフソン法の使用及び適用により、以下の線形行列方程式が得られる。
【数３】
0006803173.tif 000004
式中、Ki=ΔtSi'+Ti'及びMi=-Ti'は、ヤコビ行列であり、Δxiは、非線形反復の増分であり、biは、非線形反復の残差である。
【００２４】
【数４】
0006803173.tif 000005
とする。すると、式（4）は以下のように簡潔な形で書くことができる。
AΔx＝b    (6)
【００２５】
ブロック型の（4）のため、（4）は、本明細書でさらに説明される直接ソルバー又は反復ソルバーのいずれかを用いて適切な並列計算アルゴリズムで効率的に解くことができる。
【００２６】
（一般過渡TDMモデル）
図3は、一般過渡TDMモデルと共に使用されるプロセスを示す線図である。一般過渡モデルでは、単一非線形システムにまとめられた多数の時間ステップの集合を利用し、これらを同時に線形化し、そして収束するまで結合システム（6）を反復的に解く。これにより、本開示に詳述されるように、システムが、解プロセスの多数の部分を迅速化することができる。このモデルでは、初期条件は、一部の実行で利用され、そして解ベクトルx(t)は、周期的条件を満たすために必要でないこともある。この方法は、非線形過渡シミュレーション全体を、時間軸に沿っていくつかの細分に分割して、各細分に対して、全ての時間ステップを同時に解く。この手順は、図3に示されている。各細分では、システム及び方法は、
【数５】
0006803173.tif 000006
である、全ての非線形反復におけるブロック行列
【数６】
0006803173.tif 000007
を解く。
【化１】
0006803173.tif 000008
は、既に下ブロック三角行列であるため、ブロック直接ソルバーを利用することができる。図4は、直接ブロック三角行列ソルバーを示す線図である。
【００２７】
（周期的モデル専用のソルバー）
上記のように、状況によって、異なるソルバーを利用することができる。一実施態様では、直接ソルバーを用いて式（6）を解くために、行列Aの逆行列を決定する。行列Aの逆転の計算コストは、一例では、ウッドベリー式を適用することによって大幅に削減することができる。
【００２８】
一実施態様では、ブロック行列Aは、2つの部分に分けられる：
【数７】
0006803173.tif 000009
1つの部分は、（8）によって定義される行列
【化２】
0006803173.tif 000010
であり、もう1つの部分は、2つのブロックベクトルUとVTの積である。
【化３】
0006803173.tif 000011
は、下三角ブロック行列であり、その逆転がAの逆転よりも遥かに容易であることを意味することに留意されたい。ブロックベクトルU及びVTを作成するための多数の方法が存在する。1つの方法は、以下の通りである：
【数８】
0006803173.tif 000012
（ここで、サブブロック行列は、
【数９】
0006803173.tif 000013
として作成され、
βは、自由パラメータであり、1に設定することができ、かつ
【化４】
0006803173.tif 000014
は、0の行と0の列が追加された拡張単位行列である）。例えば、
【数１０】
0006803173.tif 000015
（pは、階数を表し、Nは、該サブブロック行列Mnのサイズを表し、
【化５】
0006803173.tif 000016
はp×N行列であり、この行列は、行列Mnから圧縮されたものである）。例えば、
【数１１】
0006803173.tif 000017
は、
【数１２】
0006803173.tif 000018
に圧縮することができる。
【００２９】
一部の実際的な問題、例えば、電気機械装置の過渡挙動では、階数pは、場合により非常に小さい、即ち、p<<Nである。結果として、作成した行列u1及びvnの階数もpである。低い階数のこの特性により、式（6）を、一部の例では、以下の手順によって効率的に解くことができる。
【００３０】
まず、pの右辺を有する以下の行列
【数１３】
0006803173.tif 000019
を解いて、解ベクトル
【数１４】
0006803173.tif 000020
を得る。次に、p×p行列を逆転して行列Hを作成する。
H=(I+vn・Zn)-1    （17）
次いで、以下の行列
【数１５】
0006803173.tif 000021
を解いて、解ベクトル
【数１６】
0006803173.tif 000022
を得る。（6）の解は、
Δx=y-Z・[H・(vnyn)]    （20）
として、解ベクトルZと解ベクトルyとの重ね合わせによって得ることができる。
【００３１】
行列vnとznの積により、密行列が得られる。通常は、密行列の逆転の計算コストは高い。しかしながら、階数pが非常に小さい場合は、計算コストは低い。従って、上で詳述された直接ソルバーは、階数pが非常に小さい場合は非常に効率的である。pが大きい場合は、反復ソルバーを使用することができる。図5は、周期的TDMモデル用の直接ソルバーを示す流れ図である。
【００３２】
（周期的モデル専用の反復ソルバー）
前処理付き反復ソルバー、例えば、一般化最小残差法（GMRES）又は双共役勾配法（BiCG）を使用して（4）を解くことができる。前処理行列は、行列Aへの近似であり、これにより、反復ソルバーの反復の収束を迅速化することができる。前処理行列を作成するための複数の方法が存在する。例えば、部分行列の不完全LU分解に基づいた前処理行列を利用することができる。別の例として、3つの効率的な前処理行列を使用することができ、この3つの前処理行列は、非重複と重複の2つのタイプに分類することができ、このうちの2つが非重複であり、1つが重複である。これらの前処理行列は、n=6、即ち6つの時間ステップを用いる以下の例によって詳述することができる。
【数１７】
0006803173.tif 000023
Cは前処理行列を表すものとする。ドメイン1とドメイン2を有する2つのサブドメインの場合は、ヤコビ前処理行列は、
【数１８】
0006803173.tif 000024
の形をとる。
【００３３】
前処理行列の2つのサブドメインが分離され、これにより前処理行列を並列化することができる。しかしながら、ヤコビ前処理行列を用いる反復ソルバーの収束は時間がかかり得る。別の選択肢は、ガウス・ザイデル前処理行列を使用することであり、この前処理行列は、行列Aの下三角部分であり、
【数１９】
0006803173.tif 000025
の形をとる。
【００３４】
ガウス・ザイデル前処理行列は、反復ソルバーの収束を著しく改善することができるが、並列化が犠牲となる。並列と収束との間のトレードオフでは、加法シュワルツ法が、時には優れた選択であり得る。加法シュワルツ法は、ヤコビ前処理行列の一般化と考えることができる。ヤコビ前処理行列とは異なり、サブドメインが重複し得る。例えば、ドメインは、図6に例示されているように2つのサブドメイン、即ちドメイン1（K1, M1, K2, M2, K3, M3, K4, M4）及びドメイン2（K4, M4, K5, M5, K6, M6）から構成されている。重複領域は、時間ステップ4（K4, M4）である。図6は、2つのサブドメインの重複を示す線図である。図7は、周期的TDMモデル用の反復ソルバーの例を示す線図である。
【００３５】
図8は、非線形物理的システムの過渡シミュレーションのための時間ドメイン分解法を示す線図である。ニュートン・ラフソン技術は、その二次収束特性により、TDMモデルに使用することができる。しかしながら、一部の適用例、例えば、電気機械装置の数値シミュレーションでは、特に、収束がより大きい範囲、即ち、個々の時間ステップによって検査されるのではなく、全ての時間ステップを一緒に管理されなければならないという問題により、非線形反復は、非常に遅い速度で収束する、又は振動する、又は発散することさえあり得る。このため、特定の技術を、困難を克服するために導入することができる。
【００３６】
例えば、非TDM過渡では、前の時間ステップの解を使用して、各時間ステップにおける第1の非線形反復の初期の非線形動作点を推定して収束を迅速化することができる。しかしながら、TDMの場合には、このスキームは適用できない。このような場合、より良い選択は、時には、単調収束を有するために非線形BH曲線の線形部分から開始することである。同時に、異なる時間ステップの間での、元の励起、位置などにおける著しい差異により、システム及び方法は、個々の時間ステップに関連した方程式の右辺の正規化された量に基づいた適切なスケーリングによって各時間ステップの個々の非線形残差を計算するスキームを利用することができる。
【００３７】
加えて、各反復での残差の2-ノルムの二乗を最小化する緩和因子を用いて非線形収束を改善することができるため、システム及び方法は、個々の時間ステップに関連した局所緩和因子と全ての時間ステップに関連した全緩和因子との組み合わせを用いる。開始時に、全緩和因子を利用することができるが、一定の反復後には、局所緩和因子をさらに使用することができる。局所緩和因子は、全緩和因子及び個々の時間ステップで更新される非線形残差によって示される収束挙動に基づいて決定される。従って、特定の時間ステップの解が、既定の収束基準に達しない場合は、より小さい緩和を使用して、システム全体の収束に対する不所望の障害を回避することができる。
【００３８】
（2つのレベルの並列化）
ドメイン分解法のための特定のシステム及び方法は、一般に、3つの部分：前処理、解析、及び後処理のうちの1つ以上からなる。前処理部分は、励起及び境界を用いたモデルのセットアップ、メッシング、ドメインの分解などを含む。解析部分は、行列を構築すること及びブロック行列を解くことを含む。後処理部分は、行列解ベクトルに基づいて一部の物理量を計算することを含む。図9は、TDMの実行のアーキテクチャを示す線図であり、該アーキテクチャは、高位でのMPI（メッセージ・パッシング・インターフェイス）に基づいた分散メモリ型並列化及び低位でのマルチスレッドに基づいた共有メモリ型並列化の2つのレベルの並列化から構成されている。各ドメインに一致する各MPIプロセスの場合は、共有メモリ型並列化を、部分行列の構築、分解、及び後処理にさらに適用することができる。
【００３９】
並列計算では、処理間でのデータの転送のコストを最小限にするためにデータローカライゼーションを維持することが有益であり得る。これは、並列コンピュータハードウェアアーキテクチャーでは、データを転送する時間が算術計算の時間よりも遥かに長いためである。従って、図9から分かるように、他のドメイン分解法が行うようなマスターノードとスレーブノードとの間の通信に加えて、開発された時間ドメイン分解法には隣接するスレーブノード間の通信も存在し、これにより、マスターノードに対する通信負荷が著しく緩和される。結果として、データローカライゼーションを維持する自然の機構が達成される。以下の表は、2つのドメインに基づいたデータローカライゼーションを例示している。
【表１】
0006803173.tif 000026
【００４０】
図10A、図10B、及び図10Cは、コンピュータ実行時間ドメイン分解ソルバーエンジンを実行するための本明細書に記載のアプローチを実施するためのシステムの例を示している。例えば、図10Aは、スタンドアロン型コンピュータアーキテクチャを含む例示的なシステム1000を示し、該システム1000では、処理システム1002（例えば、所与のコンピュータに又は互いに別個で異なり得る複数のコンピュータに配置された1つ以上のコンピュータプロセッサ）が、該処理システム1002で実行されるコンピュータ実行結束性評価エンジン1004を含む。処理システム1002は、1つ以上のデータストア1008に加えて、コンピュータ可読メモリ1007へのアクセスを有する。1つ以上のデータストア1008は、特性データ1010及び物理的特性1012を含み得る。処理システム1002は、分散型並列計算環境であり得、この環境は、非常に大規模なデータセットを処理するために使用することができる。
【００４１】
図10Bは、クライアントサーバアーキテクチャを含むシステム1020を示している。1つ以上のユーザーPC 1022は、1つ以上のネットワーク1028を介して、コンピュータ実行時間ドメイン分解ソルバーエンジン1037を処理システム1027上で動作させる1つ以上のサーバ1024にアクセスする。1つ以上のサーバ1024は、コンピュータ可読メモリ1030及び1つ以上のデータストア1032にアクセスすることができる。1つ以上のデータストア1032は、特性データ1034及び物理的特性1038を含み得る。
【００４２】
図10Cは、本開示のシステムの実施態様のプログラム命令を含み、かつ／又は実行するために使用することができる図10Aに示されているアーキテクチャのようなスタンドアロン型コンピュータアーキテクチャ1050の例示的なハードウェアのブロック図を示している。バス1052は、他の例示されたハードウェアの構成要素を相互連結する情報ハイウェイとして機能し得る。CPU（中央処理装置）と表示された処理システム1054（例えば、所与のコンピュータ又は複数のコンピュータにおける1つ以上のコンピュータプロセッサ）は、プログラムを実行するために必要な計算及び論理演算を行うことができる。非一時的プロセッサ可読記憶媒体、例えば、読み出し専用メモリ（ROM）1058及びランダムアクセスメモリ（RAM）1059は、処理システム1054と通信することができ、かつコンピュータ実行時間ドメイン分解ソルバーエンジンを実行する方法を行ための1つ以上のプログラミング命令を含み得る。任意に、プログラム命令は、非一時的コンピュータ可読記憶媒体、例えば、磁気ディスク、光学ディスク、記録可能なメモリ素子、フラッシュメモリ、又は他の物理的記憶媒体に保存することができる。
【００４３】
図10A、図10B、及び図10Cでは、コンピュータ可読メモリ1008、1030、1058、1059、又はデータストア1008、1032、1083、1084、1088は、コンピュータ実行時間ドメイン分解ソルバーエンジンを実行するためのシステムの例に使用される様々なデータを保存し、かつ関連付けるための1つ以上のデータ構造を含み得る。例えば、上述の位置のいずれかに保存されたデータ構造を使用して、XMLファイルからのデータ、初期パラメータ、及び／又は本明細書に記載の他の変数のデータを保存することができる。ディスクコントローラ1090は、1つ以上の任意のディスクドライブをシステムバス1052に接続する。これらのディスクドライブは、外部若しくは内部フロッピーディスクドライブ、例えば、1083、外部若しくは内部CD-ROM、CD-R、CD-RW、若しくはDVDドライブ、例えば、1084、又は外部若しくは内部ハードドライブ1085であり得る。既に述べたように、これらの様々なディスクドライブ及びディスクコントローラは任意の装置である。
【００４４】
エレメントマネージャ、リアルタイムデータバッファ、コンベヤ、ファイル入力プロセッサ、データベースインデックス共有アクセスメモリローダ、参照データバッファ、及びデータマネージャのそれぞれは、ディスクコントローラ1090、ROM 1058、及び／又はRAM 1059に接続された1つ以上のディスクドライブに保存されたソフトウェアアプリケーションを含み得る。プロセッサ1054は、必要に応じて1つ以上の構成要素にアクセスすることができる。
【００４５】
ディスプレイインターフェイス1087は、バス1052からの情報を、音声、グラフィック、又は英数字形式でディスプレイ1080に表示させることができる。外部装置との通信は、任意に、様々な通信ポート1082を用いて行うことができる。
【００４６】
これらのコンピュータ型の構成要素に加えて、ハードウェアは、データ入力装置、例えば、キーパッド1079、又は他の入力装置1081、例えば、マイク、リモートコントロール、ポインタ、マウス、及び／又はジョイスティックも含み得る。
【００４７】
加えて、本明細書に記載の方法及びシステムは、デバイス処理サブシステムによって実行可能なプログラム命令を含むプログラムコードによって様々なタイプの処理装置で実行することができる。ソフトウェアプログラム命令は、処理システムに本明細書に記載の方法及び動作を行わせるように動作可能なソースコード、オブジェクトコード、機械コード、又は任意のその他の保存されたデータを含み得、かつあらゆる適切な言語、例えば、C、C++、JAVAなど、又は任意のその他の適切なプログラミング言語で提供することができる。しかしながら、他の実装、例えば、ファームウェア、又は本明細書に記載の方法及びシステムを実行するように構成され、適切に設計されたハードウェアさえも使用することができる。
【００４８】
システムのデータ及び方法のデータ（例えば、関連付け、マッピング、データ入力、データ出力、中間データ結果、最終データ結果など）を、1つ以上の異なるタイプのコンピュータ実行データストア、例えば、異なるタイプの記憶装置及びプログラミングコンストラクト（例えば、RAM、ROM、フラッシュメモリ、単層ファイル、データベース、プログラミングデータ構造、プログラミング変数、IF-THEN（又は同様のタイプの）ステートメントコンストラクト（statement construct）など）に保存して実行することができる。データ構造は、データベース、プログラム、メモリ、又はコンピュータプログラムによって使用される他のコンピュータ可読媒体におけるデータの編成及び保存に使用される形式を記述することに留意されたい。
【００４９】
本明細書に記載のコンピュータ構成要素、ソフトウェアモジュール、関数、データストア、及びデータ構造は、それらの動作に必要なデータの流れを可能にするために、直接的又は間接的に互いに接続することができる。また、モジュール又はプロセッサは、限定されるものではないが、ソフトウェア動作を実行するコード単位を含み、かつ例えば、サブルーチンのコード単位として、又はソフトウェア関数のコード単位として、又は（オブジェクト指向パラダイムでのような）オブジェクトとして、又はアプレットとして、又はコンピュータスクリプト言語で、又は別のタイプのコンピュータコードとして実行できることに留意されたい。ソフトウェア構成要素及び／又は機能は、目の前の状況によって単一コンピュータに配置しても良いし、又は複数のコンピュータに亘って分散しても良い。
【００５０】
本開示は、その特定の実施態様を参照して詳細に説明されたが、当業者であれば、これらの実施態様の精神及び範囲から逸脱することなく様々な変更及び改良を行うことができることは明らかであろう。従って、本開示は、添付の特許請求の範囲及びその等価物の範囲に含まれるのであれば、この開示の改良及び変更を包含するものとする。
本件出願は、以下の構成の発明を提供する。
（構成１）
物理的システムを構築するプロセッサ実行方法であって：
物理的システムに関連した特性データを受け取るステップ；
該特性データに基づいて該物理的システムのモデルを構築するステップ；
該モデルを使用して該物理的システムの非線形過渡シミュレーションを行うステップであって、該シミュレーションが、複数の時間間隔に亘って行われ、該ステップが：
該複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ；
時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ；及び
該時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップ、を含む、該ステップ、
該シミュレーションの結果に基づいて物理的特性を決定するステップ、を含み、
該物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する、前記方法。
（構成２）
前記物理的システムが、周期的システムであるか又は非周期的システムであるかを決定するステップをさらに含み、該物理的システムが周期的システムである場合に第1のモデルが構築され、該物理的システムが非周期的システムである場合に第2のモデルが構築される、構成1記載の方法。
（構成３）
前記決定するステップが、コンピュータシステムによって自動的に行われる、構成2記載の方法。
（構成４）
前記物理的システムが周期的システムである場合は、前記モデルが：
（数１）
0006803173.tif 000027
に従って構築され、
式中、Ki及びMiは、ヤコビ行列であり、Δxiは、非線形反復の増分であり、かつbiは、非線形反復の残差である、構成1記載の方法。
（構成５）
Mn行列の階数を閾値と比較するステップをさらに含み；
該Mn行列の階数が、該閾値未満である場合は、直接ソルバーを使用して前記モデルの時間間隔を解き；
該Mn行列の階数が、該閾値以上である場合は、反復ソルバーを使用して該モデルの時間間隔を解く、構成4記載の方法。
（構成６）
前記反復ソルバーが、収束基準が満たされるまで前記モデルの時間間隔を処理するループを含む、構成5記載の方法。
（構成７）
並列で解くための前記モデルの時間間隔の分割の前に、前処理行列を用いてA行列を調整するステップをさらに含む、構成6記載の方法。
（構成８）
元のシステム行列のMnブロックの階数が閾値未満である場合は、該Mnブロックを0に設定し、残りの下ブロック三角行列を、直接ソルバーによって並列にLU分解し、該元の行列の解がウッドベリー式によって得られる、構成5記載の方法。
（構成９）
前記物理的システムが非周期的システムである場合は、前記モデルが：
（数２）
0006803173.tif 000028
に従って構築され、
式中、Ki及びMiは、ヤコビ行列であり、Δxiは、非線形反復の増分であり、かつbiは、非線形反復の残差である、構成1記載の方法。
（構成１０）
ブロック直接ソルバーを使用して、前記非周期的システムモデルの時間間隔を解く、構成9記載の方法。
（構成１１）
前記ブロック直接ソルバーが、複数のA行列のブロックのそれぞれに対してLU分解を行い、続いて複数のブロックの前進代入演算を行う、構成10記載の方法。
（構成１２）
前記時間間隔の群が並列に解かれたら、収束チェックを行い；
収束が達成されていない場合は、各群に関連したヤコビ行列を、並列に更新して再び解き；
収束が達成されている場合は、後処理を行って前記物理的特性を決定する、構成1記載の方法。
（構成１３）
前記群を、ニュートン・ラフソン法を使用して調整する、構成12記載の方法。
（構成１４）
前記モデルに関連したデータの第1の部分を、どの特定の群の時間間隔が第1の解ユニットに割り当てられたかに基づいて該第1の解ユニットに送信し、該モデルに関連したデータの第2の異なる部分を、どの特定の群の時間間隔が第2の解ユニットに割り当てられたかに基づいて該第２の解ユニットに送信する、構成1記載の方法。
（構成１５）
各解ユニットが、別個のデータ処理ユニットである、構成1記載の方法。
（構成１６）
前記シミュレーションが、入力に対する前記物理的システムの物理的反応を解析する、構成1記載の方法。
（構成１７）
前記物理的反応が、媒体中の波動伝播、熱伝導、又は電気機械装置の過渡挙動である、構成16記載の方法。
（構成１８）
物理的システムを構築するためのコンピュータ実行システムであって：
1つ以上のデータプロセッサ；
複数のステップを実行するために1つ以上のデータプロセッサに指令するための命令で符号化されたコンピュータ可読媒体であって、該複数のステップが：
物理的システムに関連した特性データを受け取るステップ；
該特性データに基づいて該物理的システムのモデルを構築するステップ；
該モデルを使用して該物理的システムの非線形過渡シミュレーションを行うステップであって、該シミュレーションが、複数の時間間隔に亘って行われ、該ステップが：
該複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ；
時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ；及び
該時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップ、を含む、該ステップ、
該シミュレーションの結果に基づいて物理的特性を決定するステップを含む、該コンピュータ可読媒体を含み、
該物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する、前記システム。
（構成１９）
前記複数のステップが：
前記物理的システムが、周期的システムであるか又は非周期的システムであるかを決定するステップをさらに含み、該物理的システムが周期的システムである場合に第1のモデルが構築され、該物理的システムが非周期的システムである場合に第2のモデルが構築される、構成18記載のシステム。
（構成２０）
前記物理的システムが周期的システムである場合は、前記モデルが：
（数３）
0006803173.tif 000029
に従って構築され、
式中、Ki及びMiは、ヤコビ行列であり、Δxiは、非線形反復の増分であり、かつbiは、非線形反復の残差である、構成18記載のシステム。
（構成２１）
前記複数のステップが：
M行列の階数を閾値と比較するステップをさらに含み；
該M行列の階数が、該閾値未満である場合は、直接ソルバーを使用して前記モデルの時間間隔を解き；
該M行列の階数が、該閾値以上である場合は、反復ソルバーを使用して該モデルの時間間隔を解く、構成20記載のシステム。
（構成２２）
物理的システムを構築するための方法のステップを実行するために1つ以上のデータプロセッサに指令するための命令で符号化されたコンピュータ可読媒体であって、該方法が：
物理的システムに関連した特性データを受け取るステップ；
該特性データに基づいて該物理的システムのモデルを構築するステップ；
該モデルを使用して該物理的システムの非線形過渡シミュレーションを行うステップであって、該シミュレーションが、複数の時間間隔に亘って行われ、該ステップが：
該複数の時間間隔を、それぞれが複数の時間間隔を含む時間間隔の群に分割するステップ；
時間間隔の各群に関連したデータを異なる解ユニットに送信するステップ；及び
該時間間隔の群のそれぞれを、該異なる解ユニットを用いて並列に解くステップ、を含む、該ステップ、
該シミュレーションの結果に基づいて物理的特性を決定するステップ、を含み、
該物理的システムを、該シミュレーションで決定された物理的特性に基づいて構築又は修正する、前記コンピュータ可読媒体。
【図１】
0006803173.tif 000033
【図２】
0006803173.tif 000034
【図３】
0006803173.tif 000035
【図４】
0006803173.tif 000036
【図５】
0006803173.tif 000037
【図６】
0006803173.tif 000038
【図７】
0006803173.tif 000039
【図８】
0006803173.tif 000040
【図９】
0006803173.tif 000041
【図１０Ａ−Ｂ】
0006803173.tif 000042
【図１０Ｃ】
0006803173.tif 000043