参考量子化学公众号的博文:
MOKIT编译
方式1
下载MOKIT整个源码压缩包,在Linux系统下的安装目录解压,重命名
1
2unzip mokit-master.zip
mv mokit-master mokit进入mokit文件夹编译
1
2cd mokit/src
make all注意:该步骤之前需要先找到Intel编译器的目录,否则会出现没有ifort命令的错误。
1
source /opt/intel/bin/compilervars.sh intel64
编写mokit的运行脚本mokit.sub
1
2
3
4
5
6
7
8
9
10!/bin/bash
export MOKIT_ROOT=/home/$USER/software/mokit
export PATH=$MOKIT_ROOT/bin:$PATH
export PYTHONPATH=$MOKIT_ROOT/lib:$PYTHONPATH
export ORCA=/home/scicons/orca_4_1_2_linux_x86-64_shared_openmpi313
export GMS=/home/zhaojing/software/gamess/rungms
automr ${1}>& test.out&需要用到Gaussian、Gamess、ORCA、molpro等软件:
MOKIT会识别系统中的GAUSS_EXEDIR变量,必要时自动调用Gaussian软件。但是有时候无法识别就需要手动在sub文件中添加以下三句,将
g16root=
后更改为服务器中高斯的目录即可。1
2
3export g16root=/home/scicons/Gaussian16B
source $g16root/g16/bsd/g16.profile
export GAUSS_SCRDIR=`mktemp -d`变量ORCA对应量化软件ORCA可执行文件的完整路径
变量GMS对应量化软件GAMESS可执行文件的完整路径(如果没有需要进行安装)
PySCF、OpenMolcas和Molpro软件分别由python、pymolcas和molpro命令运行,无需告诉MOKIT它们的位置。
将mokit.sub修改为可执行文件,运行即可
1
2chmod +x mokit.sub
mokit.sub xxxx.gjf
方式2 conda 联网安装
1 | conda create -n mokit-py37 python=3.7 # 3.8, 3.9 are also available |
可能会报错
1 | Solving environment: failed |
额外使用一句
1 | conda config --append channels conda-forge |
GAMESS编译
下载gamess的安装包,解压到安装目录文件下
1
tar -zxvf gamess-current.tar.gz
不要忘记
source /opt/intel/bin/compilervars.sh intel64
这一步进入gamess目录,执行./config,开始进行配置:
- enter
- 输入机器类型:
linux64
- 设置安装目录,可选默认路径直接回车,也可自己定义路径
- enter
- 版本号,可以自己设定,默认为00,则编译完成后会生成gamess.00.x可执行文件。(注意该步骤,mokit中的可执行文件使用的是gamess.01.x,所以最好此步包括后面的
./lked gamess 00
都用01。) - 选择fortran编译器,此处填
ifort
- 编译器版本号,此处填
18
- enter
- 选择数学库版本,此处填
mkl
- 填写MKL库路径,软件会自动识别目录,如果正确,可以直接复制。
proceed
- enter
- enter
- 一般做节点内并行,选
sockets
即可 - no
- 后面还有一些yes no,不太清楚……
编译DDI,这是GAMESS官方的并行库。
1
2
3cd ddi
./compddi
mv ddikick.x ..编译源代码并生成可执行文件
1
2cd ..
./compall >& compall.log &这一步需要极其久的时间,完成后生成gamess.00.x可执行程序
1
./lked gamess 00
修改rungms脚本
1
2
3set SCR=/scratch/$USER/gamess #这是临时文件目录
set USERSCR=/scratch/$USER/gamess #同上
set GMSPATH=/opt/gamess #GAMESS的安装目录向下找到
1
2if ($NCPUS > 1) then
switch (`hostname`)在这个switch语句中添加一个case语句:
1
2
3
4
5case node01: #输入节点名字
if ($NCPUS > 16) set NCPUS=16 #最多使用进程数
set NNODES=1
set HOSTLIST=(`hostname`:cpus=$NCPUS)
breaksw用户将/opt/gamess这个目录写入环境变量:
1
export PATH=$PATH:/opt/gamess
测试输入文件,
rungms XXX
如果看到最后输出ddikick.x: exited gracefully.,则说明运行成功。