|||
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 进行安装,关于最后一步是否将Anaconda3的python环境写入 ~/.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!
三. 将ASE与VASP对接
成功安装ASE之后还需要必要的设置来建立ASE与VASP的联系。
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/ |
Pseudopotentials是potpaw_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.py和ase_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,如果想设置正价体系就需要设成负值)。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-19 23:34
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社