jasonmumu的个人博客分享 http://blog.sciencenet.cn/u/jasonmumu

博文

ASE 的安装及其与VASP 对接的方法

已有 17287 次阅读 2019-9-2 20:55 |个人分类:软件的安装|系统分类:科研笔记| ASE, VASP, 接口

ASE 的全称是Atomic Simulation Environment,是一款基于python程序语言的工具包合集。支持与很多DFT程序的对接(Abinit, CP2K, NWChem, Gaussian, Vasp 等),具有强大的提交计算、可视化及分析计算结果的功能。这里主要介绍ASE的安装及其与VASP对接的方法。我们知道,提交VASP计算任务之前需要准备POTCAR;如果计算带电体系还需要对每个结构总的价电子个数进行设置。现在通过ASE提交计算任务则省去了准备POTCAR,和自己计算总价电子数的麻烦。所以把方法分享给大家并方便自己查看。

此外,这里介绍的是离线安装ASE的方法。
如果是联网的服务器,可以直接使用pip 安装:“pip install --upgrade --user ase”。


 

. 安装anaconda3

ASE需要3.5或更高版本的python程序,而anaconda集成了ASE需求的软件包。因此直接在官网下载最新版anaconda即可满足ASE安装的需求。

链接:https://www.anaconda.com/distribution/#download-section

下载得到Anaconda3-2019.07-Linux-x86_64.sh之后将其上传到服务器,直接sh Anaconda3-2019.07-Linux-x86_64.sh 进行安装,关于最后一步是否将Anaconda3python环境写入 ~/.bashrc,取决于个人的喜好。我习惯不这么做,而是把环境变量单独写,如写到 ~/.env_ase.sh 。

环境变量的设置如下:

#!/bin/bash

# >>> conda init >>>

# !! Contents within this block are   managed by 'conda init' !!

__conda_setup="$(CONDA_REPORT_ERRORS=false   '/home/mu/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"

if [ $? -eq 0 ]; then

      \eval "$__conda_setup"

else

      if [ -f "/home/mu/anaconda3/etc/profile.d/conda.sh" ]; then

          . "/home/mu/anaconda3/etc/profile.d/conda.sh"

          CONDA_CHANGEPS1=false conda activate base

      else

          \export PATH="/home/mu/anaconda3/bin:$PATH"

      fi

fi

unset __conda_setup

这里把环境变量写到了 ~/.env_ase.sh文件中。

 

. 安装ASE

在官网下载ASE源包,然后上传到服务器解压缩。

链接:https://wiki.fysik.dtu.dk/ase/install.html#run-the-tests

1. 安装

解压安装包之后,cd到解压位置后执行:

source ~/.env_ase.sh

python3 setup.py install --user

正常完成安装后把ase的目录写入环境变量。

export   PATH=/home/mu/soft/ase/ase-3.18.0/bin:$PATH

与上相同,将其写到 ~/.env_ase.sh文件中。

2. 测试

然后测试ase是否正确安装,执行:

source ~/.env_ase.sh

ase test

如果安装正确会看到如下信息:

========== Summary ==========

Number of tests   317

Passes:           229

Failures:           0

Errors:             0

Skipped:           88

=============================

Test suite passed!

 

. ASEVASP对接

成功安装ASE之后还需要必要的设置来建立ASEVASP的联系。

1.设置run_vasp.py 脚本

将如下两行内容写入到run_vasp.py文件中。

import os

exitcode = os.system('vasp_std')

run_vasp.py文件可以放到任意目录,因为计算时会指定它的路径。

2. 设置VASP赝势的路径

将赝势文件上传到服务器某一路径下。

需要注意的是,赝势文件的命名有如下对应关系:

PBE, PW91, LDA分别命名为potpaw_PBE, potpaw_GGA, potpaw

最后将如下内容写到 ~/.env_ase.sh文件中

export VASP_SCRIPT=/path to run_vasp.py /run_vasp.py

export VASP_PP_PATH=/path to pseudo/Pseudopotentials/

Pseudopotentialspotpaw_PBE的上一级目录。

 

. 提交计算的方法

我习惯用bash脚本提交计算任务,脚本示例如下(ase_vasp_jobs.sh):

#######################################

#!/bin/bash

 

source ~/.env_ase.sh

mpirun -np 24 python3 test.py

########################################

需要注意的是,vasp的运行所需要的环境需要生效,这里的计算相当于“vasp_std test.py”,因此如果没有在.bashrc中给出vasp_std工作目录的,需要在ase_vasp_jobs.sh.env_ase.sh中指定vasp_std的工作目录。

脚本中test.py 的内容可以是:

from ase import Atoms, Atom

from ase.calculators.vasp import Vasp

 

a = [6.5, 6.5, 7.7]

d = 2.3608

NaCl = Atoms([Atom('Na', [0, 0, 0], magmom=1.928),

              Atom('Cl', [0, 0, d], magmom=0.75)],

             cell=a)

 

calc = Vasp(prec='Accurate', xc='PBE', lreal=False)

NaCl.set_calculator(calc)

 

NaCl. get_potential_energy()

 

最后把test.pyase_vasp_jobs.sh放到同一个目录,命令行执行如下命令即可

nohup sh ase_vasp_jobs.sh &

ASE会自动生成VASP计算所需要的文件,如果需要自己设置KPOINTS,可以参考官网的教程。

 

. 带电体系的设置方法

带电体系的设置其实很容易实现,只需要在calc中添加 net_charge这一个命令即可。比如

calc = Vasp(prec='Accurate', xc='PBE', lreal=False,

net_charge=1)

此时获得的INCAR中的NELECT值就会相比中性体系加1(注意这里是加1,如果想设置正价体系就需要设成负值)




https://wap.sciencenet.cn/blog-3311084-1196372.html

上一篇:CP2K, NWChem 等在个人工作站上的安装
下一篇:Pymol 入门:Pymol的安装与作图
收藏 IP: 210.72.8.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 13:11

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部