Mr.ZhengGang's blog Mr.ZhengGang's blog
首页
  • 天河一号
  • 01.编译环境
  • 02.基础库
  • 03.应用软件
  • 04.工具软件
  • 05.常用语言环境
  • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
💖联系
🚀试用
GitHub (opens new window)
首页
  • 天河一号
  • 01.编译环境
  • 02.基础库
  • 03.应用软件
  • 04.工具软件
  • 05.常用语言环境
  • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
💖联系
🚀试用
GitHub (opens new window)
  • 编译环境

    • 编译入门
    • gcc
  • 基础库

    • fftw
    • petsc
  • 应用软件

    • alamode
      • 简介
      • 安装
        • 配置编译环境
        • 安装依赖库
        • 安装ALAMODE
      • 配置环境
      • 简易脚本安装
    • angsd
    • beast
    • berkeleygw
    • comsol
    • cp2k
    • gromacs
    • jfeff
    • lammps
    • mitgcm
    • molpro
    • nciplot
    • ovito
    • swash
    • uv-cdat
    • vasp
    • wrf
  • 工具软件

    • citrix
    • tacc-launcher
    • slurm
    • collectl
    • winscp
  • 常用语言环境

    • Co-Array Fortran 使用说明
    • python集成环境anaconda
    • python扩展包安装(pip方式)
    • python扩展包安装
    • python扩展包安装(conda方式)
    • R编译安装
    • R扩展包安装
  • 使用进阶

    • lammps添加自定义势函数
    • MaterialsStudio任务提交脚本详解
    • namd在ARM平台安装
    • vasp固定晶胞方向不优化
    • 设置编辑器语法高亮支持NCL
  • 软件中心
  • 应用软件
ZhengGang
2020-11-16

alamode 编译安装教程

# alamode编译安装教程

# 简介

ALAMODE是一个开源软件,用于分析固体的晶格非谐性和晶格导热系数。通过使用外部DFT软件包,如VASP和Quantum ESPRESSO,您可以使用ALAMODE直接提取谐波和非简谐力常数。利用计算出的非简谐力常数,你还可以根据第一原理估算晶格热导率、声子线宽和其他非谐声子性质。

官网文档:https://alamode.readthedocs.io/en/latest/ (opens new window)

下载地址:https://sourceforge.net/projects/alamode/ (opens new window)

安装说明:https://alamode.readthedocs.io/en/latest/install.html (opens new window)

# 安装

# 配置编译环境

编译环境需要:

  1. 编译器
  2. MPI编译器
  3. cmake命令
  4. MKL库

我们在TH-HPC集群使用如下编译环境:

# 使用module命令加载相关模块(以Intel Compiler 2016为例)
module add cmake/3.12.0-gcc4.8
module add Intel_compiler/16.0.3
module add MKL/16.0.3
module add MPI/Intel/IMPI/5.1.3.210

# 进入用户跟目录!!!( 后面的一些目录配置,默认在用户根目录下完成的 )
cd ~
1
2
3
4
5
6
7
8

提示

不同系统加载编译环境方式不同,请根据系统用户手册加载相关编译环境。也可以用GNU Compiler等编译器。

# 安装依赖库

# boost

不需要编译库,只需要配置头文件的软连接。

# boost
# 前往https://www.boost.org/users/history/version_1_64_0.html
# 下载boost_1_64_0.tar.bz2
# 拷贝到用户根目录

tar xvf boost_1_64_0.tar.bz2
mkdir include; cd include
ln -s ../boost_1_64_0/boost .
cd ..
1
2
3
4
5
6
7
8
9

# eigen

不需要编译库,只需要配置头文件的软连接

# eigen
# 前往https://gitlab.com/libeigen/eigen/-/archive/3.3.3/eigen-3.3.3.tar.bz2
# 下载eigen-3.3.3.tar.bz2
# 拷贝到用户根目录

tar xvf eigen-3.3.3.tar.bz2
cd include
ln -s ../eigen-3.3.3/Eigen .
cd ..
1
2
3
4
5
6
7
8
9

# spglib

这个库需要编译安装,并配置环境变量。后续需要用到相关头文件和库进行编译链接。

# spglib
# 前往https://github.com/spglib/spglib/tags
# 下载spglib-1.16.0.tar.gz
# 拷贝到用户根目录
tar zxvf spglib-1.16.0.tar.gz
cd spglib-1.16.0
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX="" ..
make
make DESTDIR=$HOME/software/spglib-1.16.0 install
export SPGLIB_ROOT=$HOME/software/spglib-1.16.0
1
2
3
4
5
6
7
8
9
10
11

注意

设置了安装目录为:$HOME/software/spglib-1.16.0,用户可以自行选择安装目录,随意即可,注意设置相同安装目录为SPGLIB_ROOT即可。

# 安装ALAMODE

官网说明提示,安装alamode软件需要安装三个部分:

  1. alm
  2. anphon
  3. tools

下面依次安装相关部分。

# 解压缩

# alamode
# 前往https://sourceforge.net/projects/alamode/
# 下载alamode-1.1.0.tar.gz
# 拷贝到用户跟目录
tar zxvf alamode-1.1.0.tar.gz
cd alamode-1.1.0
1
2
3
4
5
6

# alm

稍微修改一下Makefile文件,编译即可生成alm文件。

cd alm/
cp Makefile.linux Makefile
1
2

修改Makefile文件,说明如下:

  1. 默认使用 CXX=icpc,这是 Intel Compiler 编译 C++ 程序的编译器命令。
  2. 请将-L$(SPGLIB_ROOT)/lib改为-L$(SPGLIB_ROOT)/lib64。其中SPGLIB_ROOT刚才在安装spglib时候已经设置过,改为lib64是因为我们下载的最新spglib库的库目录文件夹不是lib而是lib64。

然后,执行make命令即可:

make -j  # 并行编译
1

说明:

  1. -j是并行编译,即使用当前环境中的所有CPU核心一起编译,可以加快编译速度。

# anphon

基本步骤与编译alm相似,修改Makefile文件后编译即可。

cd ../anphon/
cp Makefile.linux Makefile
1
2

修改Makefile文件,说明如下:

  1. 我们选择使用Intel的IMPI作为MPI编译器,使用icpc命令作为C++编译器,因此需要将mpicxx改为mpiicpc。如果是其他版本的MPI编译器,通常命令就是mpicxx无需更改。

    #MPICXX = mpicxx
    MPICXX = mpiicpc
    
    1
    2
  2. 编译过程发现需要 fftw 库的头文件,我们选择 Intel Compiler 中的 MKL 库提供的 fftw 库的接口,在INCLUDE中添加路径即可,如下:

    #INCLUDE = -I../include
    INCLUDE = -I../include  -I$(HOME)/include -I$(MKLROOT)/include/fftw
    
    1
    2

然后,执行make命令即可:

make -j  # 并行编译
1

# tools

基本步骤与编译alm相似,修改Makefile文件后编译即可。

cd ../tools/

1
2

修改Makefile文件,说明如下:

  1. 我们继续使用icpc命令作为编译器,因此修改 Makefile 文件参数,如下:

    #Intel compiler
    CXX = icpc
    
    # OSX (gcc)
    #CXX = g++-8
    
    1
    2
    3
    4
    5

然后,执行make命令即可:

make -j  # 并行编译
1

# 配置环境

安装完成后,可以配置环境,方便下次使用:

export PATH=$HOME/alamode-1.1.0/alm:$PATH
export PATH=$HOME/alamode-1.1.0/anphon:$PATH
export PATH=$HOME/alamode-1.1.0/tools:$PATH
export LD_LIBRARY_PATH=$HOME/install/spglib-1.16.0/lib64:$LD_LIBRARY_PATH
1
2
3
4

# 简易脚本安装

通过以上过程,即可编译好alamode软件,我们将所有相关命令写成make-alamode.sh脚本,用户需要将相关压缩包和该脚本放在同一目录下(不一定是用户根目录,脚本中有调整目录的参数),然后适当修改编译脚本(如编译器加载的命令基本一肯定需求修改),再然后执行source make-alamode.sh即可编译成功。脚本内容如下:

#!/bin/bash -e
# file: make-alamode.sh
echo "Script for alamode install."
IMPI=yes  # 'yes' to use mpiicpc

# ----------------
# Need Change!!!
# ----------------
# cmake / icpc / mpi
module add cmake/3.12.0-gcc4.8
module add Intel_compiler/16.0.3
module add MKL/16.0.3
module add MPI/Intel/IMPI/5.1.3.210
# ----------------

# get current directory
export CMD=`pwd`

# ----------------
# boost
# ----------------
# wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.bz2
tar xvf boost_1_64_0.tar.bz2
mkdir include;
cd include
ln -s ../boost_1_64_0/boost .
cd ..

# ----------------
# eigen
# ----------------
# wget https://gitlab.com/libeigen/eigen/-/archive/3.3.3/eigen-3.3.3.tar.bz2
tar xvf eigen-3.3.3.tar.bz2
cd include
ln -s ../eigen-3.3.3/Eigen .
cd ..


# ----------------
# spglib
# ----------------
# wget https://codeload.github.com/spglib/spglib/tar.gz/v1.16.0
tar zxvf spglib-1.16.0.tar.gz
cd spglib-1.16.0
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX="" ..
make
make DESTDIR=$CMD/install/spglib-1.16.0 install
export SPGLIB_ROOT=$CMD/install/spglib-1.16.0
cd ../..

# ---------------------
# alamode
# ---------------------
# wget https://sourceforge.net/projects/alamode/files/alamode-1.1.0.tar.gz/download
tar zxvf alamode-1.1.0.tar.gz
cd alamode-1.1.0

# ====================
# # alm
# ====================
# wget https://sourceforge.net/projects/alamode/files/alamode-1.1.0.tar.gz/download
cd alm/
cp Makefile.linux Makefile

# change parameters
sed -i "s%\$(HOME)%$CMD%" Makefile # change 'include' directory
sed -i "s/lib/lib64/" Makefile # change 'spglib/lib' directory

# compile
make -j

# ====================
# # anphon
# ====================
cd ../anphon/
cp Makefile.linux Makefile

# change parameters
if [[ $IMPI == 'yes' ]];then 
  sed -i "s/mpicxx/mpiicpc/" Makefile 
fi

sed -i "s/-openmp/-qopenmp/" Makefile
sed -i "s%INCLUDE =%INCLUDE = -I$CMD/include -I\$(MKLROOT)/include/fftw%" Makefile # fftw include

# compile
make -j

# ====================
# # tools
# ====================
cd ../tools/

# change parameters
sed -i "s/#CXX = icpc/CXX = icpc/" Makefile # change compiler
sed -i "s/CXX = g++-8/#CXX = g++-8/" Makefile
sed -i "s%\$(HOME)%$CMD%" Makefile # change 'include' directory

# compile
make -j
cd ../..

# ----------------
# env
# ----------------

echo
echo "You should add the following lines to use alamode in any path:"
echo
echo "	export PATH=$CMD/alamode-1.1.0/alm:\$PATH"
echo "	export PATH=$CMD/alamode-1.1.0/anphon:\$PATH"
echo "	export PATH=$CMD/alamode-1.1.0/tools:\$PATH"
echo "	export LD_LIBRARY_PATH=$SPGLIB_ROOT/lib64:\$LD_LIBRARY_PATH"
echo
echo "Please add the compiler envrionment too."

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
petsc
angsd

← petsc angsd→

Theme by Vdoing | Copyright © 2018-2020 Zheng Gang | MIT License | 津ICP备17007036号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式