4.3 入力データ作成

4.3.1 全体の書式

OpenTHFDの入力データは一つのテキストファイルです。
リスト4-3-1に一例を示します。

最初の行
最初の行は必ず"OpenTHFD 1 4"としてください。
ここで数字は書式のバージョンを表します。OpenTHFDのデータは上位互換性があります。 すなわち古いバージョンのデータは新しいバージョンでも使えます。

最後の行
最後の行は必ず"end"としてください。
この行の下は読み込まれませんので、コメントやデータの一時退避に使用することができます。

データ本体
最初の行と最後の行以外がデータの本体です。書式は
キーワード = データ1 データ2 ...
となります。キーワードはすべて小文字です。データは数値または文字列です。 等号"="の前後とデータの間には1個以上のスペースを置いてください。
データの入力順は任意ですが、リスト4-3-1の順を推奨します。

コメント行
最初の文字が"#"である行はコメント行です。その行は飛ばされます。

行内コメント
所定の数のデータの後ろに1個以上の空白の後に任意のコメントを入力することができます。
ただし、データの数が不定である行(xmesh/ymesh/zmseh)にはコメントは入力できません。


リスト4-3-1 入力データの一例
OpenTHFD 1 4
title = dipole antenna
xmesh = -0.075 30 0.075
ymesh = -0.075 30 0.075
zmesh = -0.075 10 -0.025 11 0.025 10 0.075
material = 1 2.0 0.0 1.0 0.0
geometry = 1 1 0 0 0 0 -0.025 0.025
name = ダイポール
feed = Z 0 0 0 1 0 50
frequency = 3e9 3e9 0
solver = 1000 100 1e-4
plotiter = 1 1
plotsmith = 1
plotzin = 1
plotyin = 1
plotref = 1
plotfar1d = X 72
far1dstyle = 0
far1dcomponent = 1 0 0
far1ddb = 1
plotfar2d = 18 36
far2dcomponent = 1 0 0 0 0 0 0
far2ddb = 1
far2dobj = 0.5
plotnear1d = E Z 0.03 0
near1ddb = 0
near1dexclude = 0
plotnear2d = E X 0.03
near2ddb = 0
near2ddim = 1 1
near2dcontour = 0
near2dobj = 1
near2dexclude = 0
#window2d = 750 500 15 0
#window3d = 600 600 12 60 30
end

4.3.2 入力データの書式と意味

表4-3-1と表4-3-2に入力データの書式と意味を示します。
ここでは説明の都合上計算部とポスト処理部に分けていますが、 データファイルは両者が結合したものです。 データの並びは任意でかまいませんが以下の順序を推奨します。
"必須"が○は1個以上必要なデータです。 これが入力されていないときはメッセージを出して計算が終了します。
"必須"が△は必要なときは入力する必要があるデータです(既定値がないもの)。
書式の"R I C"は順に実数、整数、文字列です。
"..."はデータ数が可変であることを表します。
"[]"はオプションです。その前のデータによっては必要になります。
"[|]"はどちらかを選択するデータです。
実数のところに整数を入力すると実数とみなされます。例えば"1"は"1.0"となります。
単位はすべてMKSA単位系です。角度の単位は度です。

表4-3-1 入力データの書式と意味(計算部)
No.キーワード必須書式(R:実数,I:整数,C:文字列)意味
(1)title任意の文字列(空白も含む)タイトル
(2)xmeshR1 I1 R2 ...X方向メッシュ
(3)ymeshR1 I1 R2 ...Y方向メッシュ
(4)zmeshR1 I1 R2 ...Z方向メッシュ
(5)materialI1 [R1 R2 R3 R4 | C1]物性値(複数行可)
(6)geometryI1 I2 R1 R2 R3 R4 R5 R6 [R7 R8]物体形状(複数行可)
(7)name任意の文字列(空白も含む)直前の物体形状の名前
(8)feedC1 R1 R2 R3 R4 R5 R6給電点(複数行可)
(9)planewaveR1 R2 I1平面波入射
(10)semispaceI1 R1背景媒質半領域
(11)fullspaceI1背景媒質全領域
(12)abcI1 [I2 R1 R2]吸収境界条件
(13)pbcI1 I2 I3周期境界条件
(14)frequencyR1 R2 I1周波数
(15)solverI1 I2 R1反復計算パラメーター
(16)loadC1 R1 R2 R3 C2 R4集中定数(複数行可)
(17)pointC1 R1 R2 R3 [C2]Sパラメータ用観測点(複数行可)

表4-3-2 入力データの書式と意味(ポスト処理部)
No.キーワード必須書式(R:実数,I:整数,C:文字列)意味
(18)matchinglossI1利得に整合損を含めるか(0/1)
(19)plotiterI1 I2収束状況の図形出力(0/1) (2D)
(20)plotsmithI1スミスチャートの図形出力(0/1) (2D)
(21)plotzinI1 [R1 R2 I2]入力インピーダンスの図形出力(0/1/2) (2D)
(22)plotyinI1 [R1 R2 I2]入力アドミッタンスの図形出力(0/1/2) (2D)
(23)plotrefI1 [R1 R2 I2]反射係数の図形出力(0/1/2) (2D)
(24)plotsparaI1 [R1 R2 I2]Sパラメーターの図形出力(0/1/2) (2D)
(25)plotlossI1 [R1 R2 I2]全損失の図形出力(0/1/2) (2D)
(26)plotcouplingI1 [R1 R2 I2]結合度の図形出力(0/1/2) (2D)
(27)plotfar0dR1 R2 I1 [R3 R4 I2]指定した方向の遠方界の周波数特性 (2D)
(28)freqdivI1周波数軸の分割数
(29)plotfar1dC1 I1 [R1]遠方界面上パターン図(複数行可) (2D)
(30)far1dstyleI1遠方界面上の出力形式(0/1)
(31)far1dcomponentI1 I2 I3遠方界面上の成分(0/1)
(32)far1ddbI1遠方界面上の単位(0/1)
(33)far1dnormI1遠方界面上を最大値で正規化するか(0/1)
(34)far1dscaleR1 R2 I1遠方界面上のスケール
(35)plotfar2dI1 I2遠方界全方向パターン図 (3D)
(36)far2dcomponentI1 I2 I3 I4 I5 I6 I7遠方界全方向の成分(0/1)
(37)far2ddbI1遠方界全方向の単位(0/1)
(38)far2dscaleR1 R2遠方界全方向のスケール
(39)far2dobjR1遠方界全方向の物体表示の大きさ
(40)plotnear1dC1 C2 R1 R2近傍界線上分布図(複数行可) (2D)
(41)near1ddbI1近傍界線の単位(0/1)
(42)near1dscaleR1 R2 I1近傍界線のスケール
(43)near1dexcludeI1近傍界線の電界の意味(0/1/2)
(44)plotnear2dC1 C2 R1近傍界面上分布図(複数行可) (2D+3D)
(45)near2ddimI1 I2近傍界面の2D/3Dの選択(0/1)
(46)near2dframeオプションI1近傍界面の動画のフレーム数
(47)near2ddbI1近傍界面の単位(0/1)
(48)near2dscaleR1 R2近傍界面のスケール
(49)near2dcontourI1近傍界面の描画方法(0/1/2/3)
(50)near2dobjI1近傍界面に物体を描くか(0/1/2)
(51)near2dexcludeI1近傍界面の電界の意味(0/1/2)
(52)near2dzoomR1 R2 R3 R4近傍界面の一部拡大
(53)window2dI1 I2 I3 I42Dウィンドウサイズ、フォントサイズ、フォント名
(54)window3dI1 I2 I3 R1 R23Dウィンドウサイズ、フォントサイズ、初期視点のθとφ

入力データの詳細

計算部

(1) title
空白を含む任意の文字列を入力することができます(日本語も可能です)。 タイトルは標準出力と図形出力に表示されます。データの管理に使ってください。

(2)(3)(4) xmesh/ymesh/zmesh
計算領域のメッシュ分割を行うデータです。 データは順に、"区間区切り1 分割数1 区間区切り2 ..."となります。 従ってデータの数は奇数(=3,5,7,...)です。 各区間が指定した分割数で等分割されます。 区間区切りは小さい順に入力してください。

(5) material
最初のデータが1のときは数値で入力することを意味し、 以降のデータは複素比誘電率と複素比透磁率を εr'r-jε''r, μr'r-jμ''r と書いたときの ε'r''r, μ'r''r です。すべて無次元の数値です。通常の材質は ε''r>=0, μ''r>=0 であることに注意してください。
最初のデータが2のときは分散性材質であることを意味し、次のデータは分散ファイル名です。 分散ファイル名の書式は4.3.3を参照してください。
真空(物性値番号0)と完全導体(PEC)(物性値番号1)は予め登録されており入力は不要です。
ここで入力した物性値に上から順に物性値番号2,3,...が与えられ、 geometry行の物性値番号で使用されます。

(6) geometry
I1は物性値番号、I2は形状番号です。
形状番号の意味と必要な座標データは以下の通りです。

形状番号と入力座標については図4-3-1を参考にして下さい。 座標の数は三角柱は8個、それ以外は6個です。
(重要)
複数の幾何形状が重複する場所の物性値は後から入力されたデータが優先されます。

(7) name
直前のgeometryの名前を指定します。オプションであり計算には使用しません。

(8) feed
C1はX/Y/Zのいずれかであり、給電の向きを表します。
R1,R2,R3は給電点のX/Y/Z座標、 R4,R5は給電電圧の振幅[V]と位相[度]、 R6は給電線の特性インピーダンス[Ω]です。
給電点はYee格子の電界点に設定されますので、 計算に用いられる位置は入力した座標に最も近く向きの一致する電界点になります。

(9) planewave
R1,R2:原点から見た入射方向のθ[度]とφ[度]
I1=1:垂直偏波,2:水平偏波,3:右旋円偏波,4:左旋円偏波

(10) semispace
I1=1:X半領域,2:Y半領域,3:Z半領域
R1:半領域の境界面の座標
平面波入射のとき有効です。
既定値は背景媒質は真空です。

(11) fullspace
I1=1:全領域を背景媒質とします
平面波入射のとき有効です。
既定値は背景媒質は真空です。

(12) abc
I1=0のときはMur一次となり、それ以降のデータは不要です。
I1=1のときはPMLとなり、I2=L, R1=M, R2=R0です。(推奨値は"5 2 1e-5"です)
既定値はMur一次です。

(13) pbc
I1=1:X方向周期境界条件
I2=1:Y方向周期境界条件
I3=1:Z方向周期境界条件
(注意)
周期境界条件を指定したときは、その他の境界面の吸収境界条件にはMur一次が適用されます。

(14) frequency
R1=開始周波数、R2=終了周波数、I1=周波数分割数です。
周波数の数は周波数分割数+1になります。
単一周波数のときは開始周波数=終了周波数とし周波数分割数を0にしてください。

(15) solver
I1=最大反復回数、I2=出力間隔、R1=収束判定条件です。
本データはオプションであり、既定値は I1=3000, I2=100, R1=1e-3 ですが、 収束判定条件は計算精度と計算時間に影響しますので問題に応じて適切な値を設定してください。 1e-3〜1e-5程度を推奨します。
[最大反復回数]は十分収束するだけの大きな数値を指定してください。 ただし収束状況がよくないときは最大反復回数を適当に設定して計算を強制的に終了させることもできます。
[出力間隔]は100-500程度が適当です。

(16) load
C1:X/Y/Zのいずれか、集中定数の向き
R1,R2,R3:集中定数のX/Y/Z座標
C2:R/C/Lのいずれか、順に抵抗/キャパシタ/インダクタ
R4:抵抗のR[Ω]/キャパシタのC[Farad]/インダクタのL[Henry]
計算に用いられる位置は入力した座標に最も近く向きの一致する電界点になります。

(17) point
本データが入力されたときSパラメーターが計算されます。
C1はX/Y/Zのいずれかであり、観測する電界の向きを表します。
R1,R2,R3は観測点のX/Y/Z座標です。
入力した順にポート番号1,2,3,...が与えられます。 最初のデータ(ポート番号1)だけC2に伝搬方向の向き(+X/-X/+Y/-Y/+Z/-Zのいずれか)が必要です。
観測点はYee格子の電界点に設定されますので、 計算に用いられる位置は入力した座標に最も近く向きの一致する電界点になります。

ポスト処理部

(18) matchingloss
利得に整合損を含めるか。
I1=0/1:含めない/含める
既定値は0です。

(19) plotiter (2D)
収束状況を図形出力します。既定値は"0 0"です。
I1=1のとき残差を図形出力します。
I2=1のとき平均電界誤差を図形出力します。
数値出力は常に標準出力とファイルoth.logに出力されます。

(20) plotsmith (2D)
スミスチャートを図形出力します。
I1=0/1:図形出力しない/図形出力する

(21) plotzin (2D)
入力インピーダンスの周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[Ω]、最大[Ω]、分割数

(22) plotyin (2D)
入力アドミッタンスの周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[S]、最大[S]、分割数
R1,R2の単位はSです。例えば100mSのときは"0.1"または"100e-3"と入力してください。

(23) plotref (2D)
反射係数の周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[dB]、最大[dB]、分割数

(24) plotspara (2D)
Sパラメーターの周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[dB]、最大[dB]、分割数

(25) plotloss (2D)
全損失の周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[dB]、最大[dB]、分割数

(26) plotcoupling (2D)
結合度の周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[dB]、最大[dB]、分割数

(27) plotfar0d (2D)
指定した方向の遠方界の周波数特性を出力します。
R1=θ[度]
R2=φ[度]
I1=1/2:自動スケール/指定スケール
I1=2のときはさらに以下の3個が必要です。
R3,R4,I2:最小[dB]、最大[dB]、分割数

(28) freqdiv
周波数軸の分割数を指定します。既定値は10です。

(29) plotfar1d (2D)
C1はX/Y/Z/V/Hのいずれかであり、それぞれX面/Y面/Z面/φ一定面/θ一定面を表します。
I1は全方向360度の分割数です。
C1がV/HのときはR1が必要です。それぞれ一定値のφ/θ[度]を意味します。

(30) far1dcomponent
遠方界面上の図形出力の成分を指定します。
I1=1のときθ成分とφ成分を図形出力します。
I2=1のとき楕円偏波の主軸と副軸を図形出力します。
I3=1のとき左右円偏波成分を図形出力します。
既定値は"1 0 0"です。
なおfar1d.logへの数値出力は常に全成分が出力されます。

(31) far1dstyle
遠方界面上の図形出力の形式を指定します。0:円プロット(既定値), 1:XYプロット

(32) far1ddb
遠方界面上の図形出力の単位を指定します。
I1=0:線形、I1=1:dB
既定値はdBです。

(33) far1dnorm
遠方界面上の図形出力を最大値で正規化を指定します。
I1=0/1:しない/する
最大値で正規化すると、単位がdBのときは最大値=0dBとなり、単位が線形のときは最大値=1になります。
既定値は正規化しません。

(34) far1dscale
遠方界面上の図形出力のスケールを指定します。
R1=最小値
R2=最大値
I1=分割数
既定値は適当なスケールが割り当てられます。

(35) plotfar2d (3D)
遠方界の全方向の指向性パターンを図形出力します。
I1はθ方向(0-180度)の分割数、I2はφ方向(0-360度)の分割数です。

(36) far2dcomponent
遠方界全方向の図形出力の成分を指定します。
I1=1のとき絶対値を図形出力します。
I2=1のときθ成分を図形出力します。
I3=1のときφ成分を図形出力します。
I4=1のとき楕円偏波の主軸を図形出力します。
I5=1のとき楕円偏波の副軸を図形出力します。
I6=1のとき右旋円偏波成分を図形出力します。
I7=1のとき左旋円偏波成分を図形出力します。
既定値は"1 0 0 0 0 0 0"です。
なおfar2d.logへの数値出力は常に全成分が出力されます。

(37) far2ddb
遠方界全方向の図形出力の単位を指定します。
I1=0:線形、I1=1:dB
既定値はdBです。

(38) far2dscale
遠方界全方向の図形出力のスケールを指定します。
R1=最小値
R2=最大値
既定値は適当なスケールが割り当てられます。

(39) far2dobj
遠方界全方向の図形出力の物体表示の大きさを指定します。
R1=相対的な大きさ。0とすると物体は表示されません。
既定値は0.5です。

(40) plotnear1d (2D)
近傍界の指定した線分上の電界または磁界の分布図を図形出力します。
C1=EのときEとEx,Ey,Ezの振幅を図形出力します。ここでEはEベクトルの合成値です。
C1=Ex/Ey/EzのときそれぞれEx/Ey/Ezの振幅と位相を図形出力します。
C1=HのときHとHx,Hy,Hzの振幅を図形出力します。ここでHはHベクトルの合成値です。
C1=Hx/Hy/HzのときそれぞれHx/Hy/Hzの振幅と位相を図形出力します。
C2はX/Y/Zのいずれかであり、それぞれX方向/Y方向/Z方向を表します。
R1,R2はX方向のときはY/Z座標、Y方向のときはZ/X座標、Z方向のときはX/Y座標です。

(41) near1ddb
近傍界線上分布図の単位を指定します。
I1=0:線形、I1=1:dB
既定値は線形です。

(42) near1dscale
近傍界線上分布図のスケールを指定します。
R1=最小値
R2=最大値
I1=縦軸の分割数
既定値は適当なスケールが割り当てられます。

(43) near1dexclude
近傍界線上分布図の電界の種類を指定します。平面波入射のとき意味があります。
I1=0:全電界(既定値)
I1=1:散乱電界のみ
I1=2:入射電界のみ

(44) plotnear2d (2D+3D)
近傍界の指定した面上の電界または磁界の分布図を図形出力します。
C1はE/Ex/Ey/Ez/H/Hx/Hy/Hzのいずれかです。ここでE/Hはベクトルの合成値です。 E/Hのときは1ページ、Ex/Ey/Ez/Hx/Hy/Hzのときは振幅と位相の2ページが図形出力されます。
C2はX/Y/Zのいずれかであり、それぞれX一定面/Y一定面/Z一定面を表します。
R1はそれぞれ一定値のX/Y/Z座標です。

(45) near2ddim
近傍界面上分布図の2Dと3Dを選択します。
I1=1:2D図を出力します(既定値)。
I2=1:3D図を出力します(既定値)。

(46) near2dframe
近傍界面上分布図の動画(2D)のフレーム数を指定します。
I1=1周期のフレーム数
既定値は動画は出力しません。

(47) near2ddb
近傍界面上分布図の単位を指定します。
I1=0:線形、I1=1:dB
既定値は線形です。

(48) near2dscale
近傍界面上分布図のスケールを指定します。
R1=最小値
R2=最大値
既定値は適当なスケールが割り当てられます。

(49) near2dcontour
近傍界面上分布図の描画方法を指定します。
I1=0:カラー精細、1:カラー簡易、2:モノクロ精細、3:モノクロ簡易
既定値は0です。セル数が多いときは[簡易]を指定してください。

(50) near2dobj
I1=1のとき近傍界面上分布図に物体を描きます。 既定値は1です。

(51) near2dexclude
近傍界面上分布図の電界の種類を指定します。平面波入射のとき意味があります。
I1=0:全電界(既定値)
I1=1:散乱電界のみ
I1=2:入射電界のみ

(52) near2dzoom
近傍界面上分布図の一部のみを拡大して図形出力します。
R1,R2:横方向の下限と上限
R3,R4:縦方向の下限と上限
面の向きがX/Y/Z方向のとき、横-縦は順にY-Z/X-Z/X-Yです。

(53) window2d
図形出力2Dウィンドウの描画領域の大きさとフォントを指定します。
I1=幅
I2=高さ
I3=フォントサイズ
I4=フォント名(0=sansserif, 1=serif, 2=monospace)
幅、高さ、フォントサイズの単位はピクセルです。既定値は"750 500 15 0"です。幅と高さの比は3:2を推奨します。

(54) window3d
形状出力3Dウィンドウの大きさと初期視点を指定します。
I1=幅
I2=高さ
I3=フォントサイズ
R1=初期視点のθ[度]
R2=初期視点のφ[度]
幅、高さ、フォントサイズの単位はピクセルです。既定値は"600 600 12 60 30"です。幅と高さの比は1:1を推奨します。





図4-3-1 形状番号と入力座標

4.3.3 分散ファイルの書式

表4-3-3に分散ファイルの一例を示します。
第一行は周波数の数です。
以降の各行は順に、周波数[Hz], ε'r''r, μ'r''r です。
任意の周波数の物性値はこのテーブルを補間します。
分散ファイルはフォルダdata/dispersionに置いてください。

表4-3-3 分散ファイルの一例
5
1.0e9 2.8 0.1 2.5 0.2
2.0e9 2.6 0.2 2.3 0.3
3.0e9 2.4 0.3 2.1 0.4
4.0e9 2.2 0.2 1.9 0.3
5.0e9 2.0 0.1 1.7 0.2