Skip to content

Latest commit

 

History

History
110 lines (79 loc) · 4.68 KB

README_ja.md

File metadata and controls

110 lines (79 loc) · 4.68 KB
日本語 / [English](README.md#english)

Shifted-Krylov部分空間法に基づくソルバーライブラリと, それを用いてHamiltonianと励起状態ベクトルから動的Green関数を計算するミニアプリである.

Download

Prerequisite

  • fortranコンパイラ
  • BLASライブラリ
  • LAPACKライブラリ(ミニアプリのみ使用)
  • MPIライブラリ(Optional)

Documents

Directory Tree

  • app/: ミニアプリ関連のディレクトリ
    • src/: ミニアプリソースコードのディレクトリ
    • sample/: ミニアプリサンプル用ディレクトリ
      • Shiftk.nb: テスト用Mathematicaノートブック(開発者向け)
      • denovo/: ハミルトニアンや右辺ベクトルの入力ファイルを用いない場合の例
      • from_file/: ハミルトニアンや右辺ベクトルの入力ファイルを用いる場合の例
  • doc/: ドキュメント用ディレクトリ
    • index.html : ドキュメントのトップページ
    • library/: ライブラリのドキュメントのディレクトリ
    • software/: ミニアプリのドキュメントのディレクトリ
  • configure: ビルド環境指定ファイル
  • src/: ライブラリ本体のディレクトリ
  • test/: ライブラリのテスト用ディレクトリ

Install

もっともシンプルには次のとおりである.

  • コンソールで $ ./configure --prefix=install_dir; make; make install とタイプする. ただしinstall_dirはインストール先のディレクトリの絶対パスとする (以後各自のディレクトリ名で読み替えること).
  • install_dirで指定したディレクトリに以下のものが作られる.
    • install_dir/lib/内: 共有および静的ライブラリ
    • install_dir/include/komega.h: C/C++用ヘッダーファイル
    • install_dir/bin/Shiftk.out: ミニアプリ

詳しくはマニュアルを参照のこと.

ミニアプリのテスト

  • app/sample/denovo/もしくはapp/sample/from_file/ディレクトリに移動する.
  • install_dir/bin/ShiftK.out namelist.defとやる.
  • dynamicalG.datなどが作られると成功.
  • namelist.defの書式はマニュアル参照

ライブラリの使用方法

プログラム内での各ルーチンの呼び出し方

fortran/C/C++の場合

マニュアル参照

ライブラリのリンク方法

$ gfortran myprog.f90 -L install_dir/src/shared -lshiftk -lblas -I install_dir/src/shared
$ gcc myprog.c -L install_dir/src/shared -lshiftk -lblas -I install_dir/src/shared

など.

動的リンクを行ったファイルを実行するときには, 環境変数LD_LIBRARY_PATHinstall_dir/libディレクトリを追加しておく必要がある.

ライブラリのテスト(Optional)

  • test/ディレクトリに移動する.
  • $ ./solve_cc.x < complex_freq.inとやる.
  • Residual vectorが十分小さくなっていれば成功
  • solve_rc.x も同様. solve_cr.x, solve_rr.x に関しては入力ファイル real_freq.in を使う.
  • complex_freq.in(名称は自由)のパラメーターは次の通り
    • ndim: 擬似ハミルトニアンの次元
    • nl: 射影のテスト用. 解ベクトルの先頭からnl(<=ndim)番目までを計算する.
    • nz: 振動数の点数
    • itermax: 最大反復回数
    • threshold: 収束判定のthreshold
    • rnd_seed: 擬似Hamiltonian生成のための乱数の種
    • このnamelistの後ろに振動数を1行に1個ずつ書く.