====== 準備 ======
以下のソフトを事前にインストールしてください。
必須
* tcsh
* MPIでコンパイルした[[数値計算ライブラリ:FFTW3]]
* FFTWをビルドする際に--enable-openmp のフラグをつけた場合はうまく行きませんでした
* C/C++とFortranのコンパイラ。Intel One API推奨
できれば必要
* GNUPLOT
* XCrySDen
* Octave
* Python
tcshなどはaptで手に入ります。
$ sudo apt install tcsh gnuplot xcrysden octave python-is-python3
====== 手順 ======
有料ソフトなので、当然ですが事前に購入する必要があります。
* http://susi.theochem.tuwien.ac.at/order/
商用だと50万円くらいしますが、アカデミック版は5万円くらいで買えます。
===== コンパイル(Ubuntu22.04 + WIEN2k_23.2 + Intel OneAPI 2023.1) =====
配布されているプログラムをコンパイルします。
[[http://susi.theochem.tuwien.ac.at/reg_user/index.html|WIEN2k-Registered Users]]
* インストール用のフォルダを作る
$ mkdir WIEN2k_23.2
* WIEN2k_23.2.tarをインストールするフォルダに入れる
* インストールするフォルダに入って、HPの手順通りに実行するとコードが展開される
$ tar -xvf WIEN2k_23.2.tar
$ gunzip *.gz
$ ./check_minimal_software_requirements.sh # 必要なソフトが入っていなければ知らせてくれます。やらなくても可
$ ./expand_lapw
* continue (y/n) y
* コンパイルの設定を行う。[Press RETURN to continue]や[Hit Enter to continue]などはEnterを押すだけなので省略
$ ./siteconfig
- Specify a system
- [Selection:] LI
- Specify compiler and linker options
- [Your compiler:] ifort
- [Your compiler:] cc (Intelコンパイラは非推奨)
- Specify LIBXC settings
- [Would you like to use LIBXC (usually not needed, ONLY for experts who want to play with different DFT options. It must have been installed before)? (y,N):] n
* 通常はWIEN2kに実装されている交換相関汎関数で十分だが、いろいろ変えて遊びたいのであればyを指定して次のようにする(Libxcをインストールしていること)
- [Do you want to automatically search for LIBXC installations? (Y,n):] y
- [Please specify a comma separated list of directories to search! (If no list is entered, /usr/lib64, /usr/local and /opt will be searched as default):] Enter
- [Is this the correct directory? (Y,n):] (正しければ)y
- Specify FFTW settings
- [Do you want to automatically search for FFTW installations? (Y,n):] y
- [Please specify a comma separated list of directories to search! (If no list is entered, /usr/local and /opt will be searched as default):] なにも入力せずにEnter
- [Do you want to use a FFTW version from the list above? (Y,n):] (正しく見つかれば)y
- [Please enter the line number of the chosen version or enter 0 to manually specify your choice!:] Enter
- [Please specify the target achitecture of your FFTW library (e.g. lib64) or accept present choice (enter):] **lib**
- [Please specify the name of your FFTW library or accept present choice (enter):] Enter
- [Is this correct? (Y,n):] y
- [Selection:] s
- Configure parallel execution
- [Shared Memory Architecture? (y/N):] y
- [(like taskset -c). Enter N / your_specific_command:] n
- [Do you have MPI, ScaLAPACK, ELPA, or FFTW installed and intend to run finegrained parallel? ... (y/N)] y
- [Your compiler:] mpiifort
- Specify ScaLAPACK settings
- [Do you want to use a present ScaLAPACK installation? (Y,n):] y
- [Do you want to use the MKL version of ScaLAPACK? (Y,n):] y
- [Do you use Intel MPI? (Y,n):] y
- [Is this correct? (Y,n):] y
- Specify ELPA settings
- [Do you want to use ELPA? (y,N):] n
- Configure parallel execution
- [Please specify your parallel compiler options or accept the recommendations (Enter - default)!:] Enter
- [Please specify your parallel OMP_SWITCH (type "del" to blank it) or accept the recommendations (Enter - default)!:] Enter
- [Please specify your MPIRUN command or accept the recommendations (Enter - default)!:] Enter
- [Selection:] S
- (Re-)Dimension parameters
- [Selection:] Q
- Compile/Recompile programs
- [Selection:] A
* 時間がかかります。コンピュータの性能にもよりますが一時間弱は見ておきましょう。
- Perl Path
- [Please enter the full path of the perl program:] /usr/bin/perl
- Temp Path
- [Please enter the full path to your temporary directory:] /tmp
===== ユーザーごとの設定 =====
$ cd /path/to/WIEN2k/
$ ./userconfig_lapw
- editor shall be: vim
- Set editor to vim (Y/n): y
- DATA directory: /home/username/WIEN2kdata
- Set DATA directory to /home/username/WIEN2kdata (Y/n): y
- scratch directory: Enter
- Set scratch directory to working directory: y
- Specify your program to read pdf files (default is acroread) (on some Linux systems use xpdf): evince
- Set PDFREADER to evince (Y/n): y
- How many cores do you want to use by default (4): (パソコンのコア数を入力)
- Set OMP_NUM_THREADS to コア数 (Y/n): y
- Do you want to continue (Y/n)?: y
- Edit .rhosts file now? (y/N): n