5. OpenFDTDの使用法

5.1 ソースコードの転送

WinSCPを用いてOpenFDTDの以下のディレクトリーのソースコードとMakefileを転送してください。

その他、必要ならdataフォルダのサンプルデータを転送してください。
計算に用いる入力データはローカル環境で作成し、 図形表示により正しく入力されていることを十分確認した後FOCUSに転送してください。
コンパイル・リンク方法についてはOpenFDTDのページのLinux版と同じです。 コンパイラーやコンパイルオプションについては前章を参考にしてください。

5.2 計算結果の取得

計算結果は以下のようにして確認します。

5.3 ノード数と計算時間の関係

表5.1にCPUとGPUでノード数を変えたときの計算時間を示します。
問題のサイズが大きくなるとノード数を増やすと計算時間が短縮されることがわかります。
1ノードで計算するときCPUではGPUの4倍の計算時間がかかります。 すなわち4倍の使用料がかかります。 従って問題のサイズがGPUのメモリー(ノード当たり16GB)に収まるときはGPUで計算した方が有利です。

表5.1 ノード数と計算時間の関係(Fシステム、benchmark3.ofd)
ハードウェア 計算時間
CPU 1ノード (40コア) 181.5秒
CPU 2ノード (80コア) 106.9秒
CPU 3ノード (120コア)89.3秒
GPU 1ノード 39.1秒
GPU 2ノード 25.0秒

図5.1 ノード数と計算時間の関係

5.4 CPUメモリーの上限

OpenFDTDの必要メモリーは30NxNyNzバイトです。 MPIで並列計算するときは個々のプロセスの必要メモリーはこれをプロセス数で割ったものになり、 ofd.logに表示される"Memory size [MB]"はこの値です。
この数値がハードウェアの上限を超えると計算に支障が出ます。 その上限はFシステムで128GB/40プロセス=3.2GB、Hシステムで64GB/8=8.0GBです。
例えばセル数=1000*1000*1000のときは必要メモリーは30GBとなり、 FシステムまたはHシステムの1ノードに収まります。 セル数がさらに大きいときも複数のノードを使用すると計算することができます。 従って、OpenFDTDでは必要メモリーが上限を超えることはまずないと考えて構いません。

5.5 計算例

5.5.1 電波暗室

図5-2に示す電波暗室を計算します。
電波暗室の大きさは10x5x5mとします。 壁の全面に磁性体の電波吸収体を貼っています。 壁の背後は完全導体、その手前に厚さ40mmの平板上の磁性体、 さらにその手前に高さ150mm、ピッチ100mmの山型の磁性体を置いています。
磁性体の比誘電率=10、導電率=0.2[S/m]、比透磁率=10、導磁率=30000[1/Sm]とします。
周波数=300MHz、セルサイズ=10mmとします。セル数は1000x500x500=250,000,000です。
壁の一端から1.5m離れた点の高さ1.5mに送信アンテナとして垂直ダイポールアンテナを置きます。
計算時間はFシステム(GPU)1ノードで386秒、使用メモリーは7.4GBです。
タイムステップ数は5200です(収束判定条件=0.001)。
図5-3にZ=1.5m面の電界分布を示します。壁の反射により定在波が発生していることがわかります。
図5-4はX方向線分上の電界分布です。


図5-2 計算モデル(図の奥行方向の吸収体を除いた状態)


図5-3 電界分布(Z=1.5m面, 300MHz)


図5-4 電界分布(X方向線分上、Y=0m、Z=1.5m, 300MHz)

入力データ
データ作成ライブラリー用ソースコード (右クリック+保存)

5.5.2 乗用車

図5-5に示す乗用車モデルを計算します。
後部中央に垂直アンテナが設置されています。 周波数=2.45GHz、セルサイズ=10mm、タイムステップ数=5000とします。
セル数は570x270x191=29,394,900です。
計算時間はFシステム(GPU)1ノードで53秒、使用メモリーは1.3GBです。
図5-6〜図5-8に計算結果を示します。


図5-5 計算モデル(周波数=2.45GHz、セルサイズ=10mm)


図5-6 電界分布(Y=0面)


図5-7 遠方界パターン(X面:φ=90度)


図5-8 遠方界パターン(Y面:φ=0度、右が前方)

入力データ
データ作成ライブラリー用ソースコード (右クリック+保存)