目次

4. OpenTHFDの使用法

4.1 GUIプログラム

OpenTHFDはGUI(Graphical User Interface)プログラムを使用して、 ウィンドウ上でデータ入力、計算、図形出力を行います。

4.1.1 Windowsの実行環境

Windowsの実行環境は以下のようになります。

(1) .NET Framework
GUIプログラムの実行には .NET Framework が必要です。 Windows11には標準装備されています。 .NET Framework がインストールされていないかバージョンが古いときは、 下記からダウンロードしてインストールしてください。
https://dotnet.microsoft.com/ja-jp/download/dotnet-framework

(2) OpenMP
OpenMP対応の実行プログラムを実行するための準備は特に必要ありません。
ただし、実行プログラムのあるフォルダにランタイムライブラリvcomp140.dllが必要です。 (配布ファイルに含まれています。 ファイル名の"140"はVC++のバージョンを表し、今後変わる可能性があります。)

(3) MPI
1台のコンピュータでMPI対応の実行プログラムを実行するための準備は特に必要ありません。
ただし、実行プログラムのあるフォルダにファイル mpiexec.exe, msmpi.dll, smpd.exe が必要です。 (配布ファイルに含まれています)
初回に実行するときにセキュリティソフトが警告を出したら許可してください。 (MPIプログラムは複数のプロセスを起動するのでマルウェアと認識されることがあります)
複数台のコンピュータで実行するときは[17]の「7.MPI」を参考にしてください。 ただし高速なネットワーク環境(10Gbps以上)が必要になります。

(4) CUDA
CUDA対応の実行プログラムを実行するためには、NVIDIAのグラフィックスボードが実装され、 グラフィックスドライバーがインストールされていることが必要です。
プログラムが実行できないか、意味のない数字を出力してすぐ終了するときは、 グラフィックスドライバーのバージョンが古いことが考えられるので、 下記のサイトから最新のグラフィックスドライバーをダウンロードしてインストールしてください。
http://www.nvidia.co.jp/Download/index.aspx?lang=jp
グラフィックスドライバーは数か月ごとにバージョンアップされますが、 実行プログラムが動作していれば必ずしもバージョンアップする必要はありません。
複数台のコンピュータで実行するときは[17]の「7.MPI」を参考にしてください。 ただし高速なネットワーク環境(10Gbps以上)が必要になります。

4.1.2 GUIプログラムの起動

GUIプログラムを起動するにはOpenTHFD.exeファイルをダブルクリックしてください。
図4-1-1にOpenTHFDのGUIプログラムを示します。
図4-1-2にOpenTHFDの処理の流れを示します。 図中の緑色がGUI画面での操作、黄色がコマンドボタン、 無色が出力されるファイルを表します。


図4-1-1 OpenTHFDのGUIプログラム

図4-1-2 OpenTHFDの処理の流れ

4.1.3 GUIプログラムの使用法

以下の手順で操作してください。

  1. [全般]タブから[観測点他]タブまでのデータを入力します。 詳しくは4.1.4~4.1.9を参考にしてください。(注1)
  2. [計算]ボタンをクリックします。ウィンドウが開いて計算が開始されます。 詳しくは4.1.10を参考にしてください。(注2)
  3. [ポスト処理制御]タブでポスト処理の設定を行います。 詳しくは4.1.11を参考にしてください。
  4. [ポスト処理]ボタンをクリックします。 図形データファイルev.ev2とev.ev3が出力されます。
  5. [図形表示2D]ボタンをクリックします。ev2d.exeが起動してev.ev2が図形表示されます。 詳しくは4.2を参考にしてください。
  6. [図形表示3D]ボタンをクリックします。ev3d_otk.exeが起動してev.ev3が図形表示されます。 詳しくは4.2を参考にしてください。
  7. ポスト処理は[ポスト処理制御]タブの設定を変えて [ポスト処理]→[図形表示2D]または[図形表示3D]を繰り返し行うことができます。(注3)

(注1)
作業中にときどき安全のために[ファイル]→[上書き保存]または[名前を付けて保存]でファイルを保存してください。
(注2)
このウィンドウの属性は左上のアイコンをクリックして[プロパティ]メニューで変更することができます。 特に[オプション]タブの[簡易編集モード]はOFFにしてください。 これを行わないと計算中にウィンドウ内をクリックすると表示が停止します。 その他、ウィンドウサイズ、色、フォントなどを変更することができます。
(注3) OpenFDTD, EEM-FDM
[ファイル]>[開く]で[ファイル名]のフィルターに"OpenFDTD"または"EEM-FDM"を選択すると、 OpenFDTDのデータ(拡張子.ofd)またはEEM-FDMのデータ(拡張子.fdm)を開くことができます。 ただし、一部の機能はサポートしていないので計算する前に内容を確認し、 適当に修正してください。

4.1.4 全般タブ

[全般]タブでは計算のための各種のデータを入力します。(図4-1-1)

(注1)
日本語を含む入力データファイルの文字コードはUTF-8(BOMなし)です。
ただし、タイトルに日本語が含まれると計算時のコンソールのタイトル行が文字化けしますが、 oth.logと図形表示には日本語が正しく表示されます。 (コンソールはShift-JISのみをサポートするため)
Version 3.Xまでの日本語を含む入力データファイルの文字コードはShift-JISです。 メモ帳等で読み込んでUTF-8(BOMなし)で保存したのち使用するか、 [全般]タブで再度日本語で入力してください。

4.1.5 メッシュタブ

[メッシュ]タブではXYZ方向のメッシュデータを入力します。(図4-1-3)
座標は小さい順に入力してください。座標値が空白であると以下のデータは無視されます。


図4-1-3 メッシュタブ

4.1.6 物性値タブ

[物性値]タブでは[物体形状]タブで使用する物性値を登録します。(図4-1-4)
左端をONにするとその行が入力可能になります。上から順に入力してください。
[種別]で[数値入力]を選択したときは複素比誘電率と複素比透磁率の実部と虚部(>=0)を入力してください。
[種別]で[分散ファイル]を選択したときは[...]をクリックして分散ファイルを選択してください。 分散ファイルはdata/dispersionフォルダに置いてください。 [edit]をクリックするとメモ帳で開かれるので数字を修正することができます。
上から順に物性値番号=2,3,...になります。 物性値番号=0(真空)、物性値番号=1(PEC)は予め登録されているので入力する必要はありません。


図4-1-4 物性値タブ

4.1.7 物体形状タブ

[物体形状]タブでは物体の形状データを入力します。(図4-1-5)
左でデータを入力し、右の図でデータを確認してください。
右の図の扱い方は[ヘルプ]ボタンを参考にしてください。


図4-1-5 物体形状タブ

[ユニット番号]
左は形状単位(ユニット)ごとにページが変わる方式になっています。
現在のユニット番号が左上に表示され、これが編集の対象になります。

ユニット番号を変更する方法は以下の通りです。

ユニットの編集には以下のボタンを使用します。

[物性値]
[物性値]を選択してください。 [物性値]のリストは[物性値]タブで入力されたものです。

[形状]
[形状]を選択してください。[向き]が必要になるものもあります。 6個または8個の座標値を入力してください。
形状の種類については図4-1-6を参考にしてください。
[名前]は計算には使用しませんがデータの管理に使用してください。

(重要)
複数のユニットが重複したときはユニット番号が大きい方の物性値が優先されます。
従って、例えば厚さのない完全導体の後に誘電体を重ねて入力すると完全導体がなくなり、 計算結果が大きく変わります。このようなケースでは先に誘電体を入力してください。





図4-1-6 形状種類

4.1.8 波源タブ

[波源]タブでは給電点または平面波入射のデータを入力します。(図4-1-7)
[給電点]では、左端をONにするとその行が入力可能になります。上から順に入力してください。


図4-1-7 波源タブ

4.1.9 観測点他タブ

[観測点他]タブでは観測点と集中定数のデータを入力します。(図4-1-8)
左端をONにするとその行が入力可能になります。上から順に入力してください。


図4-1-8 観測点他タブ

4.1.10 計算

[全般]タブから[観測点他]タブまでのデータを入力した後、 [計算]ボタンをクリックすると計算が開始されます。 ウィンドウが開き、リスト4-1-1のように表示されます。 ここで入力データと計算結果を確認してください。
計算の途中に残差と電界平均が表示されます。 前者が十分小さくなり、後者が一定になったとき計算が終了します。

リスト4-1-1 標準出力


<<< OpenTHFD (CPU+OpenMP) Ver.4.0.0 >>>		実行プログラムとそのバージョン
Thread = 8					スレッド数、プロセス数(GPUのときはGPU情報)
Fri Dec  1 16:42:34 2023			開始時刻
Title = dipole antenna				タイトル
Cells = 30 x 30 x 31 = 27900			セル数
No. of Materials   = 3				物性値の数(空気/PECを含む)
No. of Geometries  = 1				物体の数
No. of Frequencies = 1				周波数の数
Plane wave (0/1)   = 0				平面波入射の有無
No. of Feeds       = 1				給電点の数
No. of Points      = 0				観測点の数
CPU Memory         = 35 [MB] (matrix)		使用メモリー(matrix/nomatrixモード)
Output filesize    = 2 [MB]			出力ファイル(oth.out)のサイズ
ABC = Mur-1st					吸収境界条件
Iteration = 1000, 100, 0.00010000		最大反復回数、出力間隔、収束判定条件
=== iteration start ===				反復計算開始
  Frequency [Hz] = 3.000e+09			周波数
  iteration     residual        <E>		反復回数、残差、電界平均
          0    0.23049433    1.5868377
        100    0.01194858    8.6514280
        200    0.00175760    8.7019785
        278    0.00009390    8.6845779
  --- converged ---				収束したことを表す
=== input impedance ===				入力インピーダンスその他
feed #1 (Z0[ohm] = 50.00)			給電線の特性インピーダンス
  frequency[Hz] Rin[ohm]   Xin[ohm]    Gin[mS]    Bin[mS]    Ref[dB]       VSWR
  3.00000e+09    124.520     88.725      5.327     -3.795     -4.556      3.900
=== output files ===
oth.log, oth.out					出力されたファイル名
=== cpu time [sec] ===				以下、計算時間の内訳
  part-1 :       0.682				連立一次方程式求解
  part-2 :       0.010				その他(ファイル入出力など)
  --------------------
  total  :       0.692				合計
=== normal end ===				計算が正常終了したことを表す
Fri Dec  1 16:42:35 2023			終了時刻

4.1.11 ポスト処理制御タブ

[ポスト処理制御(1)][ポスト処理制御(2]タブではポスト処理の各項目とそのパラメーターを入力します。


図4-1-9 ポスト処理制御(1)タブ

[収束状況(2D)]
収束状況を出力します。

[整合損を含む]
ONのとき遠方界の利得に給電点の整合損を含めます。 給電点を指定したとき意味があります。

[周波数特性(2D)]
[スミスチャート]~[結合度]:選択した項目の周波数特性を図形出力します。
[遠方界]:指定した方向の遠方界の周波数特性を図形出力します。
[自動スケール]をOFFにしたときは[最小],[最大],[分割数]を入力してください。
[周波数分割数]:横軸の分割数を指定することができます。

[遠方界面上(2D)]
遠方界の面上パターン図を出力します。 複数設定することができます。上から順に左端をONにすると入力可能になります。
[面の向き]:

[角度分割数]:360度を分割する数値を入力してください。
[角度]:[φ一定面]と[θ一定面]のときは角度[度]を入力してください。 それぞれ一定のφとθです。
[円プロット]、[XYプロット]:出力図の形式を選択してください。
[θ/φ成分]、[主軸/副軸]、[左右円偏波]:出力する成分を選択してください。(複数選択可)
[スケール]:単位とスケールを設定してください。
[最大値で正規化]:最大値で正規化するときONにしてください。

[遠方界全方向(3D)]
遠方界の全方向パターンを図形出力します。
[角度分割数]:θ方向(0-180度)とφ方向(0-360度)の分割数を入力してください。
[成分]:出力する成分を選択してください。(複数選択可)
[スケール]:単位とスケールを設定してください。
[物体表示]:図形表示される物体形状の相対的な大きさを指定してください。


図4-1-10 ポスト処理制御(2)タブ

[近傍界線上(2D)]
近傍界の線上分布図を出力します。 複数設定することができます。上から順に左端をONにすると入力可能になります。
[成分]:電界、磁界、電流から選択してください。
[線の向き]:X方向/Y方向/Z方向から選択してください。線分の範囲は計算領域の端から端までです。
[線の位置]:[線の向き]がX/Y/ZのときそれぞれYZ/ZX/XY座標を入力してください。
[スケール]:単位とスケールを設定してください。
[成分]:[全電磁界]/[散乱電磁界]/[入射電磁界]から選択してください。平面波入射のとき有効です。

[近傍界面上(2D+3D)]
近傍界の面上分布図を出力します。 複数設定することができます。上から順に左端をONにすると入力可能になります。
[成分]:電界、磁界、電流から選択してください。
[面の向き]:X面/Y面/Z面から選択してください。面の範囲は計算領域の端から端までです。
[面の位置]:一定のX座標/Y座標/Z座標を入力してください。
[2D/3D]:2D/3Dの図形出力を選択してください。
[動画2D],[フレーム数]:動画を有効にしてフレーム数を指定します。
[スケール]:単位とスケールを設定してください。
[描画方法]:等高線図の描画方法を選択してください。
[成分]:[全電磁界]/[散乱電磁界]/[入射電磁界]から選択してください。平面波入射のとき有効です。
[物体を描く]:ONにすると物体形状が重ね書きされます。
[一部拡大]:面の一部を拡大するにはONにしてその範囲を指定してください。

4.1.12 計算設定メニュー

[ツール]>[計算設定]メニューをクリックすると図4-1-11の計算設定ウィンドウが開きます。
使い方については[ヘルプ]を参考にしてください。


図4-1-11 計算設定ウィンドウ

[CPU/GPU]
計算するハードウェアを[CPU]/[GPU]から選択してください。

[CPU]
[スレッド数]を設定してください。物理コア数から論理コア数の間の数を推奨します。
メモリー不足で計算できないときは[低速省メモリー]をONにしてください。

[GPU]
GPUの実行にはNVIDIAのグラフィックスボードとディスプレイドライバが必要です。
GPUでは[低速省メモリー]を通常ONにしてください。計算時間はあまり変わりません。
[unified memory]は通常OFF、[デバイス番号]は通常0としてください。

[MPI]
CPUで複数台で計算するときと、GPUで複数のグラフィックスボードで計算するときは、 [MPI]をONにして[ノード番号]、[ホスト名]、[プロセス数]を適当に設定してください。 詳しくは[MPIの使用方法]を参考にしてください。

●CPUの標準的な設定
1台のコンピュータの1個のCPUで計算するときは、 [CPU]をONにして[スレッド数]に物理コア数か論理コア数を代入してください。 [MPI]はOFFにしてください。

●1個のグラフィックスボードの標準的な設定
1台のコンピュータの1個のグラフィックスボードで計算するときは、 [GPU]をONにして[unified memory]をOFFにし[デバイス番号]を0にしてください。 [MPI]はOFFにしてください。

●複数個のグラフィックスボードの標準的な設定
1台のコンピュータの複数個のグラフィックスボードで計算するときは、 [GPU]をONにして[unified memory]をOFFにし[デバイス番号]を0にしてください。 [MPI]をONにしてノード1の[ホスト名]を"localhost"のまま[プロセス数]にグラフィックスボードの個数を代入してください。 2以降のノードはOFFにしてください。

4.1.13 オプションメニュー

[ツール]>[オプション]メニューをクリックすると図4-1-12のオプションウィンドウが開きます。
使い方については[ヘルプ]を参考にしてください。
設定を初期化するには[初期化]をクリックしてください。


図4-1-12 オプションウィンドウ

4.1.14 数値出力メニュー

[数値出力]メニューをクリックすると、 それぞれの数値出力ファイルを読み込んでテキストエディタが開きます。
ファイルの内容は4.3を参考にしてください。