====== 準備 ====== 以下のソフトを事前にインストールしてください。 * tcsh * XCrySDen * MPIでコンパイルした[[数値計算ライブラリ:FFTW3]] * FFTWをビルドする際に--enable-openmp のフラグをつけた場合はうまく行きませんでした * C/C++とFortranのコンパイラ。Intel Parallel Studio XE 推奨 tcshなどはaptで手に入ります。 $ sudo apt install tcsh ====== 手順 ====== 有料ソフトなので、当然ですが事前に購入する必要があります。 * http://susi.theochem.tuwien.ac.at/order/ 商用だと50万円くらいしますが、アカデミック版は5万円くらいで買えます。 ===== コンパイル(Ubuntu20.04 + WIEN2k_21.1 + Intel OneAPI 2021.1) ===== 配布されているプログラムをコンパイルします。 [[http://susi.theochem.tuwien.ac.at/reg_user/index.html|WIEN2k-Registered Users]] * インストール用のフォルダを作る $ mkdir WIEN2k_21.1 * WIEN2k_21.1.tarをインストールするフォルダに入れる * インストールするフォルダに入って、HPの手順通りに実行するとコードが展開される $ tar -xvf WIEN2k_21.1.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 - [Please specify your MKL_TARGET_ARCH (e.g. intel64)!:] intel64 - [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