5.3 入力データ作成

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

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

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

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

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

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


リスト5-3-1 入力データの一例
OpenFDTD 2 1
title = dipole antenna
xmesh = -5.000000e-002 20 5.000000e-002
ymesh = -5.000000e-002 20 5.000000e-002
zmesh = -7.500000e-002 10 -2.500000e-002 11 2.500000e-002 10 7.500000e-002
material = 2.0 0.0 1.0 0.0
geometry = 1 1 0 0 0 0 -0.025 0.025
name = ダイポール
feed = Z 0.000000e+000 0.000000e+000 0.000000e+000 1 0 50
frequency1 = 2e9 3e9 10
frequency2 = 3e9 3e9 0
solver = 1000 100 1e-3
plotiter = 1
plotfreq = 1 1 1 1 1
plotfar1d = X 36
far1dstyle = 0
far1dcomponent = 1 0 0
far1ddb = 1
plotfar2d = 18 36
far2dcomponent = 1 0 0 0 0 0 0
far2ddb = 1
plotnear1d = E Z 3.000000e-002 0.000000e+000
near1ddb = 0
plotnear2d = E X 3.000000e-002
near2ddb = 0
near2dobj = 1
window2d = 750 500 15
window3d = 500 500 60 30
end

入力データの書式と意味

表5-3-1と表5-3-2に入力データの書式と意味を示します。
ここでは説明の都合上計算部とポスト処理部に分けていますが、 データファイルは両者が結合したものです。 データの並びは任意でかまいませんが以下の順序を推奨します。
"必須"は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)nameオプション任意の文字列(空白も含む)直前の物体形状の名前
(8)feed必須C1 R1 R2 R3 R4 R5 R6給電点(複数行可)
(9)rfeedオプションR1給電点の内部抵抗[Ω]
(10)pulsewidthオプションR1給電電圧波形のパルス幅[sec]
(11)abcオプションI1 [I2 R1 R2]吸収境界条件
(12)frequency1(必須)R1 R2 I1第1周波数
(13)frequency2(必須)R1 R2 I1第2周波数
(14)solverオプションI1 I2 R1反復計算パラメーター
(15)timestepオプションR1反復計算タイムステップ[sec]
(16)pointオプションC1 R1 R2 R3 [C2]Sパラメータ用観測点(複数行可)

表5-3-2 入力データの書式と意味(ポスト処理部)
No.キーワード必須/オプション書式(R:実数,I:整数,C:文字列)意味
(17)plotiterオプションI1収束状況の図形出力(0/1) (2D)
(18)plotfreqオプションI1 I2 I3 I4 I5周波数特性の図形出力(0/1) (2D)
(19)plotfar1d(必須)C1 I1 [R1]遠方界面上パターン図(複数行可) (2D)
(20)far1dstyleオプションI1遠方界面上の出力形式(0/1)
(21)far1dcomponentオプションI1 I2 I3遠方界面上の成分(0/1)
(22)far1ddbオプションI1遠方界面上の単位(0/1)
(23)far1dscaleオプションR1 R2 I1遠方界面上のスケール
(24)plotfar2d(必須)I1 I2遠方界全方向パターン図 (3D)
(25)far2dcomponentオプションI1 I2 I3 I4 I5 I6 I7遠方界全方向の成分(0/1)
(26)far2ddbオプションI1遠方界全方向の単位(0/1)
(27)far2dscaleオプションR1 R2遠方界全方向のスケール
(28)plotnear1d(必須)C1 C2 R1 R2近傍界線上分布図(複数行可) (2D)
(29)near1ddbオプションI1近傍界線上の単位(0/1)
(30)near1dscaleオプションR1 R2 I1近傍界線上のスケール
(31)plotnear2d(必須)C1 C2 R1近傍界面上分布図(複数行可) (2D+3D)
(32)near2ddbオプションI1近傍界面上の単位(0/1)
(33)near2dscaleオプションR1 R2 I1近傍界面上のスケール
(34)near2dobjオプションI1近傍界面上に物体を描くか(0/1/2)
(35)window2dオプションI1 I2 I32Dウィンドウサイズ、フォントサイズ
(36)window3dオプションI1 I2 R1 R23Dウィンドウサイズ、初期視点のθとφ

入力データの詳細

(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行の物性値番号で使用されます。
複素比誘電率には以下の関係があります。
(5-3-1)

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

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

(7)name
直前のgeometryの名前を指定します。オプションです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(28)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座標です。

(29)near1ddb
近傍界観測線の図形出力の単位を指定します。
I1=0:線形、I1=1:dB
既定値は線形です。

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

(31)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座標です。

(32)near2ddb
近傍界観測面の図形出力の単位を指定します。
I1=0:線形、I1=1:dB
既定値は線形です。

(33)near2dscale
近傍界観測面の図形出力のスケールを指定します。
R1=最小値
R2=最大値
I1=色の数(0のとき連続色:推奨)
既定値は適当なスケールが割り当てられます。

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

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

(36)window3d
形状出力3Dウィンドウの大きさと初期視点を指定します。 I1=幅
I2=高さ
I3=初期視点のθ[度]
I4=初期視点のφ[度]
幅と高さの単位はピクセルです。既定値は"500 500 60 30"です。




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