Shifted-Krylov部分空間法に基づくソルバーライブラリと, それを用いてHamiltonianと励起状態ベクトルから動的Green関数を計算するミニアプリである.
-
最新版のパッケージはこちらから.
https://github.com/issp-center-dev/Komega/releases/download/v2.0.0/komega-2.0.0.tar.gz
-
リリースノート
https://github.com/issp-center-dev/Komega/releases/tag/v2.0.0
-
過去のリリース
- fortranコンパイラ
- BLASライブラリ
- LAPACKライブラリ(ミニアプリのみ使用)
- MPIライブラリ(Optional)
- Manual for the Library
- Manual for the sample program
app/: ミニアプリ関連のディレクトリsrc/: ミニアプリソースコードのディレクトリsample/: ミニアプリサンプル用ディレクトリShiftk.nb: テスト用Mathematicaノートブック(開発者向け)denovo/: ハミルトニアンや右辺ベクトルの入力ファイルを用いない場合の例from_file/: ハミルトニアンや右辺ベクトルの入力ファイルを用いる場合の例
doc/: ドキュメント用ディレクトリindex.html: ドキュメントのトップページlibrary/: ライブラリのドキュメントのディレクトリsoftware/: ミニアプリのドキュメントのディレクトリ
configure: ビルド環境指定ファイルsrc/: ライブラリ本体のディレクトリtest/: ライブラリのテスト用ディレクトリ
もっともシンプルには次のとおりである.
- コンソールで
$ ./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の書式はマニュアル参照
マニュアル参照
$ 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_PATHにinstall_dir/libディレクトリを追加しておく必要がある.
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: 収束判定のthresholdrnd_seed: 擬似Hamiltonian生成のための乱数の種- このnamelistの後ろに振動数を1行に1個ずつ書く.