鉴于目前没有找到很好的,很完整的教程由A到Z介绍如何用VASP计算Raman光谱。可能有干货的大神都留着自己用
摸索了一会儿找到了以下其中一个☝️方法,如果大神有补充或者纠正,欢迎留言
pre-requests:
- VASP 和 VTST 安装好,没有的可以参照一下这篇文章
- 将会用到VTST scripts里面 这两个code:dymselsph.pl, dymmatrix.py
- 会用最基本的vasp
- 安装好python
- 把github上的raman-sc下载下来,用python3.6的可以用知乎上这位大神的code。或者其实就是把原作者的code,vasp_raman.py里面的print都加上括号就可以用了
- 最重要的是根据原作者issues里面的这个问答,加上:
-
except: from lxml import etree doc = etree.parse('vasprun.xml') values = [c.text for c in doc.xpath("/modeling/calculation/varray"[3].getchildren()] # 修改以后如下 if "MACROSCOPIC STATIC DIELECTRIC TENSOR" in line: outcar_fh.readline() try: epsilon.append([float(x) for x in outcar_fh.readline().split()]) epsilon.append([float(x) for x in outcar_fh.readline().split()]) epsilon.append([float(x) for x in outcar_fh.readline().split()]) except: #以下是预防在OUTCAR里找不到MACROSCOPIC STATIC DIELECTRIC TENSOR #或者有时候OUTCAR里出现了一连串超大数字和负号, 把两个数连起来了。例如 #1287356918273.125234-1234