Pasorica - パソリカ - : 設定ファイルの文法

設定ファイルの文法

Pasoricaにはlorenzとwaveの二種類の設定ファイルが付属しています。ぜひ試してみてください。

シミュレーション環境設定部

SimEnv から EndSimEnvの間でシミュレーション環境設定をします。
例:
	SimEnv
		dt 0.01
		steps 10000
		step0 1
		camera 0 -1.5 5
	EndSimEnv

時間刻み幅dtの設定

	dt [時間刻み幅]
デフォルト値は0.01です。

シミュレーション総ステップ数の設定

	steps [総ステップ数]
デフォルト値は1000です。

シミュレーション開始ステップ数の設定

	step0 [開始ステップ数]
通常は1に設定してください。 デフォルト値は1です。

カメラの方向と倍率の設定

	camera [Y方向回転角] [X方向回転角] [倍率]
デフォルト値は回転角がともに0、倍率は1です。

宣言部

Declare から EndDeclareの間で変数・定数・関数などを宣言します。
例:
	Declare
		cst p 10
		cst r 28

		prm b 2.6

		var x 1
		var y 1
		var z 1

		func xm
			x[step-1]
		func ym
			y[step-1]
		func zm
			z[step-1]

		dev x
			xm-p*(xm-ym)*dt
		dev y
			ym+(xm*(r-zm)-ym)*dt
		dev z
			zm+(xm*ym-b*zm)*dt
	EndDeclare

定数の宣言

	cst [定数名] [定数の値]
あらかじめ重力加速度g、自然対数の底e、円周率piは宣言されています。

パラメータの宣言

	prm [パラメータ名] [初期値=0] [刻幅=0.1] [最小値=-65535] [最大値=65535]

関数の宣言

	func [関数名] (改行)
		[式]
式の中で使えるのは、
・3つのシステム変数(時間刻み幅dt, 現在の時間t, 現在のステップ数step)
・既に設定されたパラメタ、定数、関数、変数
です。
配列変数にアクセスするためには、その配列変数名の後に括弧でくくってインデックスをあたえます。
例えば配列変数nの現在のひとつ前のステップでの値は
	n[step-1]
で得られます。また、その初期値は
	n[0]
で得られます。
式中では以下の関数を利用できます。
sin: サイン
cos: コサイン
tan: タンジェント
exp: エクスポーネンシャル
log: 自然対数
log10: 常用対数
sqrt: 平方根
sinh: ハイパボリックサイン
cosh: ハイパボリックコサイン
tanh: ハイパボリックタンジェント
int: 小数点以下切捨て
asin: アークサイン
acos: アークコサイン
atan: アークタンジェント
abs: 絶対値
mns: 符号反転

変数の宣言

	var [変数名] [初期値] [x方向のサイズ] [y方向のサイズ] (t方向のサイズは設定部でのstepsの値より自動で設定)
変数は1から3次元配列を利用できます。 時間(t)方向の配列は必ず用意されるため、最低でも1次元配列です。
[y方向のサイズ]を省略すれば2次元配列に、 [x方向のサイズ][y方向のサイズ]を省略すれば1次元配列になります。
変数には、はじめ[初期値]の値が代入されます。

変数の時間発展の宣言

	dev [変数名](改行)
		[式]
既に宣言した変数がシミュレーションの各ステップでどのように時間発展するかを設定します。
式の書き方はfuncとほぼ同様ですが、以下の点が異なります。
pasoricaは各(配列)変数の値を設定された時間発展より自動的に計算します。 この時、2,3次元配列の場合、各配列の何番目の要素であるかがシステム変数iとjで得られます。
例えば、2次元配列変数nのX方向の配列が大きくなるに比例して、変数の値も大きくしたい場合は
	dev n
	a*i
とすれば良いでしょう。

プロット設定部

Plot から EndPlotの間でプロットの仕方を設定します。
例:
Plot
	line3d x y z -100 100 0 255 0
	line2d x y 100 100 0 255 0
EndPlot

二次元ラインプロット

	line2d [X変数] [Y変数] [X座標=0] [Y座標=0] [R=0] [G=0] [B=0]
X,Y変数は時間だけの配列(1次元配列)を指定してください。
プロットする位置を変更したい場合はX,Y座標を設定し、プロットする色を変更したい場合はR,G,Bに色情報を0から255の間で設定してください。

三次元ラインプロット

	line3d [X変数] [Y変数] [Z変数] [X座標=0] [Y座標=0] [R=0] [G=0] [B=0]
基本は二次元ラインプロットと同じですが、Z座標が追加されています。

グリッドプロット

	grid [変数] [X座標=0] [Y座標=0] [SR=255] [SG=0] [SB=0] [ER=0] [EG=0] [EB=0]
変数には三次元配列を指定してください。
プロットする位置を変更したい場合はX,Y座標を設定し、プロットする色を変更したい場合はSR,SG,SBとER,EG,EBに色情報を0から255の間で設定してください。値が大から小になるにつれて徐々にSR,SG,SBからER,EG,EBに色が変化します。

カラーマッププロット

	colormap [変数] [X座標=0] [Y座標=0] [SR=255] [SG=0] [SB=0] [ER=0] [EG=0] [EB=0]
使い方はgridと同じです。

ビットマップの表示

	bitmap [X座標] [Y座標]
		BITMAPファイル名
X,Y座標の位置に指定したビットマップファイルを表示します。
ビットマップの初期化には非常に時間がかかるので、大きなサイズのファイルは指定しないでください。 200x200ピクセル程度が実用限度かと思います。