PHASE-Viewerで実行するBeanShellスクリプトに, そのスクリプトの説明用の文字列やスクリプトの動作を規定する入力を埋め込むことができます.
埋め込まれた入力は, 図 6.4の
, ``edit input''ボタンをクリックすると起動できる
``BeanShellスクリプト入力エディター''(図 6.5)からGUIを介して編集することができます.
この画面は, 下記の領域から成っています.
図 6.5のスクリプト編集画面が扱うことのできるファイルの書式を説明します. スクリプトの説明文とスクリプト入力は, ファイル先頭のブロックコメント内に記述します. スクリプト説明文は BEGIN_DESCRIPTIONという文字列とEND_DESCRIPTIONという文字列の間に入力し, スクリプト入力は BEGIN_INPUTという文字列とEND_INPUTという文字列の間に入力します. 入力はPHASE入力ファイル仕様に準拠した 形式で記述します. ただし, 現時点ではテーブル, 単位の入力には対応していません. この際, 下記のルールでスクリプト編集画面のGUIが動的に作成されます.
例として, バンド計算用の初期化を行うスクリプトのヘッダー部分を下記します. このスクリプトは, ekcalの初期化(第5.2.1節)において状態密度計算の設定に利用されます. 詳細設定を行うと, このスクリプトを読み込んだ状態で図 6.5が起動します.
/*
BEGIN_DESCRIPTION <--スクリプト説明文の始まり
バンド計算用初期入力を作成するスクリプト。
入力 (カッコ内は規定値):
accuracy->initial_wavefunctions: 初期の波動関数の計算方法
accuracy->matrix_diagonブロック: 初期の波動関数を行列対角化で行う場合のカットオフ.
defaultを指定すると波動関数と同じ値が採用される.
accuracy -> ekconvergence ブロック, ekcal制御 phaseマニュアル参照
kpoint -> バンド計算で利用するk点ファイル作成用GUIを起動する. 以下の項目を決定した後,
``generate kpoints''ボタンをクリックするとekcalが利用するk点ファイルが作成される.
テンプレートファイルもあるのでそちらを参考に作成するとよい.
deltk: どのくらいの頻度でk点を作成するか.
reciprocal lattice vector: 逆格子ベクトル
special kpoints: k点を作成したい対称点と, バンド図作成時に利用する記号.
END_DESCRIPTION <--スクリプト説明文終了
BEGIN_INPUT <--スクリプト入力始まり
kpoint{
edit = boot_kpoint_generator:btn:gui/phase/bandkpt.bsh <--.chase/scripts/gui/phase/bandkpt.bshスクリプトを実行するボタンが配備される
}
accuracy{
initial_wavefunctions = matrix_diagon:combo:matrix_diagon_or_random_numbers <--matrix_diagonないしrandom_numbersを選択肢とするリストが生成される
matrix_diagon{
cutoff_wf = default
}
ek_convergence{
num_max_iteration = 500 <--``500''を初期テキストとするテキストフィールドが作成される
sw_eval_eig_diff = on:combo:on_or_off
delta_eigenvalue = 1.e-5
succession = 2
num_extra_bands = 2
}
}
END_INPUT <--スクリプト入力終了
*/