(57)【要約】【課題】  システム全体の計算能力に応じた解析処理が可能な分散電磁界解析装置を提供すること【解決手段】  分散処理制御部１は、解析領域の全時間応答を求める主問題を空間的および時間的に複数の副問題に分割し、副問題のそれぞれを複数の計算部２−１〜２−ｍのうち新たな副問題の計算が可能な計算部に割り当てて解析を行なわせる。したがって、計算部２−１〜２−ｍの計算能力などが変化した場合でも、システム全体の計算能力に応じた解析処理を行なうことが可能となる。【選択図】        図１
2006072718.tif 000002
【特許請求の範囲】
【請求項１】
差分法に基づく電磁界解析をネットワークに接続された複数の計算機に行なわせる分散電磁界解析装置であって、
電磁界解析を行なうための複数の計算手段と、
解析領域の全時間応答を求める主問題を空間的および時間的に複数の副問題に分割し、副問題のそれぞれを前記複数の計算手段に割り当てて解析を行なわせるための分散処理制御手段とを含む、分散電磁界解析装置。
【請求項２】
前記分散処理制御手段は、主問題の解析領域を複数のブロックに分割するための分割手段と、
前記複数の計算手段のうち、新たな副問題の計算が可能な計算手段を抽出するための抽出手段と、
前記分割手段によって分割された複数のブロックを所定タイムステップ数毎に分割して複数の副問題を生成し、計算可能な副問題を前記抽出手段によって抽出された計算手段に割り当てるための処理手段と、
前記処理手段によって割り当てられた副問題の計算指示を当該計算手段に送信するための送信手段とを含む、請求項１記載の分散電磁界解析装置。
【請求項３】
前記処理手段は、ブロック毎に計算が終了した副問題の個数を示すカウンタを有し、該カウンタの値に基づいて副問題の計算進捗状況を管理する、請求項２記載の分散電磁界解析装置。
【請求項４】
前記処理手段は、副問題の計算進捗状況および複数のブロックの相関関係から計算可能な副問題を抽出する、請求項３記載の分散電磁界解析装置。
【請求項５】
前記処理手段は、同一ブロックの時間的に連続な副問題を同一の計算手段に割り当てる、請求項２〜４のいずれかに記載の分散電磁界解析装置。
【請求項６】
前記所定タイムステップ数を２以上の数ｎとすると、
前記計算手段は、割り当てられた副問題の計算を行なう際、副問題に対応するブロック内の電磁界情報と、当該ブロック近傍のｎ層のオーバラップ領域の電磁界情報とから、当該ブロックの電磁界を計算する、請求項２〜４のいずれかに記載の分散電磁界解析装置。
【請求項７】
前記計算手段は、第１のタイムステップにおいてはブロック近傍のｎ層までの電磁界計算を行ない、第２のタイムステップにおいてはブロック近傍のｎ−１層までの電磁界計算を行ない、これらの処理を繰返すことによって電磁界計算を行なう領域を狭めてゆき、第ｎのステップにおいてはブロック内の電磁界計算だけを行なう、請求項６記載の分散電磁界解析装置。
【請求項８】
解析領域を複数のブロックに分割し、分割されたブロックの電磁界計算を所定タイムステップで行なう分割電磁界解析方法であって、
前記所定タイムステップを２以上の数ｎとすると、
あるブロック内の電磁界を計算するのに先立ち、当該ブロック内の電磁界情報と、当該ブロック近傍のｎ層のオーバラップ領域の電磁界情報とを取得するステップと、
前記取得された電磁界情報から当該ブロックの電磁界を計算するステップとを含む、分割電磁界解析方法。
【請求項９】
前記電磁界を計算するステップは、第１のタイムステップにおいてはブロック近傍のｎ層までの電磁界計算を行ない、第２のタイムステップにおいてはブロック近傍のｎ−１層までの電磁界計算を行ない、これらの処理を繰返すことによって電磁界計算を行なう領域を狭めてゆき、第ｎのステップにおいてはブロック内の電磁界計算だけを行なうステップを含む、請求項８記載の分割電磁界解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を用いて電磁界解析を行なう技術に関し、特に、電磁界解析計算を分割して複数の計算機に割り当てる分散電磁界解析装置、および電磁界解析を分割して行なう分割電磁界解析方法に関する。
【背景技術】
【０００２】
近年、コンピュータの処理速度の向上に伴い、解析領域の電磁界解析をコンピュータに行なわせる技術が種々開発されている。このような技術の１つとして、マックスウェルの方程式を時間および空間で差分化し、解析空間の電磁界をリープフロッグアルゴリズムを用いて時間的に更新し、出力点の時間応答を得る手法であるＦＤＴＤ法（Finite Difference Time Domain Method）を挙げることができる。
【０００３】
ＦＤＴＤ法による電磁界解析手法は、解析領域を格子で分割し、格子点に未知電磁界を配置するものであるが、未知電界を配置する格子と未知磁界を配置する格子とを、格子の半分の幅だけずらすＹｅｅ格子という構造を取るようにしている。このとき、各未知電界には隣接する未知磁界が３次元では６つ、２次元では４つ存在する。未知磁界に隣接する未知電界についても同様である。
【０００４】
ＦＤＴＤ法は、これらの未知電界および磁界と、隣接する未知磁界および電界との間に働く関係式を電磁気学に基づくマックスウェルの方程式から導き、それを基に未知電界および磁界をあるタイムステップを単位に更新していくことで全体の電磁界挙動を求める差分法に基づく解析手法である。この解析手法においては、あるタイムステップで電界を更新し、１／２タイムステップ後に磁界を更新し、１タイムステップ後に電界を更新するというように、電界および磁界を交互に求めるものである。
【０００５】
このようなＦＤＴＤ法を用いた並列電磁界解析システムにおいては、ｍ台の計算機を用意して、解析領域をｍブロックに分割し、各計算機をブロックに対応付けて並列計算を行なわせる。そのとき、ブロックの境界部分に１層のオーバーラップ領域を設け、１タイムステップ毎に隣接する各ブロックを担当する計算機間でオーバーラップ領域の電磁界情報を交換する。これに関連する技術として、特開２００３−２２３４２６号公報および特開２００４−５４６４２号公報に開示された発明がある。
【０００６】
特開２００３−２２３４２６号公報に開示された情報処理装置においては、第１のパーソナルコンピュータおよび第２のパーソナルコンピュータが、電界または磁界を解析するオーバラップ領域の、計算上の所定の時刻における電界の強さを演算する。そして、第１のパーソナルコンピュータは、第２のパーソナルコンピュータにオーバラップ領域の電界の強さを送信する。第１のパーソナルコンピュータは、送信と並列に、分割された領域うちの、オーバラップ領域が除外された領域の、計算上の時刻における電界の強さおよび磁界の強さを演算する。
【０００７】
特開２００４−５４６４２号公報に開示された回路解析システムにおいては、通信ネットワークを介して接続されている第１〜第５のコンピュータによって回路解析システムを構成し、第１および第２のコンピュータによってＦＤＴＤ法による電磁界解析を行ない、第４および第５のコンピュータによってシミュレーションを行なう。解析対象となる領域を複数のサブ領域およびこれらのサブ領域間のオーバラップ領域に分割し、各サブ領域における電磁界の解析が第１および第２のコンピュータによって並列に行なわれ、各サブ領域における等価回路網のシミュレーションは、第４および第５のコンピュータによって並列に行なわれ、第３のコンピュータによって構成された制御部は、各コンピュータの同期を制御する。
【特許文献１】特開２００３−２２３４２６号公報
【特許文献２】特開２００４−５４６４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
初期状態から終了条件を満たす時刻までの解析領域全体の電磁界挙動を求める問題を主問題と呼ぶことにする。ＦＤＴＤ法などの時間領域における解析を行う電磁界解析装置は、与えられた主問題を解く装置である。上述した１台の計算機を用いた電磁界解析装置は、この主問題を解くために必要な計算を全て１台の計算機で行なうものである。
【０００９】
一方、主問題を空間方向に分割した問題を副問題と呼ぶことにすると、上記特許文献１および特許文献２は、各副問題に対して１台の計算機を割当てて並列・分散処理を行なうものであるといえる。このような電磁界解析装置においては、各計算機が遅延の小さい高速なネットワークで接続されている必要があるといった問題点があった。
【００１０】
また、全ての計算機が計算を同程度の時間で終えるように、解析開始時に各計算機にその能力に応じた大きさのブロックを割り当てて負荷の分散を行うため、各計算機の計算能力が計算中に変動することに弱く、計算中は計算機を占有する必要があるといった問題点もあった。さらに、解析計算中の計算機の増減にも対応できなかった。
【００１１】
また、１タイムステップあたり電界計算前および磁界計算前の計２回、各計算機間で電磁界情報を同期させる必要があるため、通信待ち時間による性能低下が発生するといった問題点があった。また、特許文献１に開示された改良型ＦＤＴＤ計算法においては、１タイムステップ毎の情報同期回数を１に削減して計算を行うことを可能にしている。しかし、この方法もあくまで遅延の比較的少ないネットワークを用いることを前提とした技術であるため、インターネット、イントラネットなどの汎用のネットワークで用いることは困難であるといった問題点があった。
【００１２】
本発明は、上記問題点を解決するためになされたものであり、その目的は、システム全体の計算能力に応じた解析処理が可能な分散電磁界解析装置を提供することである。
【００１３】
タイムステップ数にわたる副問題の計算を非同期に行なうことが可能な分割電磁界解析方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明のある局面に従えば、差分法に基づく電磁界解析をネットワークに接続された複数の計算機に行なわせる分散電磁界解析装置であって、電磁界解析を行なうための複数の計算手段と、解析領域の全時間応答を求める主問題を空間的および時間的に複数の副問題に分割し、副問題のそれぞれを複数の計算手段に割り当てて解析を行なわせるための分散処理制御手段とを含む。
【００１５】
好ましくは、分散処理制御手段は、主問題の解析領域を複数のブロックに分割するための分割手段と、複数の計算手段のうち、新たな副問題の計算が可能な計算手段を抽出するための抽出手段と、分割手段によって分割された複数のブロックを所定タイムステップ数毎に分割して複数の副問題を生成し、計算可能な副問題を抽出手段によって抽出された計算手段に割り当てるための処理手段と、処理手段によって割り当てられた副問題の計算指示を当該計算手段に送信するための送信手段とを含む。
【００１６】
さらに好ましくは、処理手段は、ブロック毎に計算が終了した副問題の個数を示すカウンタを有し、カウンタの値に基づいて副問題の計算進捗状況を管理する。
【００１７】
さらに好ましくは、処理手段は、副問題の計算進捗状況および複数のブロックの相関関係から計算可能な副問題を抽出する。
【００１８】
好ましくは、処理手段は、同一ブロックの時間的に連続な副問題を同一の計算手段に割り当てる。
【００１９】
好ましくは、所定タイムステップ数を２以上の数ｎとすると、計算手段は、割り当てられた副問題の計算を行なう際、副問題に対応するブロック内の電磁界情報と、当該ブロック近傍のｎ層のオーバラップ領域の電磁界情報とから、当該ブロックの電磁界を計算する。
【００２０】
さらに好ましくは、計算手段は、第１のタイムステップにおいてはブロック近傍のｎ層までの電磁界計算を行ない、第２のタイムステップにおいてはブロック近傍のｎ−１層までの電磁界計算を行ない、これらの処理を繰返すことによって電磁界計算を行なう領域を狭めてゆき、第ｎのステップにおいてはブロック内の電磁界計算だけを行なう。
【００２１】
本発明の別の局面に従えば、解析領域を複数のブロックに分割し、分割されたブロックの電磁界計算を所定タイムステップで行なう分割電磁界解析方法であって、所定タイムステップを２以上の数ｎとすると、あるブロック内の電磁界を計算するのに先立ち、当該ブロック内の電磁界情報と、当該ブロック近傍のｎ層のオーバラップ領域の電磁界情報とを取得するステップと、取得された電磁界情報から当該ブロックの電磁界を計算するステップとを含む。
【００２２】
好ましくは、電磁界を計算するステップは、第１のタイムステップにおいてはブロック近傍のｎ層までの電磁界計算を行ない、第２のタイムステップにおいてはブロック近傍のｎ−１層までの電磁界計算を行ない、これらの処理を繰返すことによって電磁界計算を行なう領域を狭めてゆき、第ｎのステップにおいてはブロック内の電磁界計算だけを行なうステップを含む。
【発明の効果】
【００２３】
本発明のある局面によれば、分散処理制御手段が、解析領域の全時間応答を求める主問題を空間的および時間的に複数の副問題に分割し、副問題のそれぞれを複数の計算手段に割り当てて解析を行なわせるので、計算手段の計算能力などが変化した場合でも、システム全体の計算能力に応じた解析処理を行なうことが可能となった。
【００２４】
また、処理手段が、分割手段によって分割された複数のブロックを所定タイムステップ数毎に分割して複数の副問題を生成し、計算可能な副問題を抽出手段によって抽出された計算手段に割り当てるので、動的に同じブロックの副問題を異なる計算手段に移動することが可能となった。
【００２５】
また、処理手段が、ブロック毎に計算が終了した副問題の個数を示すカウンタを有し、カウンタの値に基づいて副問題の計算進捗状況を管理するので、副問題の計算進捗を適切に管理することが可能となった。
【００２６】
また、処理手段が、副問題の計算進捗状況および複数のブロックの相関関係から計算可能な副問題を抽出するので、副問題の割り当てを容易に行なうことが可能となった。
【００２７】
また、処理手段が、同一ブロックの時間的に連続な副問題を同一の計算手段に割り当てるので、必要な通信量や、通信待ち時間を削減することが可能となった。
【００２８】
また、計算手段が、割り当てられた副問題の計算を行なう際、副問題に対応するブロック内の電磁界情報と、当該ブロック近傍のｎ層のオーバラップ領域の電磁界情報とから、当該ブロックの電磁界を計算するので、タイムステップ数ｎにわたる副問題の計算を非同期に行なうことが可能となった。
【００２９】
また、計算手段が、電磁界計算を行なう領域を狭めてゆき、第ｎのステップにおいてはブロック内の電磁界計算だけを行なうようにしたので、タイムステップ数ｎにわたる副問題の計算を非同期に行なうことが可能となった。
【発明を実施するための最良の形態】
【００３０】
本発明の実施の形態における並列・分散電磁界解析装置（以下、単に分散電磁界解析装置とも呼ぶ。）は、ある終了条件が満たされるまでの解析領域内の電磁界を求める問題を与えられ、解析領域の初期電磁界分布と、解析領域内に存在するすべての物体の位置情報および電磁気的特性情報と、解析領域境界での境界条件とから、その結果を計算するものである。以下、この終了条件を満足するまでの電磁界を求める問題を主問題と呼ぶ。本実施の形態における分散電磁界解析装置は、主問題を何らかの方法で複数の副問題に分割し、それらを複数の計算部に割り当てて並列・分散処理するものである。
【００３１】
図１は、本発明の実施の形態における分散電磁界解析装置の構成例を示すブロック図である。この分散電磁界解析装置は、分散電磁界解析装置全体の制御を行なう分散処理制御部１と、副問題のそれぞれを解析する複数の計算部２−１〜２−ｍと、分散処理制御部１および計算部２−１〜２−ｍを接続するネットワーク３とを含む。
【００３２】
分散処理制御部１は、与えられた主問題の解析領域をブロック分割し、さらにタイムステップ数ｎ（ｎ＞１）毎に分割して副問題を生成する。また、分散処理制御部１は、各ブロックの副問題進捗情報と、計算済みの副問題電磁界情報自身および計算済み副問題電磁界情報の存在位置を示す情報と、計算部２−１〜２−ｍの使用状態とを管理し、それらの情報に基づいて次に計算可能な副問題を割り出す。そして、それらの副問題を各計算部２−１〜２−ｍに割り当て、副問題計算に必要な情報とともに指示情報として各計算部２−１〜２−ｍにネットワーク３を介して送信する。
【００３３】
計算部２−１〜２−ｍは、分散処理制御部１からネットワーク３を介して受信した指示情報に基づき、副問題計算に必要な情報をネットワーク３を介して他の計算部に要求し、副問題の計算を行ない、計算終了などにより状態遷移が起こるたびに、新しい状態を分散処理制御部１に伝える。また分散処理制御部１または他の計算部からの要求により、保持している副問題の計算結果の電磁界情報またはその一部の電磁界情報を、分散処理制御部１や他の計算部にネットワーク３を介して送信する。
【００３４】
図２は、図１に示す分散処理制御部１の構成例を示すブロック図である。なお、計算部２−１〜２−ｍも同様の構成を有している。
【００３５】
分散処理制御部１は、コンピュータ本体３１、ディスプレイ装置３２、ＦＤ（Flexible Disk）３４が装着されるＦＤドライブ３３、キーボード３５、マウス３６、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）３８が装着されるＣＤ−ＲＯＭ装置３７、およびネットワーク通信装置３９を含む。分散処理制御プログラムは、ＦＤ３４またはＣＤ−ＲＯＭ３８等の記録媒体によって供給される。分散処理制御プログラムがコンピュータ本体３１によって実行されることによって、上述した副問題の生成、割り当てなどが行なわれる。また、分散処理制御プログラムは他のコンピュータより通信回線を経由し、コンピュータ本体３１に供給されてもよい。
【００３６】
コンピュータ本体３１は、ＣＰＵ４０、ＲＯＭ（Read Only Memory）４１、ＲＡＭ（Random Access Memory）４２およびハードディスク４３を含む。ＣＰＵ４０は、ディスプレイ装置３２、ＦＤドライブ３３、キーボード３５、マウス３６、ＣＤ−ＲＯＭ装置３７、ネットワーク通信装置３９、ＲＯＭ４１、ＲＡＭ４２またはハードディスク４３との間でデータを入出力しながら処理を行う。ＦＤ３４またはＣＤ−ＲＯＭ３８に記録された分散処理制御プログラムは、ＣＰＵ４０によりＦＤドライブ３３またはＣＤ−ＲＯＭ装置３７を介してハードディスク４３に格納される。ＣＰＵ４０は、ハードディスク４３から適宜分散処理制御プログラムをＲＡＭ４２にロードして実行することによって、上述した副問題の生成、割り当てなどが行なわれる。
【００３７】
図３は、分散処理制御部１の機能的構成を示すブロック図である。この分散処理制御部１は、解析領域を複数の矩形ブロックに分割するブロック分割部１１と、電磁界解析の初期化処理を行なう初期化処理部１２と、副問題の計算可否を判定し、計算可能な副問題を複数の空き計算部のいずれかに割り当てる副問題処理部１３と、副問題の計算指示を送信する計算指示送信部１４と、計算部の登録／抹消処理を行なう計算部登録・抹消部１５と、副問題計算の進捗情報を更新する進捗情報更新部１６とを含む。
【００３８】
図４は、分散処理制御部１の処理手順を説明するためのフローチャートである。以下、２次元の場合の電磁界解析について説明するが、３次元の電磁界解析の場合も同様の手順で処理を行なうことが可能である。まず、ブロック分割部１１は、与えられた解析領域を複数の矩形ブロックに分割する（Ｓ１１）。
【００３９】
図５は、解析領域のブロック分割の一例を示す図である。図５においては、解析領域がブロック０１〜１４の１４個のブロックに分割されている。このときの分割法は、すべてのブロックが同一サイズであってもよいし、それぞれのブロックが別々のサイズであってもよい。解析領域外との境界に吸収境界層を設ける場合には、その吸収境界層が隣接するブロックに含まれるものとして処理が行なわれる。
【００４０】
次に、初期化処理部１２は、電磁界解析の初期化処理を行なう（Ｓ１２）。具体的には、ブロック分割により得られた各ブロックを、時間方向にタイムステップ数ｎ毎に分割した１番目の副問題を生成し、計算待ち副問題集合に追加する。また、副問題進捗情報である各ブロックの副問題計算済みカウンタを０に初期化する。
【００４１】
以下の説明においては、時刻の単位を１タイムステップとし、ブロック番号ｂの時刻（ｉ−１）＊ｎ＋１から時刻ｉ＊ｎまでの電界、および時刻（ｉ−１）＊ｎ＋３／２から時刻ｉ＊ｎ＋１／２の磁界を求める副問題を副問題（ｂ，ｉ）と表現し、副問題（ｂ，ｉ）をブロックｂのｉ番目の副問題と表現する。また、副問題（ｂ，ｉ）の計算後のブロックｂの時刻ｉ＊ｎの電磁界情報を副問題（ｂ，ｉ）の計算結果、それぞれのブロックにおける電磁界の初期状態を０番目の副問題計算結果と呼ぶものとする。
【００４２】
また、初期化処理部１２は、ネットワーク３を介して各計算部２−１〜２−ｍにその状態を問い合わせ、実際に使用可能な計算部の情報を収集することによって、計算部管理情報を初期化する。計算部管理情報は、計算部ＩＤと対応付けて、少なくとも使用中か否かを表す使用中フラグを管理する。また、初期化処理部１２は、使用中フラグを全てリセットする。さらに、各計算部２−１〜２−ｍの計算能力、各計算部２−１〜２−ｍ間のネットワーク距離などを管理し、副問題の割り当てに利用することも可能である。
【００４３】
次に、副問題処理部１３は、計算待ち副問題集合の各副問題の計算可否を判定する（Ｓ１３）。ここで、副問題（ｂ，ｉ＋１）が計算可能であるためには副問題（ｂ，ｉ）およびブロックｂのｎ近傍を含むブロックのｉ番目の副問題が計算済みである必要がある。
【００４４】
図６は、解析領域外と隣接していないブロックの一例を示す図である。図６に示すように解析領域外と隣接していないブロック１１のｉ＋１番目の副問題は、副問題（１１，ｉ）、副問題（０７，ｉ）、副問題（０９，ｉ）、副問題（１０，ｉ）、副問題（１２，ｉ）、副問題（１３，ｉ）、副問題（１４，ｉ）が計算済みであるときに計算可能である。
【００４５】
図７は、解析領域外と隣接しているブロックの一例を示す図である。図７に示すように解析領域外と隣接しているブロック０１のｉ＋１番目の副問題は、副問題（０１，ｉ）、副問題（０２，ｉ）、副問題（０５，ｉ）、副問題（０８，ｉ）、副問題（０９，ｉ）、副問題（１０，ｉ）が計算済みであるときに計算可能である。
【００４６】
図８は、ｉ番目の副問題とｉ＋１番目の副問題との相関を示す図である。この表は、解析領域に対して図５のようにブロック分割を行った場合に、各ブロックのｉ＋１番目の副問題がｉ番目のどのブロックの副問題に依存するかを示している。副問題処理部１３は、この表と、副問題進捗情報とを参照することで、各副問題の計算可否を判定することが可能である。
【００４７】
次に、副問題処理部１３は、計算部管理情報の計算中フラグに基づいて空き計算部を特定し、抽出した計算可能な副問題を割り当てる（Ｓ１４）。そして、割り当てが決定した計算部に対応する計算部管理情報の計算中フラグをセットする。ここで、ある副問題を複数の空き計算部のいずれに割り当てるかを決定する際に、ＦＩＦＯなどの単純な仕組みを用いてもよいが、計算可能な副問題の前の副問題を計算した計算部が空き状態にある場合、同じブロックに該当する副問題をその計算部に割り当てることにより、各計算部の計算能力、ノード数、ネットワークトポロジ、通信遅延、通信量などを考慮したより効率的な割り当てができ、全体の性能向上を図ることが可能となる。
【００４８】
次に、計算指示送信部１４は、副問題が割り当てられた計算部に副問題計算に必要な情報を送信する（Ｓ１５）。副問題計算結果を分散処理制御部１自身が保持する場合は、その情報を直接指示に埋め込み、他の計算部が保持する場合は副問題計算結果の存在位置情報を指示に埋め込む。副問題計算に必要な情報を送信した後、進捗情報更新部１６は、対応する副問題を計算待ち副問題集合から削除し、新たに計算中副問題集合に登録し、割り当てられた計算部の情報とともに管理する。
【００４９】
次に、計算部登録・抹消部１５は、ネットワーク３を介して新たに計算に参加する計算部の検出処理を行なう。新たに計算に参加する計算部を検出した場合（Ｓ１６，Ｙｅｓ）、計算部管理情報に新たにエントリを追加し、該当エントリの計算中フラグをリセットすることによって計算部を登録する（Ｓ１７）。そして、ステップＳ１４に戻って以降の処理を繰返す。
【００５０】
また、新たに計算に参加する計算部を検出しない場合（Ｓ１６，Ｎｏ）、計算部２−１〜２−ｍによる計算終了通知の検出処理を行なう。計算終了を検出しなかった場合（Ｓ１８，Ｎｏ）、ステップＳ１６に戻って以降の処理を繰返す。
【００５１】
また、計算終了を検出した場合（Ｓ１８，Ｙｅｓ）、進捗情報更新部１６は、計算部に対応する副問題を計算中副問題集合から削除し、計算済み副問題集合に登録する。また、副問題に対応するブロックの副問題計算済みカウンタを１だけインクリメントする。このとき副問題計算結果の存在位置情報としてその副問題が割り当てられていた計算部を登録する。さらに、計算が終了した計算部に対応する計算部管理情報の計算中フラグをリセットする。
【００５２】
次に、副問題処理部１３は、打ち切り時間、流入エネルギー値の収束などの条件に基づいて終了判定を行なう（Ｓ１９）。たとえば、打ち切り時間を超える副問題がすべてのブロックについて計算済みであるか否かにより終了判定を行なう。終了と判定された場合（Ｓ１９，Ｙｅｓ）、全体の処理を終了する。
【００５３】
また、終了と判定されなかった場合（Ｓ１９，Ｎｏ）、進捗情報更新部１６は、計算終了した副問題のブロックの次の副問題を計算待ち副問題集合に登録して、副問題進捗情報を更新する（Ｓ２０）。
【００５４】
次に、計算部登録・抹消部１５は、計算部からの計算終了情報にそれ以降の計算に参加しないことを表す離脱情報が含まれているか否かを判定する（Ｓ２１）。離脱情報が含まれている場合（Ｓ２１，Ｙｅｓ）、計算部登録・抹消部１５は、その計算部の登録を抹消する（Ｓ２２）。具体的には、副問題計算結果の存在位置情報から副問題計算結果のうち該当する計算部が保持するもので、他の副問題や、ポート応答の計算に必要なものを特定し、転送先を分散処理制御部１とした上で、該当計算部に副問題結果出力要求を送り、副問題計算結果の転送を待つ。そして、転送が終わった副問題計算結果の存在位置情報を分散処理制御部１とし、該当する全ての副問題計算結果について処理を完了した後、計算部管理情報の該当する計算部のエントリを削除する。そして、ステップＳ１３に戻って以降の処理を繰返す。
【００５５】
また、離脱情報が含まれていない場合には（Ｓ２１，Ｎｏ）、ステップＳ１３に戻って以降の処理を繰返す。
【００５６】
図９は、計算部２−１〜２−ｍの機能的構成を示すブロック図である。この計算部２−１〜２−ｍは、ネットワーク３と接続されるネットワークインタフェース２１と、分散処理制御部１により与えられた副問題計算を行なう解析計算部２３と、副問題計算結果の電磁界情報を保持する記憶装置２４と、分散処理制御部１または他の計算部からの要求により記憶装置２４から副問題計算結果を読み出し、要求された形式に加工して、要求された送信先に送信する計算結果出力部２２とを含む。
【００５７】
図１０は、計算部２−１〜２−ｍの処理手順を説明するためのフローチャートである。まず、解析計算部２３は、分散処理制御部１からの指示に基づいてブロックｂの副問題計算結果、および隣接するブロックの副問題計算結果を持つ計算部を割り出し、それらの計算部に計算結果転送要求を送信し、受信した情報をＲＡＭ４２などに格納することによって初期化処理を行なう（Ｓ３１）。分散処理制御部１から指示を受けた計算部が副問題計算結果を保持している場合には、自身に内蔵される記憶装置２４から対応する情報を読み出して、ＲＡＭ４２などに格納する。
【００５８】
次に、解析計算部２３は、ループカウンタｊを1に初期化する（Ｓ３２）。そして、時刻（ｉ−１）＊ｎ＋ｊ−１／２の磁界情報と時刻（ｉ−１）＊ｎ＋ｊ−１の電界情報とから、電界情報を計算して更新する（Ｓ３３）。計算方法の詳細については後述する。
【００５９】
次に、解析計算部２３は、時刻（ｉ−１）＊ｎ＋ｊの電界情報と時刻（ｉ−１）＊ｎ＋ｊ−１／２の磁界情報とから磁界情報を計算して更新する（Ｓ３４）。計算方法の詳細については後述する。
【００６０】
次に、解析計算部２３は、ブロック内の全電磁界情報のうち、後にポート応答などを計算するのに必要な電磁界情報のみを記憶装置２４に保存する（Ｓ３５）。ポート応答の計算がブロック内のデータのみで計算可能である場合には、ポート応答を計算し、それを記憶装置２４に保存する。
【００６１】
次に、解析計算部２３は、ループカウンタｊに１を加え（Ｓ３６）、ループカウンタがｎ以下であるか否かを判定する（Ｓ３７）。ループカウンタがｎ以下の場合（Ｓ３７，Ｙｅｓ）、解析計算部２３は、ステップＳ３３に戻って以降の処理を繰返す。また、ループカウンタがｎ＋１の場合（Ｓ３７，Ｎｏ）、ステップＳ３８に処理が進む。
【００６２】
ステップＳ３８において、解析計算部２３は、ブロックｂの領域内、およびブロックｂに隣接する外部境界の境界条件計算用データ(ＰＭＬ内の電磁界情報など)を記憶装置２４に書き込む。
【００６３】
最後に、解析計算部２３は、ネットワーク３を介して副問題の計算終了を分散処理制御部１に送信して（Ｓ３９）、処理を終了する。
【００６４】
図１１は、計算結果出力部２２の処理手順を説明するためのフローチャートである。まず、計算結果出力部２２は、ネットワーク３を介して分散処理制御部１または他の計算部からの副問題計算結果の送信要求を待つ（Ｓ４１）。
【００６５】
副問題計算結果の送信要求を受けると、計算結果出力部２２は、記憶装置２４に保存されている副問題計算結果を要求された形式に加工する（Ｓ４２）。要求される形式として、同一ブロックの次の副問題計算に用いる副問題内の全電磁界および境界条件計算用データ全て、隣接ブロックの計算に用いる部分電磁界情報、ポート応答計算などに用いる部分電磁界情報がある。電磁界情報を送信するときのネットワーク負荷を低減するために、要求された電磁界情報を圧縮する処理も行なう。他の副問題計算に用いられる形式として、可逆圧縮法、ポート応答計算などに用いる形式である可逆または不可逆圧縮法などがある。
【００６６】
最後に、計算結果出力部２２は、計算結果を指定された転送先に転送し（Ｓ４３）、ステップＳ４１に戻って以降の処理を繰返す。
【００６７】
以下、本実施の形態の分散電磁界解析装置における時間方向に分割された副問題の計算方法について説明する。ＦＤＴＤ法では、あらかじめ媒体情報が定数として与えられているときに、あるタイムステップ単位の時刻ｔにおけるある電界格子点での未知電界計算に必要な情報は、その電界格子点での時刻ｔ−１の電界の値と、その電界格子点に隣接する磁界格子点での時刻ｔ−１／２の磁界の値だけである。
【００６８】
すなわち、あるブロックｂ内に存在する時刻ｔ＋ｎの電界および時刻ｔ＋ｎ＋１／２の磁界の値を求めるために必要な時刻ｔにおける電磁界情報は、ブロックｂの電磁界情報およびブロックｂに隣接したｎ層の電磁界情報(以下、ブロックｎ近傍と呼ぶ。)だけで計算可能である。
【００６９】
図１２は、ブロック内の電磁界情報とｎ＝１のときのブロックｎ近傍の電磁界情報とを示す図である。縦線で塗りつぶされた部分がブロック内を示し、横線で塗りつぶされた部分がブロックｎ近傍を示している。
【００７０】
図１３は、ブロック内の電磁界情報とｎ＝２のときのブロックｎ近傍の電磁界情報とを示す図である。また、図１４は、ブロック内の電磁界情報とｎ＝３のときのブロックｎ近傍の電磁界情報とを示す図である。
【００７１】
図１５および図１６は、ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝１）で計算する電磁界範囲を示す図である。縦線で塗りつぶされたブロック内と斜め線で塗りつぶされた部分とが計算範囲を示している。
【００７２】
図１７および図１８は、ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝２）で計算する電磁界範囲を示す図である。また、図１９および図２０は、ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝３）で計算する電磁界範囲を示す図である。
【００７３】
このように、ループカウンタｊが増加するごとに計算範囲を狭めることによって、効率的な電磁界計算が可能となる。
【００７４】
以上説明したように、本実施の形態における分散電磁界解析装置によれば、分散処理制御部１が主問題を副問題に分割するときに、空間だけでなく時間方向にも分割を行ない、それぞれの副問題を各計算部２−１〜２−ｍに割り当てるようにしたので、様々な要因により解析途中で計算部数や、各計算部が解析処理に割ける計算能力などが変化した場合でも、システム全体の計算能力に応じて解析処理を進めることが可能となった。このときに同時に並列計算可能な副問題数はブロック分割数が上限となるため、使用可能な計算部数と比較してブロック分割数を大きく取ることで、計算部の計算能力を効率的に利用することが可能となる。
【００７５】
また、それぞれの計算部２−１〜２−ｍがタイムステップ数ｎ（ｎ＞１）にわたる副問題の計算を非同期に行うことができるので、遅延の大きい社内ＬＡＮ（Local Area Network）などの汎用的なネットワークで接続された計算機群で分散電磁界解析を行うことが可能となった。
【００７６】
また、計算部の構成と独立してブロック分割、副問題分割を行うことができ、計算負荷の大小、計算部数の増減などに応じて、動的に同じブロックの副問題を移動することが可能となった。
【００７７】
さらには、解析領域の空間を分割したブロック間にｎ層のオーバーラップ領域を設け、１タイムステップ毎に計算領域を１ずつ狭めながら解析を進めることで、ブロックのタイムステップ数ｎにわたる電磁界を他のブロックと独立して求めることが可能となった。
【００７８】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態における分散電磁界解析装置の構成例を示すブロック図である。
【図２】図１に示す分散処理制御部１の構成例を示すブロック図である。
【図３】分散処理制御部１の機能的構成を示すブロック図である。
【図４】分散処理制御部１の処理手順を説明するためのフローチャートである。
【図５】解析領域のブロック分割の一例を示す図である。
【図６】解析領域外と隣接していないブロックの一例を示す図である。
【図７】解析領域外と隣接しているブロックの一例を示す図である。
【図８】ｉ番目の副問題とｉ＋１番目の副問題との相関を示す図である。
【図９】計算部２−１〜２−ｍの機能的構成を示すブロック図である。
【図１０】計算部２−１〜２−ｍの処理手順を説明するためのフローチャートである。
【図１１】計算結果出力部２２の処理手順を説明するためのフローチャートである。
【図１２】ブロック内の電磁界情報とｎ＝１のときのブロックｎ近傍の電磁界情報とを示す図である。
【図１３】ブロック内の電磁界情報とｎ＝２のときのブロックｎ近傍の電磁界情報とを示す図である。
【図１４】ブロック内の電磁界情報とｎ＝３のときのブロックｎ近傍の電磁界情報とを示す図である。
【図１５】ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝１）で計算する電磁界範囲を示す図である。
【図１６】ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝１）で計算する電磁界範囲を示す図である。
【図１７】ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝２）で計算する電磁界範囲を示す図である。
【図１８】ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝２）で計算する電磁界範囲を示す図である。
【図１９】ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝３）で計算する電磁界範囲を示す図である。
【図２０】ｎ＝３のときに計算部２−１〜２−ｍが図１０に示すループＳ３３〜Ｓ３７（ループカウンタｊ＝３）で計算する電磁界範囲を示す図である。
【符号の説明】
【００８０】
１  分散処理制御部、２−１〜２−ｍ  計算部、３  ネットワーク、１１  ブロック分割部、１２  初期化処理部、１３  副問題処理部、１４  計算指示送信部、１５  計算部登録・抹消部、１６  進捗情報更新部、２１  ネットワークインタフェース、２２  計算結果出力部、２３  解析計算部、２４  記憶装置、３１  コンピュータ本体、３２  ディスプレイ装置、３３  ＦＤドライブ、３４  ＦＤ、３５  キーボード、３６  マウス、３７  ＣＤ−ＲＯＭ装置、３８  ＣＤ−ＲＯＭ、３９  ネットワーク通信装置。
【図１】
2006072718.tif 000003
【図２】
2006072718.tif 000004
【図３】
2006072718.tif 000005
【図４】
2006072718.tif 000006
【図５】
2006072718.tif 000007
【図６】
2006072718.tif 000008
【図７】
2006072718.tif 000009
【図８】
2006072718.tif 000010
【図９】
2006072718.tif 000011
【図１０】
2006072718.tif 000012
【図１１】
2006072718.tif 000013
【図１２】
2006072718.tif 000014
【図１３】
2006072718.tif 000015
【図１４】
2006072718.tif 000016
【図１５】
2006072718.tif 000017
【図１６】
2006072718.tif 000018
【図１７】
2006072718.tif 000019
【図１８】
2006072718.tif 000020
【図１９】
2006072718.tif 000021
【図２０】
2006072718.tif 000022