该网站的链接
这里记录下安装alamode的过程,以便以后的继续使用(只叙述我安装的过程),用的是ubuntu
1.依赖安装(编译器等)
-
Intel编译器集群并行版本安装
包含了所需的C++ compiler
,LAPACK library
,MPI library (OpenMPI, MPICH2, IntelMPI, etc.)
,FFTW library
库
image.png
这里按着提示安装,安装完之后写一下环境变量就行,环境变量如下(我这里装在了/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
这连个安装相同放在了一起- 比如你的用户家目录叫zhangsan,你的home目录等同于
$(home) == /home/zhangsan
- 那么新建
/home/zhangsan/ect
的目录把解压完的两个包放进去, - 然后再创建一个
/home/zhangsan/include
目录 - 最后做个软链接
$ 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
- 添加进环境变量
# spglib export LD_LIBRARY_PATH=/home/one/include/spglib/lib:$LD_LIBRARY_PATH
- 解压完后也放到
2.编译alamode
- 先这个软件下下来,用
git
比较方便
然后解压后依旧放到git clone https://github.com/ttadano/alamode.git
/home/zhangsan/etc/
吧,有中二强迫症。 - 编译三个东西
alm
;anphon
;tools
-
alm
进入到/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
进入到/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
- 安装完后环境变量中指定命令
记得# alamode alias alm=/home/one/etc/alamode/alm/alm alias anphon=/home/one/etc/alamode/anphon/anphon
source .bashrc
-
alm
诡异问题
有些迷的地方是:我用两个alamode包编译alm编译成功anphon可能会失败,反之亦然,我的方法是直接把编译成功的拼凑起来,然后就是完整的了。
网友评论