該網(wǎng)站的鏈接
這里記錄下安裝alamode的過程,以便以后的繼續(xù)使用(只敘述我安裝的過程),用的是ubuntu
1.依賴安裝(編譯器等)
-
Intel編譯器集群并行版本安裝
包含了所需的C++ compiler,LAPACK library,MPI library (OpenMPI, MPICH2, IntelMPI, etc.),FFTW library庫
image.png
這里按著提示安裝,安裝完之后寫一下環(huán)境變量就行,環(huán)境變量如下(我這里裝在了/home/zhangsan/intel1目錄下):# intel2020 source /home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/bin/compilervars.sh intel64 source /home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/bin/ifortvars.sh intel64 source /home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/bin/iccvars.sh intel64 export LD_LIBRARY_PATH=/home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/home/zhangsan/intel1/lib/intel64_lin:$LD_LIBRARY_PATH記得
source .bashrc -
Boost C++ library和 Eigen3 library
這連個(gè)安裝相同放在了一起- 比如你的用戶家目錄叫zhangsan,你的home目錄等同于
$(home) == /home/zhangsan - 那么新建
/home/zhangsan/ect的目錄把解壓完的兩個(gè)包放進(jìn)去, - 然后再創(chuàng)建一個(gè)
/home/zhangsan/include目錄 - 最后做個(gè)軟鏈接
$ ln -s /home/zhangsan/etc/boost_1_75_0/boost /home/zhangsan/include/boost $ ln -s /home/zhangsan/etc/eigen-3.3.9/Eigen /home/zhangsan/include/Eigen
- 比如你的用戶家目錄叫zhangsan,你的home目錄等同于
-
spglib安裝
- 解壓完后也放到
/home/zhangsan/ect - 然后安裝到
/home/zhangsan/include/spblib目錄下,命令如下:$ cd /home/zhangsan/etc/spglib $ mkdir build && cd build $ cmake -DCMAKE_INSTALL_PREFIX="" .. $ make $ make DESTDIR=/home/zhangsan/include/spglib install - 添加進(jìn)環(huán)境變量
# spglib export LD_LIBRARY_PATH=/home/one/include/spglib/lib:$LD_LIBRARY_PATH
- 解壓完后也放到
2.編譯alamode
- 先這個(gè)軟件下下來,用
git比較方便
然后解壓后依舊放到git clone https://github.com/ttadano/alamode.git/home/zhangsan/etc/吧,有中二強(qiáng)迫癥。 - 編譯三個(gè)東西
alm;anphon;tools-
alm
進(jìn)入到/home/zhangsan/etc/alamode/alm目錄,然后cp Makefile.linux Makefile
然后修改Makefile的前幾行,如下:
然后編譯CXX = icpc #注意icpc有沒有 CXXFLAGS = -O2 -xHOST -qopenmp -std=c++11 # 注意是不是qopenmp INCLUDE = -I../include -I$(HOME)/include -I/home/zhangsan/include/spblib/include # 大力出奇跡直接給spblib的絕對路徑 CXXL = ${CXX} LDFLAGS = -mkl -L/home/zhangsan/include/spglib/lib -lsymspg # 大力出奇跡直接給spblib的絕對路徑make -j -
anphon
進(jìn)入到/home/zhangsan/etc/alamode/anphon目錄,然后cp Makefile.linux Makefile
然后修改Makefile的前幾行,如下:
然后編譯MPICXX = mpiicpc #是不是mpiicpc CXXFLAGS = -O3 -xHOST -qopenmp -D_FE_BUBBLE -std=c++11 #是不是qopenmp 這里-D_FE_BUBBLE我看別人帖子上加的 INCLUDE = -I../include -I/home/zhangsan/include -I/home/zhangsan/include/spglib/include -I/home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/mkl/include -I/home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/mkl/include/fftw #直接暴力給滿 LINKER = ${MPICXX} LDFLAGS = -mkl -L/home/zhangsan/include/spglib/lib -lsymspg #直接絕對路徑make -j -
tools
然后編譯#Intel compiler CXX = icpc #是不是icpc # OSX (gcc) #CXX = g++-9 # OSX (clang) #CXX = g++ # OSX #CXX = clang++ CXXFLAGS = -O2 -std=c++11 # Add the directory containing boost header files here INCLUDE = -I../include -I/home/zhangsan/include #直接絕對路徑make -j - 安裝完后環(huán)境變量中指定命令
記得# alamode alias alm=/home/one/etc/alamode/alm/alm alias anphon=/home/one/etc/alamode/anphon/anphonsource .bashrc
-
alm
詭異問題
有些迷的地方是:我用兩個(gè)alamode包編譯alm編譯成功anphon可能會失敗,反之亦然,我的方法是直接把編譯成功的拼湊起來,然后就是完整的了。
