5.3 入力データ作成

本プログラムの入力データは一つのテキストファイルです。
リスト5-3-1に一例を示します。

最初の行
最初の行は必ず"OpenFDTD 1"として下さい。 ここで数字の1は書式のバージョンを表し、将来の拡張に対応するためにあります。

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

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

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

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


リスト5-3-1 入力データの一例
OpenFDTD 1
title = dipole antenna
xmesh = -50e-3 20 +50e-3
ymesh = -50e-3 20 +50e-3
zmesh = -75e-3 10 -25e-3 11 +25e-3 10 +75e-3
material = 2.0 0.0 1.0 0.0
geometry = 1 1 0e-3 0e-3 0e-3 0e-3 -25e-3 +25e-3 コメント
feed = Z 0e-3 0e-3 0e-3 1 0 50
#rfeed = 10
#pulsewidth = 5e-10
abc = 0
#abc = 1 5 2 1e-5
frequency1 = 2e9 3e9 10
frequency2 = 3e9 3e9 0
solver = 1000 50 1e-3
#timestep = 5e-12
#point = Z 0e-3 0e-3 0e-3 +X
near1d = E Z 30e-3 0e-3
near2d = E X 30e-3
far = X 36
#plotiter = 1
#plotfreq = 1 1 1 1
#plotfar = 1 1 1
#nearscale = 1 -30 10
#near2dobj = 1
#near2dcolor = 20
#farstyle = 1
#farscale = -30 10
#feedlog = 1
#sparalog = 1
#farlog = 1
#window = 600 400 12
end

入力データの書式と意味

表5-3-1に入力データの書式と意味を示します。
ここで"必須"は必ず必要なデータです。 これが入力されていないときはメッセージを出して計算が終了します。
"(必須)"は必要なときは必ず入力しなければならないデータです(既定値がないもの)。
"オプション"は入力しないときは既定値が代入されるデータです。
書式の"R I C"は順に実数、整数、文字列です。 "..."はデータの数が可変であること、"[]"はオプションであることを表します。
実数のところに整数を入力すると実数とみなされます。例えば"1"は"1.0"となります。
実数の単位はすべてMKSA単位系を使って下さい。

表5-3-1 入力データの書式と意味
No.キーワード必須/オプション書式(R:実数,I:整数,C:文字列)意味
(1)titleオプション任意の文字列(空白も含む)タイトル
(2)xmesh必須R1 I1 R2 ...X方向メッシュ
(3)ymesh必須R1 I1 R2 ...Y方向メッシュ
(4)zmesh必須R1 I1 R2 ...Z方向メッシュ
(5)material(必須)R1 R2 R3 R4物性値(複数行可)
(6)geometry(必須)I1 I2 R1 R2 R3 R4 R5 R6幾何形状(複数行可)
(7)feed必須C1 R1 R2 R3 R4 R5 R6給電点(複数行可)
(8)rfeedオプションR1給電点の内部抵抗[Ω]
(9)pulsewidthオプションR1給電電圧波形のパルス幅[sec]
(10)abcオプションI1 [I2 R1 R2]吸収境界条件
(11)frequency1(必須)R1 R2 I1第1周波数
(12)frequency2(必須)R1 R2 I1第2周波数
(13)solverオプションI1 I2 R1反復計算パラメーター
(14)timestepオプションR1反復計算タイムステップ[sec]
(15)pointオプションC1 R1 R2 R3 [C2]Sパラメータ用観測点(複数行可)
(16)near1d(必須)C1 C2 R1 R2近傍界観測線(複数行可)
(17)near2d(必須)C1 C2 R1近傍界観測面(複数行可)
(18)far(必須)C1 I1 [R1]遠方界(複数行可)
(19)plotiterオプションI1収束状況の図形出力(0/1)
(20)plotfreqオプションI1 I2 I3 I4周波数特性の図形出力(0/1)
(21)plotfarオプションI1 I2 I3遠方界の図形出力(0/1)
(22)nearscaleオプションI1 R1 R2近傍界の図形出力の単位とスケール
(23)near2dobjオプションI1近傍界観測面の図形出力に物体を描くか(0/1)
(24)near2dcolorオプションI1近傍界観測面の図形出力の色の数
(25)farstyleオプションI1遠方界の図形出力の形式(0/1)
(26)farscaleオプションR1 R2遠方界の図形出力のスケール
(27)feedlogオプションI1入力インピーダンス他の標準出力(0/1)
(28)sparalogオプションI1Sパラメーターの標準出力(0/1)
(29)farlogオプションI1遠方界の標準出力(0/1)
(30)windowオプションI1 I2 I3ウィンドウサイズ、フォントサイズ

入力データの詳細

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

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

(5)material
データは順に、比誘電率、導電率[S/m]、比透磁率、導磁率[1/Sm]です。
真空(物性値番号0)と完全導体(PEC)(物性値番号1)は予め登録されています。 ここで入力した物性値に上から順に物性値番号2,3,...が与えられ、 geometry行の物性値番号で使用されます。

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

複数の幾何形状が重複する場所の物性値は後から入力されたデータが優先されます。
形状番号と入力座標については図5-3-1を参考にして下さい。
三角柱については最初の文字が底面の向き(X面/Y面/Z面のいずれか)、 次の文字が稜線の向き(X方向/Y方向/Z方向のいずれか)を表します。 座標については、例えば底面がX面のときは、底面のX座標、稜線のX座標の順に入力して下さい。 これにより+X/-X方向のどちらを向いているかが判別されます。

(7)feed
C1はX/Y/Zのいずれかであり、給電の向きを表します。
R1,R2,R3は給電点のX/Y/Z座標、 R4は給電電圧、R5は式(4-2)のtd(時間遅れ)、 R6は式(10-2)のZ0(給電線の特性インピーダンス)です。
給電点はYee格子の電界点に設定されますので、 計算に用いられる位置は入力した座標に最も近く向きの一致する電界点になります。

(8)rfeed
収束を早めるときに使用します。既定値は0です。
複数の給電点があるときはすべての給電点に適用されます。

(9)pulsewidth
既定値は式(2-4-5)です。通常は既定値で構いません。
複数の給電点があるときはすべての給電点に適用されます。

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

(11)(12)frequency1/frequency2
第1周波数はアンテナの入力インピーダンス等のFourier変換に使用されます。
第2周波数は近傍電磁界と遠方界のFourier変換に使用されます。
R1=開始周波数、R2=終了周波数、I1=周波数分割数です。
周波数の数は周波数分割数+1になります。 単一周波数のときは周波数分割数を0にして下さい。
第1周波数の分割数は第2周波数の分割数よりずっと多くとることが普通です。

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

(14)timestep
既定値はCourant条件(式(2-3-13)の右辺)です。 通常は既定値で構いません。

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

(16)near1d
C1はE/Hのどちらかです。
C2はX/Y/Zのいずれかであり、それぞれX方向/Y方向/Z方向を表します。
R1,R2はX方向のときはY/Z座標、Y方向のときはZ/X座標、Z方向のときはX/Y座標です。

(17)near2d
C1はE/Ex/Ey/Ez/H/Hx/Hy/Hzのいずれかです。ここでE/Hはベクトルの合成値です。
C2はX/Y/Zのいずれかであり、それぞれX一定面/Y一定面/Z一定面を表します。
R1はそれぞれ一定値のX/Y/Z座標です。

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

(19)plotiter
収束状況を図形出力するかどうか指定します。既定値は"1"です。
数値出力は常に標準出力とファイルofd.logに出力されます。

(20)plotfreq
周波数特性を図形出力するかどうか指定します。既定値は"1 1 1 1"です。
I1=1のとき入力インピーダンスの周波数特性を図形表示します。
I2=1のとき入力アドミッタンスの周波数特性を図形表示します。
I3=1のとき反射損失の周波数特性を図形表示します。
I4=1のときSパラメーターの周波数特性を図形表示します。
なおfeed.logとspara.logへの数値出力は常に行われます。

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

(22)nearscale
近傍界観測線と観測面の図形出力の単位とスケールを指定します。
単位はI1=0のとき線形、I1=1のときdBです。
スケールはR1=最小値、R2=最大値です。
本データがないときは、単位=線形となり最小値と最大値は自動的に決められます。

(23)near2dobj
I1=1のとき近傍界観測面の図形出力に物体を描きます。 既定値は1です。

(24)near2dcolor
近傍界観測面の図形出力の等高線図の色の数を指定します。 既定値は0であり、このとき連続色になります。

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

(26)farscale
遠方界の図形出力の最小値と最大値をdBで指定します。 省略したときは自動的に設定されます。

(27)feedlog
I1=1のときアンテナの入力インピーダンスを標準出力に出力します。 既定値は"1"です。
なおfeed.logへの数値出力は常に行われます。

(28)sparalog
I1=1のときSパラメーターを標準出力に出力します。 既定値は"1"です。
なおspara.logへの数値出力は常に行われます。

(29)farlog
I1=1のとき遠方界パターンを標準出力に出力します。 既定値は"0"です。
なおfar.logへの数値出力は常に行われます。

(30)window
図形出力の領域の幅と高さと文字のフォントサイズを指定します。 単位はピクセルです。既定値は"750 500 15"です。
幅と高さの比は3:2を推奨します。




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