3.3 入力データ作成

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

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

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

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

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

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


リスト3-3-1 入力データの一例
OpenSTF 1 2
title = sample
xmesh = -5 50 5
ymesh = -5 50 5
zmesh = -5 50 5
volt = -1 -V
volt = +1 +V
epsr = 2.0 Er
geometry = 1 1 1 -2 2 -2 2 -2 -2 
geometry = 1 2 1 -2 2 -2 2 2 2 
geometry = 2 1 1 -2 2 -2 2 -2 2 
solver = 1.95 1000 50 1e-5
plotiter = 1
plot1d = V Z 0 0
1ddb = 0
plot2d = V X 0
2dfigure = 1 1
2ddb = 0
2dobject = 1 1
window2d = 750 500 15
window3d = 500 500 60 30
end

入力データの書式と意味

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

表3-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)volt必須R1電極電圧値(2行以上必要)
(6)epsrオプションR1比誘電率値(複数行可)
(7)geometry必須I1 I2 I3 R1 R2 R3 R4 R5 R6物体形状(2行以上必要)
(8)solverオプションR1 I1 I2 R2反復計算パラメーター

表3-3-2 入力データの書式と意味(ポスト処理部)
No.キーワード必須/オプション書式(R:実数,I:整数,C:文字列)意味
(9)plotiterオプションI1収束状況の図形出力(0/1) (2D)
(10)plot1d(必須)C1 C2 R1 R2線上分布図の図形出力(複数行可) (2D)
(11)1ddbオプションI1線上分布図の単位(0/1)
(12)1dscaleオプションR1 R2 I1線上分布図のスケール
(13)1dlogオプションI1線上分布を1d.logに数値出力するか
(14)plot2d(必須)C1 C2 R1面上分布図の図形出力(複数行可) (2D)
(15)2dfigureオプションI1 I2面上分布図の2Dまたは3Dを出力するか
(16)2ddbオプションI1面上分布図の単位(0/1)
(17)2dscaleオプションR1 R2 I1面上分布図のスケール
(18)2dobjectオプションI1 I2面上分布図に電極または誘電体を描くか
(19)2dzoomオプションR1 R2 R3 R4面上分布図の一部拡大
(20)2dlogオプションI1面上分布を2d.logに数値出力するか
(21)window2dオプションI1 I2 I32Dウィンドウサイズ、フォントサイズ
(22)window3dオプションI1 I2 R1 R23Dウィンドウサイズ、初期視点のθとφ

入力データの詳細

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

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

(5)volt
データは電極電圧です。
真空(物性値番号0)と完全導体(PEC)(物性値番号1)は予め登録されています。 ここで入力した電極電圧に上から順に電極電圧番号1,2,...が与えられ、 geometry行の電極電圧番号で使用されます。

(6)epsr
データは比誘電率です。
ここで入力した比誘電率に上から順に比誘電率番号1,2,...が与えられ、 geometry行の比誘電率番号で使用されます。

(7)geometry
I1(>0)は電極電圧番号、I2(>0)は比誘電理番号、I3は形状番号です。
形状番号の意味と必要な座標データは以下の通りです。

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

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

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

(10)plot1d (2D)
線上分布図を図形出力します。
C1=Vのとき電圧Vを図形出力します。
C1=Eのとき電界E,Ex,Ey,Ezを図形出力します。ここでEはEベクトルの合成値です。
C1=Dのとき電束密度D,Dx,Dy,Dzを図形出力します。ここでDはDベクトルの合成値です。
C1=Qのとき電荷密度Qを図形出力します。
C2はX/Y/Zのいずれかであり、それぞれX方向/Y方向/Z方向を表します。
R1,R2はX方向のときはY/Z座標、Y方向のときはZ/X座標、Z方向のときはX/Y座標です。

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

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

(13)1dlog
線上分布を1d.logに数値出力するか。
I1=0/1:しない/する
既定値は1です。

(14)plot2d (2D)
面上分布図を図形出力します。
C1はV/E/Ex/Ey/Ez/D/Dx/Dy/Dz/Qのいずれかです。ここでE/Dはベクトルの合成値です。
C2はX/Y/Zのいずれかであり、それぞれX一定面/Y一定面/Z一定面を表します。
R1はそれぞれ一定値のX/Y/Z座標です。

(15)2dfigure
I1=1のとき面上分布図の2D図を出力します。 既定値は1です。
I2=1のとき面上分布図の3D図を出力します。 既定値は1です。

(16)2ddb
面上分布図の単位を指定します。
I1=0:線形、I1=1:dB
既定値は線形です。

(17)2dscale
面上分布図のスケールを指定します。
R1=最小値
R2=最大値
I1=色の数(0のとき連続色:推奨)
既定値は適当なスケールが割り当てられます。

(18)2dobject
I1=1のとき面上分布図に電極を描きます。 既定値は1です。
I2=1のとき面上分布図に誘電体を描きます。 既定値は1です。

(19)2dzoom
面上分布図の一部を拡大して表示します。
R1=横方向下限
R2=横方向上限
R3=縦方向下限
R4=縦方向上限

(20)1dlog
面上分布を2d.logに数値出力するか。
I1=0/1:しない/する
既定値は1です。

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

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




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