next up previous contents index
Next: 自動フォース・テスター Up: OpenMX Ver. 3.9 ユーザーマニュアル Previous: セルサイズの自動決定   Contents   Index

開発者のためのインターフェース

開発者のためのインターフェースが用意されています。 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」に保存されたデータは以下の手順で利用可能です。

  1. 'HS.fileout'の生成

    入力ファイルにキーワード「HS.fileout」を設定します。

           HS.fileout                    on      # on|off, default=off
    
    通常のOpenMX計算を実行すると、データがファイル「System.Name.scfout」に出力されます。 ここで「System.Name」は入力ファイルで指定された系の名前「System.Name」です。

  2. analysis_exampleの作成

    ディレクトリ「source」内で、次のコマンドを実行します。

          % make analysis_example
         
    コンパイルが正常終了すると、ディレクトリ「work」内に実行ファイル「analysis_example」が生成されます。

  3. ./analysis_example System.Name.scfout

    ディレクトリ「work」に移動して、次のようにしてプログラムを実行します。

          % ./analysis_example System.Name.scfout
          もしくは 
          % ./analysis_example System.Name.scfout > HS.out
         
    ハミルトニアン、重なり行列、密度行列等の要素が「HS.out」に書き出されます。

  4. analysis_exampleの説明

    ファイル「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'はポストプロセスコードとしての本機能を利用して開発されました。