4.4 入力データの書式

4.4.1 全体の書式

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

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

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

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

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

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


リスト4-4-1 入力データの一例
OpenSTF 4 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
#plot3dgeom = 1
plotiter = 1
plot1d = V Z 0 0
1ddb = 0
plot2d = V X 0
2dfigure = 1 1
2dcontour = 0
2ddb = 0
2dobject = 1 1
end

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

表4-4-1と表4-4-2に入力データの書式と意味を示します。
ここでは説明の都合上計算部とポスト処理部に分けていますが、 データファイルは両者が結合したものです。 データの並びは任意でかまいませんが以下の順序を推奨します。

必須/必要/オプション
"必須"は必ず必要なデータです。これがないときはメッセージを出して計算が終了します。
"必要"は必要なときは必要なデータです。(既定値がないもの)
"オプション"はないときは既定値が代入されるデータです。 計算と図形出力は既定値を用いて行われます。

書式
書式の"R I C"は順に実数、整数、文字列です。
"..."はデータ数が可変であることを表します。
"[]"はオプションです。その前のデータによっては必要になります。
実数のところに整数を入力すると実数とみなされます。例えば"1"は"1.0"となります。
単位はすべてMKSA単位系です。

表4-4-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 [R7 R8]物体形状(2行以上必要)
(8)solverオプションR1 I1 I2 R2反復計算パラメーター
(9)plot3dgeomオプションI1物体形状を3D図形出力するか

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

入力データの詳細

■ 計算部

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

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

(5) volt
データは電極電圧です。
ここで入力した電極電圧に上から順に電極電圧番号1,2,...が与えられ、 geometry行の電極電圧番号で使用されます。
電位差を与えるために本行は2行以上必要です。

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

(7) geometry
I1=1/2:電極/誘電体、I2(>0)は電極電圧番号または比誘電率番号、I3は形状番号です。
形状番号の意味と必要な座標データは以下の通りです。図4-1-5を参考にしてください。 座標の数は直方体/楕円体/楕円柱は6個、三角柱/角錐台/円錐台は8個です。

電位差を与えるために2個以上の電極が必要です。
(重要)
複数の物体形状が重複する場所の属性は後から入力されたデータが優先されます。

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

(9) plot3dgeom (3D)
I1=1のとき形状データをgeom.ev3とgeom3d.htmに出力して計算を行わずに終了します。
CUI環境での入力データの確認に使用します。
既定値はI1=0です。

■ ポスト処理部

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

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

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

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

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

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

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

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

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

(19) 2dcontour
I1=0/1/2/3のとき順に、カラー精細/カラー簡易/モノクロ精細/モノクロ簡易
既定値は0です。セル数が多いときは[簡易]を指定してください。

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

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

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