開発者のためのインターフェースが用意されています。
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'はポストプロセスコードとしての本機能を利用して開発されました。