OpenFDTDの入力データは一つのテキストファイルです。
リスト5-4-1に一例を示します。
最初の行
最初の行は必ず"OpenFDTD 4 3"としてください。
ここで数字は書式のバージョンを表します。OpenFDTDのデータは上位互換性があります。
すなわち古いバージョンのデータは新しいバージョンでも使えます。
最後の行
最後の行は必ず"end"としてください。
この行の下は読み込まれませんので、コメントやデータの一時退避に使用することができます。
データ本体
最初の行と最後の行以外がデータの本体です。書式は
キーワード = データ1 データ2 ...
となります。キーワードはすべて小文字です。データは数値または文字列です。
等号"="の前後とデータの間には1個以上のスペースを置いてください。
データの入力順は任意ですが、リスト5-3-1の順を推奨します。
コメント行
最初の文字が"#"である行はコメント行です。その行は飛ばされます。
行内コメント
所定の数のデータの後ろに1個以上の空白の後に任意のコメントを入力することができます。
ただし、データの数が不定である行(xmesh/ymesh/zmseh)にはコメントは入力できません。
リスト5-4-1 入力データの一例
OpenFDTD 4 3 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 frequency1 = 2e9 3e9 5 frequency2 = 3e9 3e9 0 solver = 1000 100 1e-3 #plot3dgeom = 1 plotiter = 1 plotfeed = 0 plotpoint = 0 plotsmith = 1 plotzin = 1 plotyin = 1 plotref = 1 plotfar1d = X 36 far1dstyle = 0 far1dcomponent = 1 0 0 far1ddb = 1 far1dnorm = 0 plotfar2d = 18 36 far2dcomponent = 1 0 0 0 0 0 0 far2ddb = 1 far2dobj = 0.5 plotnear1d = E Z 0.03 0 near1ddb = 0 plotnear2d = E X 0.03 near2ddim = 1 1 near2ddb = 0 near2dcontour = 0 near2dobj = 1 window2d = 750 500 15 0 window3d = 600 600 12 0 60 30 end
表5-4-1と表5-4-2に入力データの書式と意味を示します。
ここでは説明の都合上計算部とポスト処理部に分けていますが、
データファイルは両者が結合したものです。
データの並びは任意でかまいませんが以下の順序を推奨します。
必須/必要/オプション
"必須"は必ず必要なデータです。これがないときはメッセージを出して計算が終了します。
"必要"は必要なときは必要なデータです。(既定値がないもの)
"オプション"はないときは既定値が代入されるデータです。
これがないときは計算とポスト処理は既定値を用いて行われます。
書式
書式の"R I C"は順に実数、整数、文字列です。
"..."はデータ数が可変であることを表します。
"[]"はオプションです。その前のデータによっては必要になります。
実数のところに整数を入力すると実数とみなされます。例えば"1"は"1.0"となります。
単位はすべてMKSA単位系です。角度の単位は度です。
YES/NOのところでは1がYES、0がNOです。
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 | 必要 | I1 R1 R2 R3 R4 C1 | 物性値(複数行可) |
(6) | geometry | 必須 | I1 I2 R1 R2 R3 R4 R5 R6 [R7 R8] | 物体形状(複数行可) |
(7) | name | オプション | 任意の文字列(空白も含む) | 直前の物体形状の名前 |
(8) | feed | 必要 | C1 R1 R2 R3 R4 R5 R6 | 給電点(複数行可) |
(9) | rfeed | オプション | R1 | 給電点の内部抵抗[Ω] |
(10) | waveform | オプション | I1 | 給電点の時間波形 |
(11) | pulsewidth | オプション | R1 | 給電点波形のパルス幅[sec] |
(12) | planewave | 必要 | R1 R2 I1 | 平面波入射 |
(13) | load | 必要 | C1 R1 R2 R3 C2 R4 | 集中定数 |
(14) | abc | オプション | I1 [I2 R1 R2] | 吸収境界条件 |
(15) | pbc | オプション | I1 I2 I3 | 周期境界条件 |
(16) | frequency1 | 必須 | R1 R2 I1 | 第1周波数 |
(17) | frequency2 | 必須 | R1 R2 I1 | 第2周波数 |
(18) | solver | オプション | I1 I2 R1 | 反復計算パラメーター |
(19) | timestep | オプション | R1 | 反復計算タイムステップ[sec] |
(20) | point | オプション | C1 R1 R2 R3 [C2] | Sパラメータ用観測点(複数行可) |
(21) | plot3dgeom | オプション | I1 | 物体形状を3D図形出力するか |
No. | キーワード | 必須/必要/オプション | 書式(R:実数,I:整数,C:文字列) | 意味 |
---|---|---|---|---|
(22) | matchingloss | オプション | I1 | 利得に整合損を含めるか(0/1) |
(23) | plotiter | 必要 | I1 | 収束状況の図形出力(0/1) (2D) |
(24) | plotfeed | 必要 | I1 | 給電点波形・スペクトルの図形出力(0/1) (2D) |
(25) | plotpoint | 必要 | I1 | 観測点波形・スペクトルの図形出力(0/1) (2D) |
(26) | plotsmith | 必要 | I1 | スミスチャートの図形出力(0/1) (2D) |
(27) | plotzin | 必要 | I1 [R1 R2 I2] | 入力インピーダンスの図形出力(0/1/2) (2D) |
(28) | plotyin | 必要 | I1 [R1 R2 I2] | 入力アドミッタンスの図形出力(0/1/2) (2D) |
(29) | plotref | 必要 | I1 [R1 R2 I2] | 反射係数の図形出力(0/1/2) (2D) |
(30) | plotspara | 必要 | I1 [R1 R2 I2] | Sパラメーターの図形出力(0/1/2) (2D) |
(31) | plotcoupling | 必要 | I1 [R1 R2 I2] | 結合度の図形出力(0/1/2) (2D) |
(32) | plotfar0d | 必要 | R1 R2 I1 [R3 R4 I2] | 指定した方向の遠方界の周波数特性 (2D) |
(33) | freqdiv | オプション | I1 | 周波数軸の分割数 |
(34) | plotfar1d | 必要 | C1 I1 [R1] | 遠方界面上パターン図(複数行可) (2D) |
(35) | far1dstyle | オプション | I1 | 遠方界面上の出力形式(0/1) |
(36) | far1dcomponent | オプション | I1 I2 I3 | 遠方界面上の成分(0/1) |
(37) | far1ddb | オプション | I1 | 遠方界面上の単位(0/1) |
(38) | far1dnorm | オプション | I1 | 遠方界面上を最大値で正規化するか(0/1) |
(39) | far1dscale | オプション | R1 R2 I1 | 遠方界面上のスケール |
(40) | plotfar2d | 必要 | I1 I2 | 遠方界全方向パターン図 (3D) |
(41) | far2dcomponent | オプション | I1 I2 I3 I4 I5 I6 I7 | 遠方界全方向の成分(0/1) |
(42) | far2ddb | オプション | I1 | 遠方界全方向の単位(0/1) |
(43) | far2dscale | オプション | R1 R2 | 遠方界全方向のスケール |
(44) | far2dobj | オプション | R1 | 遠方界全方向の物体表示の大きさ |
(45) | plotnear1d | 必要 | C1 C2 R1 R2 | 近傍界線上分布図(複数行可) (2D) |
(46) | near1ddb | オプション | I1 | 近傍界線の単位(0/1) |
(47) | near1dscale | オプション | R1 R2 I1 | 近傍界線のスケール |
(48) | near1dnoinc | オプション | I1 | 近傍界線で入射波を除くか |
(49) | plotnear2d | 必要 | C1 C2 R1 | 近傍界面上分布図(複数行可) (2D+3D) |
(50) | near2ddim | オプション | I1 I2 | 近傍界面の2D/3D図の選択(0/1) |
(51) | near2dframe | オプション | I1 | 近傍界面の動画のフレーム数 |
(52) | near2ddb | オプション | I1 | 近傍界面の単位(0/1) |
(53) | near2dscale | オプション | R1 R2 | 近傍界面のスケール |
(54) | near2dcontour | オプション | I1 | 近傍界面の描画方法(0/1/2/3) |
(55) | near2dobj | オプション | I1 | 近傍界面に物体を描くか(0/1/2) |
(56) | near2dnoinc | オプション | I1 | 近傍界面で入射波を除くか |
(57) | near2dzoom | オプション | R1 R2 R3 R4 | 近傍界面の一部拡大 |
入力データの詳細
■ 計算部
(1) title
タイトル
空白を含む任意の文字列を入力することができます(日本語も可能です)。
タイトルは標準出力と図形出力に表示されます。データの管理に使ってください。
(2)(3)(4) xmesh/ymesh/zmesh
メッシュ
計算領域のメッシュ分割を行うデータです。
データは順に、"区間区切り1 分割数1 区間区切り2 ..."となります。
従ってデータの数は奇数(=3,5,7,...)です。
各区間が指定した分割数で等分割されます。
区間区切りは小さい順に入力してください。
(5) material
物性値
最初のデータは種別(=1/2)を表します。
種別=1のときは通常の媒質(非分散性媒質)を表し、
以下のデータは比誘電率ε'r、導電率σ[S/m]、
比透磁率μ'r、導磁率σm[1/Sm]です。
種別=2のときは分散性媒質を表し、
以下のデータはε∞, a[1/s], b[1/s], c[1/s]です。
真空(物性値番号0)と完全導体(PEC)(物性値番号1)は予め登録されています。
ここで入力した物性値に上から順に物性値番号2,3,...が与えられ、
geometry行の物性値番号で使用されます。
最後の文字列はオプションで、物性値の説明に使用してください。計算には使用しません。
複素比誘電率と複素比透磁率については式(5-1-1)(5-1-2)を参考にしてください。
(6) geometry
物体形状
I1は物性値番号、I2は形状番号です。
形状番号の意味と必要な座標データは以下の通りです。
(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) waveform
給電点の時間波形
I1=0:微分ガウスパルス、I1=1:ガウスパルス。既定値は0であり、通常は既定値で問題ありません。
(11) pulsewidth
パルス幅
既定値は式(2-4-5)です。通常は既定値で問題ありません。
複数の給電点があるときはすべての給電点に適用されます。
(12) planewave
平面波入射
R1,R2は原点から入射方向を見たθとφ(単位:度)です。
I1は偏波方向を表し、I1=1のとき垂直偏波、I1=2のとき水平偏波です。
(重要)
給電点と平面波入射はどちらか一方が有効です。
(13) load
集中定数
複数入力可能です。
C1はX/Y/Zのいずれかであり、集中定数の向きを表します。
R1,R2,R3は集中定数のX/Y/Z座標、C2はR/C/Lのいずれかです。
R4はR/C/Lの値であり、単位はそれぞれΩ/F/H(MKSA)です。
集中定数はYee格子の電界点に設定されますので、
計算に用いられる位置は入力した座標に最も近く向きの一致する電界点になります。
(14) abc
吸収境界条件
I1=0のときはMur一次となり、それ以降のデータは不要です。
I1=1のときはPMLとなり、I2=L, R1=M, R2=R0です。(推奨値は"5 2 1e-5"です)
既定値はMur一次です。
(15) pbc
周期境界条件
I1=1/I2=1/I3=1のときX/Y/Z方向に周期境界条件を指定します。
(16)(17) frequency1/frequency2
周波数
第1周波数はアンテナの入力インピーダンス等のFourier変換に使用されます。
第2周波数は近傍電磁界と遠方界のFourier変換に使用されます。
R1=開始周波数、R2=終了周波数、I1=周波数分割数です。
周波数の数は周波数分割数+1になります。
単一周波数のときは周波数分割数を0にしてください。
第1周波数の分割数は第2周波数の分割数よりずっと多くとることが普通です。
(重要)
第2周波数の分割数が大きくなると計算時間と使用メモリーが増えます。
第2周波数の分割数は必要最小限にしてください。
(18) solver
計算条件
I1=最大反復回数、I2=平均電磁界計算間隔、R1=収束判定条件です。
本データはオプションであり、既定値は I1=3000, I2=100, R1=1e-3 ですが、
計算時間や計算精度に影響しますので問題に応じて適切な値を設定してください。
[収束判定条件]の推奨値は1e-3です。
[最大反復回数]は十分収束するだけの大きな数値を指定してください。
ただし収束状況がよくないときは最大反復回数を適当に設定して計算を強制的に終了させることもできます。
[平均電磁界計算間隔]は通常20-200程度の値を代入してください。
この間隔で収束を判定します。
(19) timestep
タイムステップ
既定値はCourant条件(式(2-3-13)の右辺)です。
通常は既定値で構いません。
(20) point
観測点
本データが入力されたときSパラメーターが計算されます。
C1はX/Y/Zのいずれかであり、観測する電界の向きを表します。
R1,R2,R3は観測点のX/Y/Z座標です。
入力した順にポート番号1,2,3,...が与えられます。
最初のデータ(ポート番号1)だけC2に伝搬方向の向き(+X/-X/+Y/-Y/+Z/-Zのいずれか)が必要です。
観測点はYee格子の電界点に設定されますので、
計算に用いられる位置は入力した座標に最も近く向きの一致する電界点になります。
(21) plot3dgeom (3D)
物体形状図形出力
I1=1のとき物体形状をgeom.ev3とgeom3d.htmに図形出力して計算を行わずに終了します。
CUI環境での入力データの確認に使用します。
既定値はI1=0です。
■ ポスト処理部
(22) matchingloss
利得に整合損を含めるか。既定値は0です。
(23) plotiter (2D)
収束状況を図形出力するか。既定値は0です。
数値出力は常に標準出力とファイルofd.logに出力されます。
(24) plotfeed (2D)
給電点の時間波形とスペクトルを図形出力と数値出力するか。既定値は0です。
(25) plotpoint (2D)
観測点の時間波形とスペクトルを図形出力と数値出力するか。既定値は0です。
(26) plotsmith (2D)
スミスチャートを図形出力するか。既定値は0です。
(27) plotzin (2D)
入力インピーダンスの周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[Ω]、最大[Ω]、分割数
(28) plotyin (2D)
入力アドミッタンスの周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[S]、最大[S]、分割数
R1,R2の単位はSです。例えば100mSのときは"0.1"または"100e-3"と入力してください。
(29) plotref (2D)
反射係数の周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[dB]、最大[dB]、分割数
(30) plotspara (2D)
Sパラメーターの周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[dB]、最大[dB]、分割数
(31) plotcoupling (2D)
結合度の周波数特性を図形出力します。
I1=0/1/2:図形出力しない/自動スケールで図形出力する/指定スケールで図形出力する
I1=2のときはさらに以下の3個が必要です。
R1,R2,I2:最小[dB]、最大[dB]、分割数
(32) plotfar0d (2D)
指定した方向の遠方界の周波数特性を出力します。
R1=θ[度]
R2=φ[度]
I1=1/2:自動スケール/指定スケール
I1=2のときはさらに以下の3個が必要です。
R3,R4,I2:最小[dB]、最大[dB]、分割数
(33) freqdiv
周波数軸の分割数を指定します。既定値は10です。
(34) plotfar1d (2D)
指定した面上の遠方界を図形出力します。
C1はX/Y/Z/V/Hのいずれかであり、それぞれX面/Y面/Z面/φ一定面/θ一定面を表します。
I1は全方向360度の分割数です。
C1がV/HのときはR1が必要です。それぞれ一定値のφ/θ[度]を意味します。
(35) far1dcomponent
遠方界面上の図形出力の成分を指定します。
I1=1のときθ成分とφ成分を図形出力します。
I2=1のとき楕円偏波の主軸と副軸を図形出力します。
I3=1のとき左右円偏波成分を図形出力します。
既定値は"1 0 0"です。
なおfar1d.logへの数値出力は常に全成分が出力されます。
(36) far1dstyle
遠方界面上の図形出力の形式を指定します。0:円プロット(既定値), 1:XYプロット
(37) far1ddb
遠方界面上の図形出力の単位を指定します。
I1=0:線形、I1=1:dB
既定値はdBです。
(38) far1dnorm
遠方界面上の図形出力を最大値で正規化を指定します。
I1=0/1:しない/する
最大値で正規化すると、単位がdBのときは最大値=0dBとなり、単位が線形のときは最大値=1になります。
既定値は正規化しません。
(39) far1dscale
遠方界面上の図形出力のスケールを指定します。
R1=最小値
R2=最大値
I1=分割数
既定値は適当なスケールが割り当てられます。
(40) plotfar2d (3D)
遠方界の全方向の指向性パターンを図形出力します。
I1はθ方向(0-180度)の分割数、I2はφ方向(0-360度)の分割数です。
(41) far2dcomponent
遠方界全方向の図形出力の成分を指定します。
I1=1のとき絶対値を図形出力します。
I2=1のときθ成分を図形出力します。
I3=1のときφ成分を図形出力します。
I4=1のとき楕円偏波の主軸を図形出力します。
I5=1のとき楕円偏波の副軸を図形出力します。
I6=1のとき右旋円偏波成分を図形出力します。
I7=1のとき左旋円偏波成分を図形出力します。
既定値は"1 0 0 0 0 0 0"です。
なおfar2d.logへの数値出力は常に全成分が出力されます。
(42) far2ddb
遠方界全方向の図形出力の単位を指定します。
I1=0:線形、I1=1:dB
既定値はdBです。
(43) far2dscale
遠方界全方向の図形出力のスケールを指定します。
R1=最小値
R2=最大値
既定値は適当なスケールが割り当てられます。
(44) far2dobj
遠方界全方向の図形出力に物体形状を上書きするときの相対的なスケールを指定します。
既定値は0.5です。0とすると物体形状は出力されません。
(45) 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座標です。
(46) near1ddb
近傍界線上分布図の単位を指定します。
I1=0:線形、I1=1:dB
既定値は線形です。
(47) near1dscale
近傍界線上分布図のスケールを指定します。
R1=最小値
R2=最大値
I1=縦軸の分割数
既定値は適当なスケールが割り当てられます。
(48) near1dnoinc
近傍界線上分布図で入射波を除くか指定します。
I1=1のとき入射波を除きます。
既定値では入射波を含みます。本項目は平面波入射のとき意味があります。
(49) 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座標です。
(50) near2ddim
近傍界面上分布図を選択します。
I1=1 : 2D図を出力します(既定値)
I2=1 : 3D図を出力します(既定値)
(51) near2dframe
近傍界面上分布図の動画(2D)のフレーム数を指定します。
I1=1周期のフレーム数
既定値は動画は出力しません。
(52) near2ddb
近傍界面上分布図の単位を指定します。
I1=0:線形、I1=1:dB
既定値は線形です。
(53) near2dscale
近傍界面上分布図のスケールを指定します。
R1=最小値
R2=最大値
既定値は適当なスケールが割り当てられます。
(54) near2dcontour
近傍界面上分布図の描画方法を指定します。
I1=0:カラー精細、1:カラー簡易、2:モノクロ精細、3:モノクロ簡易
既定値は0です。セル数が多いときは[簡易]を指定してください。
(55) near2dobj
I1=1のとき近傍界面上分布図に物体を描きます。 既定値は1です。
(56) near2dnoinc
近傍界面上分布図で入射波を除くか指定します。
I1=1のとき入射波を除きます。
既定値では入射波を含みます。本項目は平面波入射のとき意味があります。
(57) near2dzoom
面の一部のみを拡大して図形出力します。
R1,R2:横方向の下限と上限
R3,R4:縦方向の下限と上限
面の向きがX/Y/Z方向のとき、横-縦は順にY-Z/X-Z/X-Yです。