(57)【特許請求の範囲】
【請求項１】
行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータであって、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出する検出部と、
前記検出部によって検出された各配列数のうち最小配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記３次元解析対象データの格子群を転置する転置部と、
前記転置部によって転置された３次元解析対象データを前記演算装置に出力する出力部と、
を有することを特徴とする転置装置。
【請求項２】
前記転置部は、
最小配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最小となる配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする請求項１に記載の転置装置。
【請求項３】
行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータであって、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出する検出部と、
前記検出部によって検出された各配列数のうち最大配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置する転置部と、
前記転置部によって転置された３次元解析対象データを前記演算装置に出力する出力部と、
を有することを特徴とする転置装置。
【請求項４】
前記転置部は、
最小配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする請求項３に記載の転置装置。
【請求項５】
行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータが、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出し、
検出された各配列数のうち最小配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記３次元解析対象データの格子群を転置し、
転置された３次元解析対象データを前記演算装置に出力する、
処理を実行することを特徴とする転置方法。
【請求項６】
行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータが、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出し、
検出された各配列数のうち最大配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置し、
転置された３次元解析対象データを前記演算装置に出力する、
処理を実行することを特徴とする転置方法。
【請求項７】
行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータに、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出し、
検出された各配列数のうち最小配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向に対応する軸、および前記列方向に対応する軸のいずれとも異なる軸の方向となるように、前記３次元解析対象データの格子群を転置し、
転置された３次元解析対象データを前記演算装置に出力する、
処理を実行させることを特徴とする転置プログラム。
【請求項８】
行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータに、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出し、
検出された各配列数のうち最大配列数が、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置し、
転置された３次元解析対象データを前記演算装置に出力する、
処理を実行させることを特徴とする転置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転置装置、転置方法、および転置プログラムに関する。
【背景技術】
【０００２】
従来、３次元の解析空間における電磁界解析を行う手法の一つに、ＦＤＴＤ法（Ｆｉｎｉｔｅ−Ｄｉｆｆｅｒｅｎｃｅ  Ｔｉｍｅ−Ｄｏｍａｉｎ  ｍｅｔｈｏｄ）がある。ＦＤＴＤ法は、マクスウェルの方程式を時間・空間領域における差分方程式に展開し、展開した差分方程式を解くことにより、解析空間の電磁界の値を算出する手法である。
【０００３】
ＦＤＴＤ法は、演算の効率化のために、複数の情報処理装置により並列演算される場合がある。この場合、隣接する２つの空間に対するＦＤＴＤ法の演算が割り振られた２つの情報処理装置は、演算結果を交換することになる。
【０００４】
従来技術として、各情報処理装置の演算能力をシミュレーションにより測定し、演算能力に応じて解析空間を分割して、各情報処理装置に割り振ってＦＤＴＤ法の並列演算を行わせて、電磁界解析を行う技術がある（例えば、下記特許文献１参照）。
【０００５】
また、関連する技術として、解析空間をメッシュ状に分割して、各情報処理装置に割り振ってモンテカルロ法の並列演算を行わせて、複数領域における粒子の分布状態をシミュレーションする技術がある（例えば、下記特許文献２参照）。また、関連する技術として、回路に対するＦＤＴＤ法の適用を効率化する技術がある（例えば、下記特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−５４６４２号公報
【特許文献２】特開２００５−２９２００９号公報
【特許文献３】特許第４６４４７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、所定の装置間では通信できないように接続された複数の情報処理装置にＦＤＴＤ法の並列演算を実行させる場合がある。この場合、通信できるように接続された２つの情報処理装置に、隣接する２つの空間に対するＦＤＴＤ法の演算を割り振ることになるが、解析空間の形状によってはＦＤＴＤ法の演算が割り振られない情報処理装置が生じることがある。
【０００８】
また、任意の装置間で通信できるように接続された複数の情報処理装置にＦＤＴＤ法の並列演算を実行させる場合がある。この場合、隣接する２つの空間に対するＦＤＴＤ法の演算が割り振られた２つの情報処理装置間の演算結果の交換のために、２つの情報処理装置間の接続を制御するルータは、ルーティング処理を実行することになる。そのため、ルーティング処理により、情報処理装置の演算結果の交換の待ち時間が増大し、ＦＤＴＤ法の演算にかかる時間が増大することがある。
【０００９】
本発明は、電磁界解析の効率化を図ることができる転置装置、転置方法、および転置プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御し、３次元解析対象データについて、３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出し、検出された各配列数と、複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、３次元解析対象データの格子群を転置し、転置された３次元解析対象データを演算装置に出力する転置装置、転置方法、および転置プログラムが提案される。
【発明の効果】
【００１１】
本発明の一側面によれば、電磁界解析の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、転置装置による解析空間のデータの転置例を示す説明図である。
【図２】図２は、実施の形態にかかる電磁界解析システムの一例を示す説明図である。
【図３】図３は、実施の形態にかかる転置装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、転置装置１００の機能的構成例を示すブロック図である。
【図５】図５は、転置装置１００による解析空間Ａのデータの転置の実施例１を示す説明図である。
【図６】図６は、剰余単位空間Ｂの割り振り順序を示す説明図である。
【図７】図７は、実行命令列の一例を示す説明図である。
【図８】図８は、演算素子ＰＥ間のデータ交換を示す説明図である。
【図９】図９は、解析空間Ａ全体の電磁界解析結果の出力を示す説明図である。
【図１０】図１０は、実施例１にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図（その１）である。
【図１１】図１１は、実施例１にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図（その２）である。
【図１２】図１２は、実施例１にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図（その３）である。
【図１３】図１３は、実施例１にかかる転置装置１００による転置処理の詳細な処理手順を示すフローチャートである。
【図１４】図１４は、転置装置１００による方向変換パターン決定処理の詳細な処理手順を示すフローチャートである。
【図１５】図１５は、転置装置１００による解析空間Ａのデータの転置の実施例２を示す説明図（その１）である。
【図１６】図１６は、転置装置１００による解析空間Ａのデータの転置の実施例２を示す説明図（その２）である。
【図１７】図１７は、実施例２にかかる転置装置１００による転置処理の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかる転置装置、転置方法、および転置プログラムの実施の形態を詳細に説明する。転置装置は、３次元直交座標系に存在する解析空間のデータをＹ軸とＺ軸とから分割し、分割した空間を複数の演算素子に割り振って、複数の演算素子に解析空間に対するＦＤＴＤ法による電磁界解析の並列演算を実行させるコンピュータである。
【００１４】
演算素子の各々は、電磁界解析の演算結果になる電磁界の値を保持する記憶装置を有する。また、演算素子の各々は、ＦＤＴＤ法による電磁界解析のために、過去の時点の電磁界の値を取得することになる。ここで、演算素子の各々は、分割されたＹ軸とＺ軸とに関する過去の時点の電磁界の値は他の演算素子から取得することになるが、分割されていないＸ軸に関する過去の時点の電磁界の値は各々が有する記憶装置から取得することができる。よって、演算素子の各々は、Ｘ軸の方向に関する電磁界の値を、Ｙ軸およびＺ軸の電磁界の値より、効率的に算出することができる。
【００１５】
そのため、転置装置は、解析空間の大きさが最大になる方向が、演算素子が効率的に算出することができるＸ軸方向に一致するように、解析空間のデータを転置する。そして、転置装置は、転置後の解析空間をＹ軸とＺ軸とから分割して、複数の演算素子に割り振って、電磁界解析の並列演算を実行させる。これにより、転置装置は、演算素子が効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子は、転置後の解析空間の電磁界解析にかかる時間を、転置前の解析空間の電磁界解析にかかる時間より低減することができる。
【００１６】
ここでは、転置装置により解析空間はＹ軸とＺ軸とから分割され、演算素子はＸ軸方向に関する電磁界の値を他の軸方向に関する電磁界の値より効率よく算出することができるとしたが、これに限らない。例えば、転置装置は解析空間をＸ軸とＹ軸とから分割してもよい。この場合、演算装置は、Ｚ軸方向に関する電磁界の値を他の軸方向に関する電磁界の値より効率よく算出することができる。
【００１７】
図１は、転置装置による解析空間のデータの転置例を示す説明図である。図１において、転置装置１００は、３次元直交座標系に存在する解析空間Ａについて、複数の演算素子ＰＥを有する演算装置ＣにＦＤＴＤ法による電磁界解析の並列演算を実行させ、解析空間Ａの電磁界解析を行う。ここで、解析空間Ａは、Ｘ軸、Ｙ軸、およびＺ軸により表される３次元直交座標系に存在する単位空間Ｂの集合である。単位空間Ｂは、いわゆる「Ｙｅｅ格子」である。単位空間Ｂの一辺の長さの単位は、例えば、メートルである。
【００１８】
図１の（Ａ）に、電磁界解析の並列演算を実行する複数の演算素子ＰＥを有する演算装置Ｃの一例を示す。（Ａ）の例では、演算装置Ｃが有する複数の演算素子ＰＥは、「５行４列」の２次元行列状に配列されている。各々の演算素子ＰＥは、隣接する他の演算素子ＰＥと接続されている。また、各々の演算素子ＰＥは、ワークエリアになったり電磁界解析の演算結果を保持したりする記憶装置を有する。電磁界解析の演算結果は、解析空間Ａ内の或る座標における電磁界の値である。
【００１９】
また、各々の演算素子ＰＥは、Ｘ軸の方向に関する電磁界の値を、Ｙ軸およびＺ軸の電磁界の値より、効率的に算出することができるとする。以降、電磁界の値を効率的に算出することができるＸ軸を、電磁界解析が効率化されたＸ軸と表す。
【００２０】
図１の（Ｂ）に、転置装置１００による解析空間Ａのデータの転置例を示す。（Ｂ）の例では、解析空間Ａは、或る方向Ｖ１に１０段、或る方向Ｖ２に１６段、或る方向Ｖ３に４段積まれた単位空間Ｂの集合である。転置装置１００による転置前では、３次元座標系において、解析空間Ａは、方向Ｖ１がＸ軸方向に一致し、方向Ｖ２がＹ軸方向に一致し、方向Ｖ３がＺ軸方向に一致するように配置されている。
【００２１】
以降、各方向Ｖ１〜Ｖ３の段数を、各方向Ｖ１〜Ｖ３の格子数と表す。そして、方向Ｖ１の格子数「１０」、方向Ｖ２の格子数「１６」、および方向Ｖ３の格子数「４」であれば、各方向Ｖ１〜Ｖ３の格子数「１０，１６，４」と表す。また、３次元座標系に解析空間Ａを配置した場合に、各軸方向に一致する方向Ｖ１〜Ｖ３の格子数を、各軸方向の格子数と表す。そして、Ｘ方向の格子数「１０」、Ｙ軸方向の格子数「１６」、およびＺ軸方向の格子数「４」であれば、各軸方向の格子数「１０，１６，４」と表す。
【００２２】
ここで、転置装置１００は、解析空間Ａの大きさが最大になる方向が、電磁界解析が効率化されたＸ軸方向になるように、解析空間Ａのデータを転置する。解析空間Ａのデータは、解析空間Ａ内の各々の単位空間Ｂにおける電磁界の変数である。そして、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子ＰＥに電磁界解析を実行させる。
【００２３】
転置装置１００は、具体的には、例えば、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「１０，１６，４」の中から、最大の格子数「１６」を特定し、最大の格子数になる方向Ｖ２を特定する。次に、転置装置１００は、特定された方向Ｖ２が電磁界解析が効率化されたＸ軸方向になるように、方向Ｖ２に関する電磁界の変数と、Ｘ軸方向に一致する方向Ｖ１に関する電磁界の変数と、を交換することにより、解析空間Ａのデータを転置する。結果として、転置装置１００は、３次元座標系の各軸方向の格子数が「１０，１６，４」になる解析空間Ａのデータを転置し、３次元座標系の各軸方向の格子数が「１６，１０，４」になる解析空間Ａのデータにする。
【００２４】
次に、転置装置１００は、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置１００は、各々の演算素子ＰＥに、当該演算素子ＰＥの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
【００２５】
転置装置１００は、具体的には、例えば、各軸方向の格子数が「１６，１０，４」になる解析空間Ａを、「５行４列」の演算素子ＰＥの行列に対応するように、格子数が「１６，２，１」になる２０個の空間に分割する。ここでは、演算素子ＰＥの行列の行方向と列方向とが、各々、Ｙ軸方向とＺ軸方向とに対応している。そして、転置装置１００は、各々の演算素子ＰＥに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
【００２６】
これにより、転置装置１００は、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子ＰＥは、転置後の解析空間Ａの電磁界解析にかかる時間を、転置前の解析空間Ａの電磁界解析にかかる時間より低減することができる。
【００２７】
また、転置装置１００は、演算素子ＰＥの行方向の配列数と列方向の配列数とから、演算素子ＰＥの使用効率が向上するように解析空間Ａのデータを転置してもよい。演算素子ＰＥの使用効率が向上するように解析空間Ａのデータを転置する具体例については、図５を用いて、または、図１４および図１５を用いて後述する。
【００２８】
（電磁界解析システムの一例）
図２は、実施の形態にかかる電磁界解析システムの一例を示す説明図である。電磁界解析システム２００は、転置装置１００と１または複数の演算装置Ｃとユーザ端末２０１とを含む。転置装置１００は、演算装置Ｃとユーザ端末２０１と接続されている。
【００２９】
転置装置１００は、ユーザ端末２０１から、転置前の解析空間Ａの座標値や、当該座標における電磁界の値を受信する。次に、転置装置１００は、演算素子ＰＥの行方向および列方向の配列数と各軸方向の格子数とを用いて、各軸方向の電磁界の変数を交換して、解析空間Ａのデータを転置する。そして、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切り、演算素子ＰＥに、当該演算素子ＰＥの配列位置に対応する升目内に存在する空間の電磁界解析を実行させる。
【００３０】
演算装置Ｃは、制御部２０２と演算部２０３とを有する。制御部２０２と演算部２０３とは、ブリッジ２０４を介して接続されている。制御部２０２は、転置装置１００により分割された空間のデータを受信し、演算素子ＰＥに割り振る。演算部２０３は、行列状に配列された演算素子ＰＥを含む。演算部２０３は、割り振られた空間のデータを用いて、割り振られた空間の電磁界解析を実行する。各演算素子ＰＥは、各々、記憶装置Ｍを有し、ワークエリアまたは電磁界解析の演算結果の格納領域として使用する。
【００３１】
ユーザ端末２０１は、ユーザ端末２０１の利用者から、解析空間Ａの座標値や当該座標における電磁界の値を受け付ける。ユーザ端末２０１は、受け付けた解析空間Ａの座標値や当該座標における電磁界の値を転置装置１００に送信する。
【００３２】
ここでは、演算部２０３内の行列状に配列された演算素子ＰＥは、４個であるが、これに限らない。例えば、演算部２０３内の行列状に配列された演算素子ＰＥは、６個であってもよい。また、演算装置Ｃは、演算部２０３を６個含むため、演算素子ＰＥを２４個含むがこれに限らない。例えば、演算装置Ｃは、演算素子ＰＥを２４個含む演算部２０３を１個含んでもよい。また、演算装置Ｃは、演算素子ＰＥを２個含む演算部２０３を１２個含んでもよい。また、演算装置Ｃは、２４個以外の個数、演算素子ＰＥを含んでもよい。
【００３３】
（転置装置１００のハードウェア構成例）
図３は、実施の形態にかかる転置装置１００のハードウェア構成例を示すブロック図である。図３において、転置装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３２０によってそれぞれ接続されている。
【００３４】
ここで、ＣＰＵ３０１は、転置装置１００の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御に従って磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００３５】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御に従って光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３６】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、例えば、液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３７】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００３８】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３９】
スキャナ３１２は、画像を光学的に読み取り、転置装置１００内に画像データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。なお、光ディスクドライブ３０６、光ディスク３０７、ディスプレイ３０８、キーボード３１０、マウス３１１、スキャナ３１２、およびプリンタ３１３の少なくともいずれか１つは、なくてもよい。
【００４０】
（転置装置１００の機能的構成例）
次に、図４を用いて、転置装置１００の機能的構成例について説明する。
【００４１】
図４は、転置装置１００の機能的構成例を示すブロック図である。転置装置１００は、検出部４０１と、転置部４０２と、出力部４０３と、を含む構成である。検出部４０１と、転置部４０２と、出力部４０３とは、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。または、検出部４０１と、転置部４０２と、出力部４０３とは、Ｉ／Ｆ３０９により、その機能を実現する。
【００４２】
転置装置１００は、演算素子ＰＥが有する演算素子ＰＥの電磁界解析が効率化するように解析空間Ａのデータを転置する。また、転置装置１００は、演算素子ＰＥの行方向の配列数と列方向の配列数とから、演算素子ＰＥの使用効率が向上するように解析空間Ａのデータを転置してもよい。
【００４３】
まず、演算素子ＰＥの電磁界解析が効率化するように解析空間Ａのデータを転置する場合の転置装置１００の機能について説明する。演算素子ＰＥの電磁界解析が効率化するように解析空間Ａのデータを転置する場合の転置装置１００の機能は、例えば、検出部４０１と転置部４０２と出力部４０３とにより実現される。演算素子ＰＥの電磁界解析が効率化するように解析空間Ａのデータを転置する場合の転置装置１００の処理は、例えば、図１を用いて説明した処理である。
【００４４】
検出部４０１は、３次元解析対象データについて、３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出する。ここで、３次元解析対象データは、例えば、３次元座標系に存在する格子状の解析空間Ａに含まれる単位空間Ｂ群の各々における電磁界の初期条件を示すデータである。電磁界の初期条件を示すデータは、例えば、単位空間Ｂ群の各々における電磁界の初期値である。各軸の方向の格子の配列数は、例えば、解析空間Ａの各方向Ｖ１〜Ｖ３が各軸方向に一致するように配置された場合に、各方向Ｖ１〜Ｖ３に連続して存在する解析空間Ａ内の単位空間Ｂの個数であり、上述した格子数である。
【００４５】
検出部４０１は、図１の例では、図１に示した解析空間Ａについて、各軸方向に一致するように配置された解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「１０，１６，４」を検出する。これにより、転置部４０２は、３次元解析対象データを転置することができる。検出されたデータは、例えば、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４６】
転置部４０２は、検出部４０１によって検出された各配列数と、複数の演算素子ＰＥのうち行方向の演算素子ＰＥ群の配列数および列方向の演算素子ＰＥ群の配列数と、に基づいて、３次元解析対象データの格子群を転置する。ここで、複数の演算素子ＰＥは、例えば、行列状に配列され、各々に記憶装置Ｍが接続されている。複数の演算素子ＰＥは、例えば、解析対象データの電磁界解析処理を実行する演算装置Ｃが有する。転置部４０２は、具体的には、例えば、最大配列数になる３次元解析対象データの格子列の方向が、第１軸、第２軸および第３軸のうち、行方向および列方向のいずれにも対応していない軸の方向となるように、３次元解析対象データの格子群を転置する。
【００４７】
転置部４０２は、図１の例では、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「１０，１６，４」の中から、最大の格子数「１６」を特定し、最大の格子数になる方向Ｖ２を特定する。次に、転置部４０２は、特定された方向Ｖ２が電磁界解析が効率化されたＸ軸方向になるように、方向Ｖ２に関する電磁界の変数と方向Ｖ１に関する電磁界の変数とを交換することにより、解析空間Ａのデータを転置する。そして、転置部４０２は、３次元座標系の各軸方向の格子数が「１０，１６，４」になる解析空間Ａのデータを転置し、３次元座標系の各軸方向の格子数が「１６，１０，４」になる解析空間Ａのデータにする。
【００４８】
これにより、転置部４０２は、演算素子ＰＥによる電磁界解析を効率化させることができる解析対象データを生成することができる。転置されたデータは、例えば、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４９】
出力部４０３は、転置部４０２によって転置された３次元解析対象データを演算装置Ｃに出力する。出力部４０３は、具体的には、例えば、転置後の解析空間Ａを、演算素子ＰＥの行列の配列位置に対応する空間に分割する。次に、出力部４０３は、分割された配列位置に対応する空間を、当該配列位置に存在する演算素子ＰＥに出力する。これにより、出力部４０３は、演算素子ＰＥに、分割された空間の電磁界解析を実行させることができる。
【００５０】
出力形式としては、例えば、ディスプレイ３０８への表示、プリンタ３１３への印刷出力、Ｉ／Ｆ３０９による外部装置への送信がある。また、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶することとしてもよい。
【００５１】
次に、演算素子ＰＥの行方向の配列数と列方向の配列数とから、演算素子ＰＥの使用効率が向上するように解析空間Ａのデータを転置する場合の転置装置１００の機能について説明する。演算素子ＰＥの使用効率が向上するように解析空間Ａのデータを転置する場合の転置装置１００の機能は、例えば、検出部４０１と転置部４０２と出力部４０３とにより実現される。
【００５２】
ここで、検出部４０１と出力部４０３との機能は、上述した演算素子ＰＥの電磁界解析が効率化するように解析空間Ａのデータを転置する場合の機能と同様のため、説明を省略する。演算素子ＰＥの使用効率が向上するように解析空間Ａのデータを転置する場合の転置装置１００の処理の具体例については、図５を用いて、または、図１４および図１５を用いて後述する。
【００５３】
転置部４０２は、各配列数のうち最小配列数が、行方向の演算素子ＰＥ群の配列数および列方向の演算素子ＰＥ群の配列数よりも大きいか否かを判定する。次に、転置部４０２は、大きいと判定された場合、最大配列数になる３次元解析対象データの格子列の方向が、第１軸、第２軸および第３軸のうち、行方向および列方向のいずれにも対応していない軸の方向となるように、３次元解析対象データの格子群を転置する。
【００５４】
そして、転置部４０２は、第１軸、第２軸および第３軸のうち、行方向の演算素子ＰＥ群の配列数および列方向の演算素子ＰＥ群の配列数のうち配列数が最小となる配列方向に対応する軸の方向を特定する。次に、転置部４０２は、最小配列数になる３次元解析対象データの格子列の方向が、特定した方向となるように、３次元解析対象データの格子群を転置する。
【００５５】
ここで、３次元座標系の各軸方向の格子数「８，６，１０」、行方向の演算素子ＰＥの配列数「４」、列方向の演算素子ＰＥ群の配列数「３」である場合を例に挙げる。ここでは、演算素子ＰＥの行列の行方向と列方向とが、各々、Ｙ軸方向とＺ軸方向とに対応しているとする。この場合、転置部４０２は、具体的には、例えば、解析空間Ａの各方向の格子数の中から、最大格子数「１０」と最小格子数「６」を特定する。次に、転置部４０２は、解析空間Ａの方向Ｖ１〜Ｖ３のうち、最大格子数「１０」になる方向がＸ軸方向となり、最小格子数「６」になる方向がＺ軸方向となるように、解析空間Ａのデータを転置する。結果として、転置部４０２は、各軸方向の格子数が「８，６，１０」になる解析空間Ａを、各軸方向の格子数が「１０，８，６」になる解析空間Ａのデータにする。
【００５６】
これにより、転置部４０２は、演算素子ＰＥによる電磁界解析を効率化させ、かつ、演算素子ＰＥの使用効率を向上させることができる解析対象データを生成することができる。転置されたデータは、例えば、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００５７】
また、転置部４０２は、各配列数のうち最大配列数が、行方向の演算素子ＰＥ群の配列数および列方向の演算素子ＰＥ群の配列数よりも小さいか否かを判定する。次に、転置部４０２は、小さいと判定された場合、第１軸、第２軸および第３軸のうち、行方向の演算素子ＰＥ群の配列数および列方向の演算素子ＰＥ群の配列数のうち配列数が最大となる配列方向に対応する軸の方向を特定する。そして、転置部４０２は、最大配列数になる３次元解析対象データの格子列の方向が、特定した方向となるように、３次元解析対象データの格子群を転置する。
【００５８】
次に、転置部４０２は、最小配列数になる３次元解析対象データの格子列の方向が、第１軸、第２軸および第３軸のうち、行方向および列方向のいずれにも対応していない軸の方向となるように、３次元解析対象データの格子群を転置する。
【００５９】
ここで、３次元座標系の各軸方向の格子数「３，２，２」、行方向の演算素子ＰＥ群の配列数「４」、列方向の演算素子ＰＥ群の配列数「３」である場合を例に挙げる。ここでは、演算素子ＰＥの行列の行方向と列方向とが、各々、Ｙ軸方向とＺ軸方向とに対応しているとする。この場合、転置部４０２は、具体的には、例えば、解析空間Ａの各方向の格子数の中から、最大格子数「３」と最小格子数「２」を特定する。次に、転置部４０２は、解析空間Ａの方向Ｖ１〜Ｖ３のうち、最大格子数「３」になる方向がＹ軸方向となり、最小格子数「２」になる方向がＸ軸方向となるように、解析空間Ａのデータを転置する。結果として、転置部４０２は、各軸方向の格子数が「３，２，２」になる解析空間Ａを、各軸方向の格子数が「２，３，２」になる解析空間Ａのデータにする。
【００６０】
これにより、転置部４０２は、演算素子ＰＥによる電磁界解析を効率化させ、かつ、演算素子ＰＥの使用効率を向上させることができる解析対象データを生成することができる。転置されたデータは、例えば、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００６１】
転置部４０２は、行方向の演算素子ＰＥ群および列方向の演算素子ＰＥ群のうち演算素子ＰＥが多い第１の配列数が、各配列数のうち最小配列数よりも大きいか否かを判定する。また、転置部４０２は、行方向の演算素子ＰＥ群および列方向の演算素子ＰＥ群のうち演算素子ＰＥが少ない第２の配列数が、各配列数のうち最大配列数よりも小さいか否かを判定する。ここで、転置部４０２は、第１の配列数が最小配列数よりも大きく、かつ、第２の配列数が最大配列数よりも小さいと判定された場合に、以降の処理を実行する。
【００６２】
転置部４０２は、第１軸、第２軸および第３軸のうち、第１の配列数の配列方向に対応する軸の方向を特定する。次に、転置部４０２は、最大配列数以下かつ最小配列数以上の中間配列数、および最大配列数のうち、第１の配列数に近い配列数になる３次元解析対象データの格子列の方向が、特定した方向となるように、３次元解析対象データの格子群を転置する。そして、転置部４０２は、第１軸、第２軸および第３軸のうち、第２の配列数の配列方向に対応する軸の方向を特定する。次に、転置部４０２は、中間配列数および最小配列数のうち、第２の配列数に近い配列数になる３次元解析対象データの格子列の方向が、特定した方向となるように、３次元解析対象データの格子群を転置する。
【００６３】
ここで、３次元座標系の各軸方向の格子数「６，８，２」、行方向の演算素子ＰＥ群の配列数「４」、列方向の演算素子ＰＥ群の配列数「３」である場合を例に挙げる。ここでは、演算素子ＰＥの行列の行方向と列方向とが、各々、Ｙ軸方向とＺ軸方向とに対応しているとする。この場合、転置部４０２は、具体的には、例えば、解析空間Ａの各方向の格子数の中から、最大格子数「８」と中間格子数「６」と最小格子数「２」を特定する。次に、転置部４０２は、最大格子数「８」と中間格子数「６」とのうち、行方向の格子数「４」に近い格子数「６」になる方向がＹ軸方向となるように、解析空間Ａのデータを転置する。
【００６４】
そして、転置部４０２は、中間格子数「６」と最小格子数「２」とのうち、Ｙ軸方向となるように転置されておらず、かつ、列方向の配列数「３」に近い格子数「２」の方向がＺ軸方向となるように、解析空間Ａのデータを転置する。結果として、転置部４０２は、各軸方向の格子数が「６，８，２」になる解析空間Ａを、各軸方向の格子数が「８，６，２」になる解析空間Ａのデータにする。
【００６５】
これにより、転置部４０２は、演算素子ＰＥによる電磁界解析を効率化させ、かつ、演算素子ＰＥの使用効率を向上させることができる解析対象データを生成することができる。転置されたデータは、例えば、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００６６】
（実施例１）
次に、図５を用いて、転置装置１００による解析空間Ａのデータの転置の実施例１について説明する。実施例１は、演算素子ＰＥの使用効率が向上するように解析空間Ａの単位空間Ｂを転置する具体例である。
【００６７】
図５は、転置装置１００による解析空間Ａのデータの転置の実施例１を示す説明図である。図５において、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数は「８，１０，６」であり、方向Ｖ１がＸ軸方向に一致し、方向Ｖ２がＹ軸方向に一致し、方向Ｖ３がＺ軸方向に一致するように配置されている。そのため、各軸方向の格子数は「８，１０，６」である。また、複数の演算素子ＰＥは、「４行３列」の２次元行列状に配列されている。ここでは、演算素子ＰＥの行列の行方向と列方向とが、各々、Ｙ軸方向とＺ軸方向とに対応しているとする。
【００６８】
ここで、転置装置１００は、解析空間Ａの大きさが最大になる方向が、電磁界解析が効率化されたＸ軸方向になるように、解析空間Ａのデータを転置する。次に、転置装置１００は、解析空間Ａの大きさが最小になる方向が、複数の演算素子ＰＥの行方向と列方向とのうち、配列数が大きい方向に対応する軸方向になるように、解析空間Ａのデータを転置する。そして、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子ＰＥに電磁界解析を実行させる。
【００６９】
転置装置１００は、具体的には、例えば、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「８，１０，６」の中から、最大の格子数「１０」を特定し、最大の格子数になる方向Ｖ２を特定する。次に、転置装置１００は、特定された方向Ｖ２が電磁界解析が効率化されたＸ軸方向になるように、方向Ｖ２に関する電磁界の変数と、Ｘ軸方向に一致する方向Ｖ１に関する電磁界の変数と、を交換することにより、解析空間Ａのデータを転置する。
【００７０】
次に、転置装置１００は、転置後の解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「１０，８，６」の中から、最小の格子数「６」を特定し、最小の格子数になる方向Ｖ３を特定する。次に、転置装置１００は、特定された方向Ｖ３が、複数の演算素子ＰＥの行方向と列方向のうち、配列数が小さい方向に対応するＺ軸方向になるように、解析空間Ａのデータを転置する。ここでは、方向Ｖ３はＺ軸方向に一致しているため、解析空間Ａのデータは転置されない。結果として、転置装置１００は、３次元座標系の各軸方向の格子数が「８，１０，６」になる解析空間Ａのデータを転置し、３次元座標系の各軸方向の格子数が「１０，８，６」になる解析空間Ａのデータにする。
【００７１】
次に、転置装置１００は、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置１００は、各々の演算素子ＰＥに、当該演算素子ＰＥの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
【００７２】
転置装置１００は、具体的には、例えば、各軸方向の格子数が「１０，８，６」になる解析空間Ａを、「４行３列」の複数の演算素子ＰＥの配列位置に対応するように、格子数が「１０，２，２」になる１２個の空間に分割する。そして、転置装置１００は、各々の演算素子ＰＥに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
【００７３】
これにより、転置装置１００は、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子ＰＥは、転置後の解析空間Ａの電磁界解析にかかる時間を、転置前の解析空間Ａの電磁界解析にかかる時間より低減することができる。
【００７４】
また、転置装置１００は、各々の演算素子ＰＥに、転置前では最大４８個の単位空間Ｂを割り振ったが、転置後では最大４０個の単位空間Ｂを割り振ることになる。そのため、転置装置１００は、各々の演算素子ＰＥの処理量を平均化し、各々の演算素子ＰＥの使用効率を向上させることができる。
【００７５】
（剰余単位空間Ｂの割り振り順序）
次に、図６を用いて、剰余単位空間Ｂの割り振り順序について説明する。剰余単位空間Ｂとは、複数の演算素子ＰＥの配列位置に対応するように解析空間Ａを分割する場合に、同数に分割できずに余った単位空間Ｂである。
【００７６】
図６は、剰余単位空間Ｂの割り振り順序を示す説明図である。図６の例では、複数の演算素子ＰＥは、「４行３列」の２次元行列状に配列されている。図５に示した転置前の解析空間Ａを例に挙げると、転置装置１００は、行方向の配列数「４」に対してＹ軸方向の格子数が「１０」であるため、同数に分割することができない。
【００７７】
この場合、転置装置１００は、複数の演算素子ＰＥの行列の内側に配列された演算素子ＰＥに、多くの単位空間Ｂが割り振られるように、解析空間Ａを分割する。転置装置１００は、例えば、複数の演算素子ＰＥのうち、行列の内側に配列された演算素子ＰＥには４０個の単位空間Ｂが割り振られ、行列の外側に配列された演算素子ＰＥには３２個の単位空間Ｂが割り振られるように解析空間Ａを分割する。
【００７８】
これにより、転置装置１００は、電磁界解析における境界吸収条件の演算を実行する行列の外側に配列された演算素子ＰＥの処理量を、境界吸収条件の演算を実行しない行列の内側に配列された演算素子ＰＥの処理量より少なくする。結果として、境界吸収条件の演算の処理量を含め、各々の演算素子ＰＥの処理量を平均化することができる。
【００７９】
（演算素子ＰＥによる電磁界解析）
次に、図７〜図９を用いて、転置装置１００が演算素子ＰＥに実行させる電磁界解析について説明する。転置装置１００は、演算素子ＰＥに、下記式（１）〜式（６）に示すＦＤＴＤ法の演算式を解かせることにより、割り振った空間に含まれる各単位空間Ｂにおける電磁界の値を算出させる。
【００８０】
ここで、ＥｘはＸ軸方向の電界の値、ＥｙはＹ軸方向の電界の値、ＥｚはＺ軸方向の電界の値である。また、ＨｘはＸ軸方向の磁界の値、ＨｙはＹ軸方向の磁界の値、ＨｚはＺ軸方向の磁界の値である。また、ｔは、時刻である。ｉ，ｊ，ｋは、各々、Ｘ軸、Ｙ軸、Ｚ軸の座標値である。α，βは、定数である。
【００８１】
【数１】
0005853794.tif 000002
【００８２】
【数２】
0005853794.tif 000003
【００８３】
【数３】
0005853794.tif 000004
【００８４】
【数４】
0005853794.tif 000005
【００８５】
【数５】
0005853794.tif 000006
【００８６】
【数６】
0005853794.tif 000007
【００８７】
転置装置１００は、具体的には、例えば、図７に示す実行命令列を、演算素子ＰＥに送信することによって、演算素子ＰＥに割り振った空間の電磁界解析を実行させる。次に、図７を用いて実行命令列について説明する。
【００８８】
図７は、実行命令列の一例を示す説明図である。図７に示すように、まず、転置装置１００は、Ｅｘを算出する実行命令列を生成する。Ｅｘを算出する実行命令列には、例えば、上記式（１）に代入する定数αｘ，βｘや電磁界の値Ｅｘ，Ｈｚ，Ｈｙを読み出すリード命令が含まれる（図７の例では、「ＳＤＲＡＭ  ＲＥＡＤ  ［］」と表す）。
【００８９】
また、Ｅｘを算出する実行命令列には、例えば、読み出した値を、上記式（１）に代入して、電界の値Ｅｘを算出する演算命令が含まれる（図７の例では、「ＣＡＲＣ」と表す）。また、Ｅｘを算出する実行命令列には、例えば、算出した電界の値Ｅｘを記憶装置Ｍに書き込むライト命令が含まれる（図７の例では、「ＳＤＲＡＭ  ＷＲＩＴＥ  ［］」と表す）。
【００９０】
これにより、演算素子ＰＥは、読み出し命令に従って、時刻「ｔ＝０」における電界の値Ｅｘ，Ｅｙ，Ｅｚの初期値と、時刻「ｔ＝１／２」における磁界の値Ｈｘ，Ｈｙ，Ｈｚの初期値と、を記憶装置Ｍから読み出す。次に、演算素子ＰＥは、演算命令に従って、上記式（１）〜式（３）に、読み出した電磁界の値Ｅｘ，Ｅｙ，Ｅｚ，Ｈｘ，Ｈｙ，Ｈｚを代入する。そして、演算素子ＰＥは、時刻「ｔ＝１」における電界の値Ｅｘ，Ｅｙ，Ｅｚを算出する。
【００９１】
次に、演算素子ＰＥは、読み出し命令に従って、時刻「ｔ＝１」における電界の値Ｅｘ，Ｅｙ，Ｅｚと、時刻「ｔ＝１／２」における磁界の値Ｈｘ，Ｈｙ，Ｈｚの初期値と、を記憶装置Ｍから読み出す。次に、演算素子ＰＥは、演算命令に従って、上記式（４）〜式（６）に、読み出した電磁界の値Ｅｘ，Ｅｙ，Ｅｚ，Ｈｘ，Ｈｙ，Ｈｚを代入し、時刻「ｔ＝１＋１／２」における磁界の値Ｈｘ，Ｈｙ，Ｈｚを算出する。このように、演算素子ＰＥは、実行命令列に従って、以上の演算を繰り返し、電界の値と磁界の値とを交互に算出することにより、規定の時刻における電磁界の値を算出する。
【００９２】
規定の時刻は、例えば、ユーザ端末２０１の利用者によりユーザ端末２０１に入力され、ユーザ端末２０１から転置装置１００に送信され、転置装置１００により演算素子ＰＥに送信された電磁界解析の終了時刻である。
【００９３】
ここで、演算素子ＰＥは、前回の時刻における隣接する単位空間Ｂの電磁界の値を式（１）〜式（６）に代入することにより、今回の時刻における電磁界の値を算出している。そのため、演算素子ＰＥは、隣接する演算素子ＰＥと、前回の時刻における電磁界の値を交換する場合がある。
【００９４】
Ｅｘを算出する実行命令列には、例えば、算出した電界の値Ｅｘを、隣接する演算素子ＰＥに送信する送信命令が含まれる（図７の例では、「ＦＰＧＡデータ転送（送信）」と表す）。また、Ｅｘを算出する実行命令列には、例えば、隣接する演算素子ＰＥにより算出された電界の値Ｅｘを受信する受信命令が含まれる（図７の例では、「ＦＰＧＡデータ転送（受信）」と表す）。次に、図８を用いて、演算素子ＥＰが、実行命令列に従って、隣接する演算素子ＰＥ間において、電磁界の値を交換する場合について説明する。
【００９５】
図８は、演算素子ＰＥ間のデータ交換を示す説明図である。図８に示すように、演算素子ＰＥ１〜ＰＥ１６が、各々の単位空間Ｂの電磁界解析を実行している。各演算素子ＰＥは、転置装置１００によって分割された境界に存在する単位空間Ｂの電磁界について、データ交換を行う。
【００９６】
例えば、演算素子ＰＥ１と演算素子ＰＥ２とは、演算素子ＰＥ間において、隣接する単位空間ＢのＺ軸方向に関する電磁界の値Ｅｚ，Ｈｚを交換する。これにより、演算素子ＰＥは、隣接する演算素子ＰＥの演算結果を取得し、電磁界解析を実行することができる。
【００９７】
ここで、転置装置１００は、各々の演算素子ＰＥの電磁界解析の実行が終了すると、各々の演算素子ＰＥの電磁界解析結果を取得し、解析空間Ａ全体の電磁界解析結果を出力する。そのため、図７に示した実行命令列には、例えば、算出した電磁界の値を転置装置１００に送信する送信命令が含まれる（図７の例では、「演算結果出力」と表す）。次に、図９を用いて解析空間Ａ全体の電磁界解析結果の出力について説明する。
【００９８】
図９は、解析空間Ａ全体の電磁界解析結果の出力を示す説明図である。図９に示すように、転置装置１００は、解析空間ＡのＹ軸方向の電磁界の値とＺ軸方向の電磁界の値とを交換した解析空間Ａを分割して、４つの演算素子ＰＥに割り振ったとする。
【００９９】
演算素子ＰＥは、実行命令列に従って割り振られた単位空間Ｂの電磁界の値を算出すると、送信命令に従って算出された電磁界の値を転置装置１００に送信する。ここで、演算素子ＰＥは、転置装置１００により交換されたＹ軸およびＺ軸方向の電磁界の値を、交換し直してもよい。
【０１００】
転置装置１００は、演算素子ＰＥから電磁界の値を受信すると、受信した電磁界の値をマージして、解析空間Ａ全体の電磁界の値を生成する。そして、転置装置１００は、生成した電磁界の値を出力する。これにより、転置装置１００の利用者は、解析空間Ａの電磁界の値を取得することができる。
【０１０１】
（実施例１にかかる電磁界解析処理の詳細な処理手順）
次に、図１０〜図１２を用いて、実施例１にかかる電磁界解析処理の詳細な処理手順について説明する。
【０１０２】
図１０〜図１２は、実施例１にかかる電磁界解析処理の詳細な処理手順を示すシーケンス図である。図１０に示すように、ユーザ端末２０１は、解析条件の入力を受け付ける（ステップＳ１００１）。次に、ユーザ端末２０１は、受け付けた解析条件を転置装置１００に送信する（ステップＳ１００２）。
【０１０３】
そして、転置装置１００は、ユーザ端末２０１から解析条件を受信すると、図１３または図１７に示す転置処理を実行する（ステップＳ１００３）。次に、転置装置１００は、演算装置Ｃの制御部２０２に、転置処理による転置後の解析空間Ａを送信する（ステップＳ１００４）。そして、制御部２０２は、解析空間Ａを受信すると、解析空間Ａの電磁界解析に使用するワークエリアを確保する（ステップＳ１００５）。
【０１０４】
次に、転置装置１００は、電磁界解析の実行命令列を生成する（ステップＳ１００６）。そして、転置装置１００は、生成された実行命令列を演算装置Ｃの制御部２０２に送信する（ステップＳ１００７）。
【０１０５】
次に、制御部２０２は、初期化処理を実行する（ステップＳ１００８）。そして、制御部２０２は、受信した実行命令列を演算部２０３に割り振る（ステップＳ１００９）。次に、演算部２０３は、初期値を設定する（ステップＳ１０１０）。そして、制御部２０２は、演算を実行する（ステップＳ１０１１）。次に、図１１の処理に移行する。
【０１０６】
図１１に示すように、演算部２０３は、解析空間Ａの電界の値を算出する（ステップＳ１１０１）。次に、演算部２０３は、演算素子ＰＥ間において算出された電界の値を交換する（ステップＳ１１０２）。
【０１０７】
そして、演算部２０３は、解析空間Ａの磁界の値を算出する（ステップＳ１１０３）。次に、演算部２０３は、演算素子ＰＥ間において算出された磁界の値を交換する（ステップＳ１１０４）。そして、演算部２０３は、算出された電磁界の値を制御部２０２に送信する（ステップＳ１１０５）。
【０１０８】
次に、制御部２０２は、電磁界の値を受信すると、受信した電磁界の値に逆転置処理を実行する（ステップＳ１１０６）。そして、制御部２０２は、逆転置処理を実行された電磁界の値を転置装置１００に送信する（ステップＳ１１０７）。
【０１０９】
次に、転置装置１００は、制御部２０２から電磁界の値を受信すると、受信した電磁界の値を結合して、解析空間Ａの電磁界の値を生成する（ステップＳ１１０８）。そして、転置装置１００は、生成した解析空間Ａの電磁界の値を、ユーザ端末２０１に送信する（ステップＳ１１０９）。次に、ユーザ端末２０１は、受信した解析空間Ａの電磁界の値を出力する（ステップＳ１１１０）。そして、図１２の処理に移行する。
【０１１０】
図１２に示すように、演算部２０３は、電磁界解析処理が終了したか否かを判定する（ステップＳ１２０１）。ここで、終了していない場合（ステップＳ１２０１：Ｎｏ）、演算部２０３は、図１１のステップＳ１１０１に戻る。
【０１１１】
一方、終了した場合（ステップＳ１２０１：Ｙｅｓ）、演算部２０３は、ワークエリアを開放する（ステップＳ１２０２）。次に、演算部２０３は、電磁界解析処理が終了した通知を制御部２０２に送信する（ステップＳ１２０３）。そして、演算部２０３は、電磁界解析処理を終了する。
【０１１２】
次に、制御部２０２は、電磁界解析処理が終了したか否かを判定する（ステップＳ１２０４）。ここで、終了していない場合（ステップＳ１２０４：Ｎｏ）、制御部２０２は、図１１のステップＳ１１０６に戻る。
【０１１３】
一方、終了した場合（ステップＳ１２０４：Ｙｅｓ）、制御部２０２は、電磁界解析処理が終了した通知を転置装置１００に送信する（ステップＳ１２０５）。そして、制御部２０２は、電磁界解析処理を終了する。
【０１１４】
次に、転置装置１００は、電磁界解析処理が終了したか否かを判定する（ステップＳ１２０６）。ここで、終了していない場合（ステップＳ１２０６：Ｎｏ）、転置装置１００は、図１１のステップＳ１１０８に戻る。
【０１１５】
一方、終了した場合（ステップＳ１２０６：Ｙｅｓ）、転置装置１００は、電磁界解析処理が終了した通知をユーザ端末２０１に送信する（ステップＳ１２０７）。そして、転置装置１００は、電磁界解析処理を終了する。
【０１１６】
次に、ユーザ端末２０１は、電磁界解析処理が終了したか否かを判定する（ステップＳ１２０８）。ここで、終了していない場合（ステップＳ１２０８：Ｎｏ）、ユーザ端末２０１は、図１１のステップＳ１１１０に戻る。一方、終了した場合（ステップＳ１２０８：Ｙｅｓ）、ユーザ端末２０１は、電磁界解析処理を終了する。これにより、電磁界解析システム２００は、解析空間Ａの電磁界解析を実行し、解析空間Ａの電磁界の値を出力することができる。
【０１１７】
（実施例１にかかる転置処理の詳細な処理手順）
次に、図１３を用いて、実施例１にかかる転置装置１００による転置処理の詳細な処理手順について説明する。転置処理は、図１０のステップＳ１００３に示した処理である。
【０１１８】
図１３は、実施例１にかかる転置装置１００による転置処理の詳細な処理手順を示すフローチャートである。図１３に示すように、まず、転置装置１００は、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数を示す格子数情報が入力されたか否かを判定する（ステップＳ１３０１）。ここで、格子数情報が入力されていない場合（ステップＳ１３０１：Ｎｏ）、転置装置１００は、ステップＳ１３０１に戻り、格子数情報の入力を待つ。
【０１１９】
一方、格子数情報が入力された場合（ステップＳ１３０１：Ｙｅｓ）、転置装置１００は、各方向Ｖ１〜Ｖ３の格子数の中から、最大格子数と中間格子数と最小格子数とを特定する（ステップＳ１３０２）。次に、転置装置１００は、変数Ｘに最大格子数を設定し、変数Ｙに中間格子数を設定し、変数Ｚに最小格子数を設定する（ステップＳ１３０３）。
【０１２０】
そして、転置装置１００は、図１４に示す方向変換パターン決定処理を実行して、方向変換パターンを決定する（ステップＳ１３０４）。次に、転置装置１００は、決定した方向変換パターンに従って、各軸方向の変数を交換する（ステップＳ１３０５）。そして、転置装置１００は、転置処理を終了する。
【０１２１】
これにより、転置装置１００は、演算素子ＰＥにおいて、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させることができる。また、転置装置１００は、転置前の解析空間Ａの電磁界解析にかかる時間より低減した上で、各々の演算素子ＰＥの処理量を平均化することができる。
【０１２２】
（方向変換パターン決定処理の詳細な処理手順）
次に、図１４を用いて、転置装置１００による方向変換パターン決定処理の詳細な処理手順について説明する。
【０１２３】
図１４は、転置装置１００による方向変換パターン決定処理の詳細な処理手順を示すフローチャートである。図１４に示すように、転置装置１００は、変数Ｘに設計された数がＸ軸格子数か否かを判定する（ステップＳ１４０１）。ここで、変数Ｘに設計された数がＸ軸格子数である場合（ステップＳ１４０１：Ｙｅｓ）、転置装置１００は、変数Ｚに設定された数がＺ軸格子数か否かを判定する（ステップＳ１４０２）。
【０１２４】
ここで、変数Ｚに設定された数がＺ軸格子数である場合（ステップＳ１４０２：Ｙｅｓ）、転置装置１００は、方向変換パターンＰ０を採用する（ステップＳ１４０３）。次に、転置装置１００は、方向変換パターン決定処理を終了する。
【０１２５】
一方、変数Ｚに設定された数がＺ軸格子数でない場合（ステップＳ１４０２：Ｎｏ）、転置装置１００は、方向変換パターンＰ１を採用する（ステップＳ１４０４）。次に、転置装置１００は、方向変換パターン決定処理を終了する。
【０１２６】
一方、ステップＳ１４０１において、変数Ｘに設計された数がＸ軸格子数でない場合（ステップＳ１４０１：Ｎｏ）、転置装置１００は、変数Ｘに設定された数がＹ軸格子数か否かを判定する（ステップＳ１４０５）。ここで、変数Ｘに設計された数がＹ軸格子数である場合（ステップＳ１４０５：Ｙｅｓ）、転置装置１００は、変数Ｚに設定された数がＺ軸格子数か否かを判定する（ステップＳ１４０６）。
【０１２７】
ここで、変数Ｚに設定された数がＺ軸格子数である場合（ステップＳ１４０６：Ｙｅｓ）、転置装置１００は、方向変換パターンＰ２を採用する（ステップＳ１４０７）。次に、転置装置１００は、方向変換パターン決定処理を終了する。
【０１２８】
一方、変数Ｚに設定された数がＺ軸格子数でない場合（ステップＳ１４０６：Ｎｏ）、転置装置１００は、方向変換パターンＰ３を採用する（ステップＳ１４０８）。次に、転置装置１００は、方向変換パターン決定処理を終了する。
【０１２９】
一方、ステップＳ１４０５において、変数Ｘに設計された数がＹ軸格子数でない場合（ステップＳ１４０５：Ｎｏ）、転置装置１００は、変数Ｚに設定された数がＹ軸格子数か否かを判定する（ステップＳ１４０９）。
【０１３０】
ここで、変数Ｚに設定された数がＹ軸格子数である場合（ステップＳ１４０９：Ｙｅｓ）、転置装置１００は、方向変換パターンＰ４を採用する（ステップＳ１４１０）。次に、転置装置１００は、方向変換パターン決定処理を終了する。
【０１３１】
一方、変数Ｚに設定された数がＹ軸格子数でない場合（ステップＳ１４０９：Ｎｏ）、転置装置１００は、方向変換パターンＰ５を採用する（ステップＳ１４１１）。次に、転置装置１００は、方向変換パターン決定処理を終了する。これにより、転置装置１００は、解析空間Ａのどの方向とどの方向とを交換するかを特定することができる。
【０１３２】
（実施例２）
次に、図１５および図１６を用いて、転置装置１００による解析空間Ａのデータの転置の実施例２について説明する。実施例２は、演算素子ＰＥの使用効率が向上するように解析空間Ａの単位空間Ｂを転置する具体例である。
【０１３３】
図１５および図１６は、転置装置１００による解析空間Ａのデータの転置の実施例２を示す説明図である。図１５において、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数は「３，２，２」であり、方向Ｖ１がＸ軸方向に一致し、方向Ｖ２がＹ軸方向に一致し、方向Ｖ３がＺ軸方向に一致するように配置されている。そのため、各軸方向の格子数は「３，２，２」である。また、複数の演算素子ＰＥは、「４行３列」の２次元行列状に配列されている。ここでは、演算素子ＰＥの行列の行方向と列方向とが、各々、Ｙ軸方向とＺ軸方向とに対応しているとする。
【０１３４】
ここで、転置装置１００は、解析空間Ａの大きさが最大になる方向が、複数の演算素子ＰＥの行方向と列方向とのうち、配列数が大きい方向に対応する軸方向になるように、解析空間Ａのデータを転置する。次に、転置装置１００は、解析空間Ａの大きさが最小になる方向が、複数の演算素子ＰＥの行方向と列方向とのうち、配列数が小さい方向に対応する軸方向になるように、解析空間Ａのデータを転置する。そして、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子ＰＥに電磁界解析を実行させる。
【０１３５】
転置装置１００は、具体的には、例えば、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「３，２，２」の中から、最大の格子数「３」を特定し、最大の格子数になる方向Ｖ１を特定する。次に、転置装置１００は、特定された方向Ｖ１が、複数の演算素子ＰＥの行方向と列方向のうち、配列数が大きい方向に対応するＹ軸方向を特定する。そして、転置装置１００は、特定した方向Ｖ１が特定したＹ軸方向になるように、方向Ｖ１に関する電磁界の変数と、Ｙ軸方向に一致する方向Ｖ２に関する電磁界の変数と、を交換することにより、解析空間Ａのデータを転置する。
【０１３６】
次に、転置装置１００は、転置後の解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「２，３，２」の中から、最小の格子数「２」を特定し、最小の格子数になる方向Ｖ３を特定する。次に、転置装置１００は、特定された方向Ｖ３が、複数の演算素子ＰＥの行方向と列方向のうち、配列数が小さい方向に対応するＺ軸方向になるように、解析空間Ａのデータを転置する。ここでは、方向Ｖ３はＺ軸方向に一致しているため、解析空間Ａのデータは転置されない。結果として、転置装置１００は、３次元座標系の各軸方向の格子数が「３，２，２」になる解析空間Ａのデータを転置し、３次元座標系の各軸方向の格子数が「２，３，２」になる解析空間Ａのデータにする。
【０１３７】
次に、転置装置１００は、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置１００は、各々の演算素子ＰＥに、当該演算素子ＰＥの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
【０１３８】
転置装置１００は、具体的には、例えば、各軸方向の格子数が「２，３，２」になる解析空間Ａを、「４行３列」の複数の演算素子ＰＥの配列位置に対応するように、格子数が「２，１，１」になる６個の空間に分割する。そして、転置装置１００は、各々の演算素子ＰＥに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
【０１３９】
これにより、転置装置１００は、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子ＰＥは、転置後の解析空間Ａの電磁界解析にかかる時間を、転置前の解析空間Ａの電磁界解析にかかる時間より低減することができる。
【０１４０】
また、転置装置１００は、転置前では、解析空間Ａを４個の空間に分割し、１２個の演算素子ＰＥのうち４個の演算素子ＰＥの各々に割り振って電磁界解析を実行させていた。一方、転置装置１００は、転置後では、解析空間Ａを６個の空間に分割し、１２個の演算素子ＰＥのうち６個の演算素子ＰＥの各々に割り振って電磁界解析を実行させることになる。そのため、転置装置１００は、使用される演算素子ＰＥの数を増大させ、各々の演算素子ＰＥの処理量を平均化し、各々の演算素子ＰＥの使用効率を向上させることができる。
【０１４１】
また、図１６において、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数は「６，８，２」であり、方向Ｖ１がＸ軸方向に一致し、方向Ｖ２がＹ軸方向に一致し、方向Ｖ３がＺ軸方向に一致するように配置されている。そのため、各軸方向の格子数は「６，８，２」である。また、複数の演算素子ＰＥは、「４行３列」の２次元行列状に配列されている。ここでは、演算素子ＰＥの行列の行方向と列方向とが、各々、Ｙ軸方向とＺ軸方向とに対応しているとする。
【０１４２】
ここで、転置装置１００は、解析空間Ａの大きさが最大になる方向および解析空間Ａの大きさが中間になる方向のうち、複数の演算素子ＰＥの行方向と列方向とのうち、配列数が大きい方に近い方向を特定する。次に、転置装置１００は、特定された方向が、配列数が大きい方向に対応する軸方向になるように、解析空間Ａのデータを転置する。
【０１４３】
そして、転置装置１００は、解析空間Ａの大きさが最小になる方向および解析空間Ａの大きさが中間になる方向のうち、複数の演算素子ＰＥの行方向と列方向とのうち、配列数が小さい方に近い方向を特定する。次に、転置装置１００は、特定された方向が、配列数が小さい方向に対応する軸方向になるように、解析空間Ａのデータを転置する。そして、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切り、区切られた升目内に存在する空間について、演算素子ＰＥに電磁界解析を実行させる。
【０１４４】
転置装置１００は、具体的には、例えば、解析空間Ａの各方向Ｖ１〜Ｖ３の格子数「６，８，２」の中から、最大格子数「８」と中間格子数「６」と最小格子数「２」を特定する。次に、転置装置１００は、最大格子数「８」と中間格子数「６」とのうち、行方向の格子数「４」に近い格子数「６」になる方向Ｖ１がＹ軸方向となるように、解析空間Ａのデータを転置する。
【０１４５】
そして、転置装置１００は、中間格子数「６」と最小格子数「２」とのうち、Ｙ軸方向となるように転置されておらず、かつ、列方向の配列数「３」に近い格子数「２」になる方向Ｖ３がＺ軸方向となるように、解析空間Ａのデータを転置する。ここでは、方向Ｖ３はＺ軸方向に一致しているため、解析空間Ａのデータは転置されない。結果として、転置装置１００は、各軸方向の格子数が「６，８，２」になる解析空間Ａを、各軸方向の格子数が「８，６，２」になる解析空間Ａのデータにする。
【０１４６】
次に、転置装置１００は、転置後の解析空間Ａを、演算素子ＰＥの配列位置に対応する升目を有する格子により区切って、区切られた升目内の空間に分割する。そして、転置装置１００は、各々の演算素子ＰＥに、当該演算素子ＰＥの配列位置に対応する升目内の空間を割り振って、割り振った空間の電磁界解析を実行させる。
【０１４７】
転置装置１００は、具体的には、例えば、各軸方向の格子数が「８，６，２」になる解析空間Ａを、「４行３列」の複数の演算素子ＰＥの配列位置に対応するように、格子数が「６，２，１」になる８個の空間に分割する。そして、転置装置１００は、各々の演算素子ＰＥに、配列位置に対応する空間を割り振って、割り振った空間の電磁界解析を実行させる。
【０１４８】
これにより、転置装置１００は、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子ＰＥは、転置後の解析空間Ａの電磁界解析にかかる時間を、転置前の解析空間Ａの電磁界解析にかかる時間より低減することができる。また、転置装置１００は、転置前の解析空間Ａの電磁界解析にかかる時間より低減した上で、各々の演算素子ＰＥの処理量を平均化することができる。
【０１４９】
（実施例２にかかる電磁界解析処理の詳細な処理手順）
次に、実施例２にかかる電磁界解析処理の詳細な処理手順について説明する。ここで、実施例２にかかる電磁界解析処理は、図１０〜図１２を用いて説明した実施例１にかかる電磁界解析処理と同様の処理手順であるため、説明を省略する。
【０１５０】
（実施例２にかかる転置層１００による転置処理の詳細な処理手順）
次に、図１７を用いて、実施例２にかかる転置装置１００による転置処理の詳細な処理手順について説明する。転置処理は、図１０のステップＳ１００３に示した処理である。
【０１５１】
図１７は、実施例２にかかる転置装置１００による転置処理の詳細な処理手順を示すフローチャートである。図１７に示すように、まず、転置装置１００は、格子数情報が入力されたか否かを判定する（ステップＳ１７０１）。ここで、格子数情報が入力されていない場合（ステップＳ１７０１：Ｎｏ）、転置装置１００は、ステップＳ１７０１に戻り、格子数情報の入力を待つ。
【０１５２】
一方、格子数情報が入力された場合（ステップＳ１７０１：Ｙｅｓ）、転置装置１００は、各軸の格子数の中から、最大格子数と中間格子数と最小格子数とを特定する（ステップＳ１７０２）。
【０１５３】
次に、転置装置１００は、最小格子数が行方向の配列数Ｐｙ以上か否かを判定する（ステップＳ１７０３）。ここで、最小格子数が行方向の配列数Ｐｙ以上である場合（ステップＳ１７０３：Ｙｅｓ）、転置装置１００は、変数Ｘに最大格子数を設定し、変数Ｙに中間格子数を設定し、変数Ｚに最小格子数を設定する（ステップＳ１７０４）。次に、転置装置１００は、ステップＳ１７１１に移行する。
【０１５４】
一方、最小格子数が行方向の配列数Ｐｙ以上でない場合（ステップＳ１７０３：Ｎｏ）、転置装置１００は、最大格子数が列方向の配列数Ｐｚ以下であるか否かを判定する（ステップＳ１７０５）。ここで、最大格子数が列方向の配列数Ｐｚ以下である場合（ステップＳ１７０５：Ｙｅｓ）、転置装置１００は、変数Ｘに最小格子数を設定し、変数Ｙに中間格子数を設定し、変数Ｚに最大格子数を設定する（ステップＳ１７０６）。次に、転置装置１００は、ステップＳ１７１１に移行する。
【０１５５】
一方、最大格子数が列方向の配列数Ｐｚ以下でない場合（ステップＳ１７０５：Ｎｏ）、転置装置１００は、最大格子数を行方向の配列数Ｐｙにより除算したＬｍａｘと、中間格子数を行方向の配列数Ｐｙにより除算したＬｍｉｄと、を算出する。また、転置装置１００は、中間格子数を列方向の配列数Ｐｚにより除算したＭｍｉｄと、最小格子数を列方向の配列数Ｐｚにより除算したＭｍｉｎと、を算出する（ステップＳ１７０７）。
【０１５６】
次に、転置装置１００は、変数Ｙに、ＬｍａｘとＬｍｉｄとのうち、より１に近い値になる格子数を設定する（ステップＳ１７０８）。そして、転置装置１００は、変数Ｚに、ＭｍｉｄとＭｍｉｎとのうち、より１に近い値になる格子数を設定する（ステップＳ１７０９）。次に、転置装置１００は、変数Ｘに残余の格子数を設定する（ステップＳ１７１０）。そして、転置装置１００は、ステップＳ１７１１に移行する。
【０１５７】
ステップＳ１７１１において、転置装置１００は、図１４に示す方向変換パターン決定処理を実行して、方向変換パターンを決定する（ステップＳ１７１１）。次に、転置装置１００は、決定した方向変換パターンに従って、各軸方向の変数を交換する（ステップＳ１７１２）。そして、転置装置１００は、転置処理を終了する。
【０１５８】
これにより、転置装置１００は、演算素子ＰＥにおいて、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させることができる。また、転置装置１００は、転置前の解析空間Ａの電磁界解析にかかる時間より低減した上で、各々の演算素子ＰＥの処理量を平均化することができる。
【０１５９】
以上説明したように、転置装置１００は、最大格子数になる解析空間Ａの方向が、３次元直交座標系の各軸のうち、解析空間Ａが分割されない軸の方向になるように、解析空間Ａのデータを転置する。これにより、転置装置１００は、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子ＰＥは、転置後の解析空間Ａの電磁界解析にかかる時間を、転置前の解析空間Ａの電磁界解析にかかる時間より低減することができる。
【０１６０】
さらに、転置装置１００は、最小格子数になる解析空間Ａの方向が、３次元直交座標系の各軸のうち、演算素子ＰＥの行方向および列方向のうち配列数が最小になる方向に対応する軸の方向になるように、解析空間Ａのデータを転置する。これにより、転置装置１００は、転置前の解析空間Ａの電磁界解析にかかる時間より低減した上で、各々の演算素子ＰＥの処理量を平均化することができる。
【０１６１】
また、転置装置１００は、最大格子数になる解析空間Ａの方向が、３次元直交座標系の各軸のうち、演算素子ＰＥの行方向および列方向のうち配列数が最大になる方向に対応する軸の方向になるように、解析空間Ａのデータを転置する。さらに、転置装置１００は、最小格子数になる解析空間Ａの方向が、３次元直交座標系の各軸のうち、解析空間Ａが分割されない軸の方向になるように、解析空間Ａのデータを転置する。
【０１６２】
これにより、転置装置１００は、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子ＰＥは、転置後の解析空間Ａの電磁界解析にかかる時間を、転置前の解析空間Ａの電磁界解析にかかる時間より低減することができる。また、転置装置１００は、転置前の解析空間Ａの電磁界解析にかかる時間より低減した上で、各々の演算素子ＰＥの処理量を平均化することができる。
【０１６３】
また、転置装置１００は、最大格子数および中間格子数のうち、演算素子ＰＥの行方向および列方向の配列数のうち最大配列数に近い格子数になる方向を特定する。次に、転置装置１００は、特定した方向が、３次元直交座標系の各軸のうち、演算素子ＰＥの行方向および列方向のうち最大配列数になる方向に対応する軸の方向になるように、解析空間Ａのデータを転置する。
【０１６４】
さらに、転置装置１００は、最小格子数および中間格子数のうち、演算素子ＰＥの行方向および列方向の配列数のうち最小配列数に近い格子数になる方向を特定する。次に、転置装置１００は、特定した方向が、３次元直交座標系の各軸のうち、演算素子ＰＥの行方向および列方向のうち最小配列数になる方向に対応する軸の方向になるように、解析空間Ａのデータを転置する。
【０１６５】
これにより、転置装置１００は、演算素子ＰＥが効率よく算出することができるＸ軸方向に関する電磁界解析の処理量を増加させ、Ｙ軸とＺ軸との方向に関する電磁界解析の処理量を減少させる。結果として、演算素子ＰＥは、転置後の解析空間Ａの電磁界解析にかかる時間を、転置前の解析空間Ａの電磁界解析にかかる時間より低減することができる。また、転置装置１００は、転置前の解析空間Ａの電磁界解析にかかる時間より低減した上で、各々の演算素子ＰＥの処理量を平均化することができる。
【０１６６】
なお、本実施の形態で説明した転置方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本転置プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本転置プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１６７】
また、本実施の形態で説明した転置装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と表す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、例えば、上述した転置装置１００の機能（検出部４０１、転置部４０２、出力部４０３）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、転置装置１００を製造することができる。
【０１６８】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６９】
（付記１）行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータであって、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出する検出部と、
前記検出部によって検出された各配列数と、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、前記３次元解析対象データの格子群を転置する転置部と、
前記転置部によって転置された３次元解析対象データを前記演算装置に出力する出力部と、
を有することを特徴とする転置装置。
【０１７０】
（付記２）前記転置部は、
各配列数のうち最小配列数が、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数よりも大きい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向および前記列方向のいずれにも対応していない軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする付記１に記載の転置装置。
【０１７１】
（付記３）前記転置部は、
最小配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最小となる配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする付記２に記載の転置装置。
【０１７２】
（付記４）前記転置部は、
各配列数のうち最大配列数が、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数よりも小さい場合、最大配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向の演算素子群の配列数および前記列方向の演算素子群の配列数のうち配列数が最大となる配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする付記１に記載の転置装置。
【０１７３】
（付記５）前記転置部は、
最小配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記行方向および前記列方向のいずれにも対応していない軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする付記４に記載の転置装置。
【０１７４】
（付記６）前記転置部は、
前記行方向の演算素子群および前記列方向の演算素子群のうち演算素子が多い第１の配列数が、各配列数のうち最小配列数よりも大きく、前記行方向の演算素子群および前記列方向の演算素子群のうち演算素子が少ない第２の配列数が、各配列数のうち最大配列数よりも小さい場合、最大配列数以下かつ最小配列数以上の中間配列数、および最大配列数のうち、前記第１の配列数に近い配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記第１の配列数の配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする付記１に記載の転置装置。
【０１７５】
（付記７）前記転置部は、
中間配列数および最小配列数のうち、前記第２の配列数に近い配列数になる前記３次元解析対象データの格子列の方向が、前記第１軸、前記第２軸および前記第３軸のうち、前記第２の配列数の配列方向に対応する軸の方向となるように、前記３次元解析対象データの格子群を転置することを特徴とする付記６に記載の転置装置。
【０１７６】
（付記８）行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータが、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出し、
検出された各配列数と、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、前記３次元解析対象データの格子群を転置し、
転置された３次元解析対象データを前記演算装置に出力する、
処理を実行することを特徴とする転置方法。
【０１７７】
（付記９）行列状に配列された複数の演算素子と各演算素子に接続された記憶装置とを有し３次元座標系に存在する格子状の３次元解析対象データの電磁界解析処理を実行する演算装置を制御するコンピュータに、
前記３次元解析対象データについて、前記３次元座標系の第１軸の方向の格子の配列数、第２軸の方向の格子の配列数、および第３軸の方向の格子の配列数を検出し、
検出された各配列数と、前記複数の演算素子のうち行方向の演算素子群の配列数および列方向の演算素子群の配列数と、に基づいて、前記３次元解析対象データの格子群を転置し、
転置された３次元解析対象データを前記演算装置に出力する、
処理を実行させることを特徴とする転置プログラム。
【符号の説明】
【０１７８】
１００  転置装置
Ｃ  演算装置
２０１  ユーザ端末
ＰＥ  演算素子
Ｍ  記憶装置
４０１  検出部
４０２  転置部
４０３  出力部
【図１】
0005853794.tif 000008
【図２】
0005853794.tif 000009
【図３】
0005853794.tif 000010
【図４】
0005853794.tif 000011
【図５】
0005853794.tif 000012
【図６】
0005853794.tif 000013
【図７】
0005853794.tif 000014
【図８】
0005853794.tif 000015
【図９】
0005853794.tif 000016
【図１０】
0005853794.tif 000017
【図１１】
0005853794.tif 000018
【図１２】
0005853794.tif 000019
【図１３】
0005853794.tif 000020
【図１４】
0005853794.tif 000021
【図１５】
0005853794.tif 000022
【図１６】
0005853794.tif 000023
【図１７】
0005853794.tif 000024