開発者のためのインターフェースが用意されています。
SCF計算から得られた情報(ハミルトニアンの行列要素、重なり行列、密度行列、位置演算子、運動量演算子)は
ファイル「System.Name.scfout」に保存されます。このファイルに保存されたデータを
開発者のポストプロセスコードから参照することができます。
OpenMX Ver. 3.9からは「System.Name.scfout」のデータ形式が変更されました。
これに関連し、'SCF2File.c', 'read_scfout.c', 'read_scfout.h', 'analysis_example.c' が改変されています。
そのため、OpenMXの旧版で生成されたscfoutファイルはVer. 3.9では解析できないことに注意して下さい。
ファイル「System.Name.scfout」に保存されたデータは以下の手順で利用可能です。
入力ファイルにキーワード「HS.fileout」を設定します。
HS.fileout on # on|off, default=off
通常のOpenMX計算を実行すると、データがファイル「System.Name.scfout」に出力されます。
ここで「System.Name」は入力ファイルで指定された系の名前「System.Name」です。
ディレクトリ「source」内で、次のコマンドを実行します。
% make analysis_example
コンパイルが正常終了すると、ディレクトリ「work」内に実行ファイル「analysis_example」が生成されます。
ディレクトリ「work」に移動して、次のようにしてプログラムを実行します。
% ./analysis_example System.Name.scfout
もしくは
% ./analysis_example System.Name.scfout > HS.out
ハミルトニアン、重なり行列、密度行列等の要素が「HS.out」に書き出されます。
ファイル「analysis_example」には、これらのデータについての詳しい説明があります。その一部を以下に示します。
******************************************************************
You can utilize a filename.scfout which is generated by the SCF
calculation of OpenMX by the following procedure:
1. Define your main routine as follows:
int main(int argc, char *argv[])
2. Include a header file, "read_scfout.h", in your main routine
(if you want, also in other routines) as follows:
#include "read_scfout.h"
3. Call a function, read_scfout(), in the main routine as follows:
read_scfout(argv);
******************************************************************
'polB', 'jx', 及び'kSpin'はポストプロセスコードとしての本機能を利用して開発されました。