跳至主要内容

vasp 应力应变曲线

 科学网—Ideal strength VASP by Hanyu Liu - 冯晓蕾的博文 (sciencenet.cn)

The original method is introduced by PRL 82,2713(1999)


本文为本人工作记录。程序下载及计算方法请到 https://sourceforge.net/projects/ideal-strength-vasp/?source=navbar


感谢本程序作者:

Dr. Hanyu Liu

Email: hanyuliu801@gmail.com


准备工作

1.结构优化。将CONTCAR到出,在MS中导入对称性, 再转为POSCAR(for further calculations)

2.编译VASP。把VASP安装包cp到自己的目录。

 for ideal tensile strength, add 'FCELL(1,1)= 0.0' to constr_cell_relax.F of vasp code.

#the Stress at x axis is fixed and vasp not relax the lattice at x axis.

 for ideal shear strength, add 'FCELL(1,3)= 0.0' and 'FCELL(3,1) = 0.0' constr_cell_relax.F of vasp code.

 Here, you need to recompile vasp. 【make clean 】【make】

我在make的过程除了error: 没有lib。Lib文件放在mu'lu中,改下路径ming ,OK!

输入文件

0. pbs.sh (集群上提交任务的脚本 ./strenth4.py > Strength.log)

1.POSCAR

2. POTCAR

3. KPOINTS (不用太大: ./writekp.py 0.04)

4. strength4.py (核心程序,下载到Hanyu主页,见文章开篇)

5. input.dat (strength4.py 要读的输入文件) as followed:

POSCAR #the name of POSCAR

0.02 #strain of distortion

100 #total step of distortion (虽说一般30steps即可,建议设置大一些,因为数据够了的话可以手动kill job)

-45.0 35.264390 0.0 # rotate Z, Y and X.

1 # 1 tensile, 2 shear

/home/zzu002/lhy/test/vasp/vasp.5.3-1/vasp # 提任务的命令。注意tensile和shear

的vasp路径不同!

关于计算的方向:

We set x axis as tensile strength direction (tensile (x)). Also we set x and z axis as shear direction (shear (x)[z]). For example, if you want to calculating ideal strength of Diamond along 100, you just set 0.0 0.0 0.0. If you want to calculate 110 orientation, you need set -45.0 0.0 0.0

If you want to calculate 111 orientation, you need set -45.0 35.264390 0.0.

It is for rotating the x, y and z axis as a Right-handed helical rule.


我计算的tensile plane:


TENSILE
dire  input#rotate Z, Y, X.    GPa      jobID  jobState
100    0.0 0.0 0.0               103.115345   53421  killed
110  -45.0 0.0 0.0              100.23066    53422  killed
111  -45.0 35.264390 0.0  120.147138   53463  killed
001    0.0 90.0 0.0                75.300806   53464  killed
010  -90.0 0.0 0.0              122.560777   53465  killed
101    0.0 45.0 0.0                75.7             54584
011  -90.0 45.0 0.0               64               54585
+101    0.0 -45.0 0.0              82               54586
+110    45.0 0.0 0.0                                  54587  =<110> killed
11+1  -45.0 -35.26439 0.0    10.961293    54953


SHEAR-001

1 0.0  90.0 0.0                           55035
2 0.0  90.0 90.0                          55036
3 0.0  90.0 180.0                         55161

Research highlights:

1, Miao Zhang, Mingchun Lu, Yonghui Du, Lili Gao, Cheng Lu and Hanyu Liu, "Hardness of FeB4?: Density functional theory investigation" J. Chem. Phys., 140, 174505 (2014)

2, Yinwei Li, Jian Hao, Hanyu Liu, Siyu Lu and John S. Tse "High energy density and superhard nitrogen-rich B-N compounds", Phys. Rev. Lett., 115, 105502 (2015)

3, Miao Zhang, Hanyu Liu, Quan Li, Bo Gao, Yanchao Wang, Hongdong Li, Changfeng Chen and Yanming Ma, “Superhard BC3 in cubic diamond structure” Phys. Rev. Lett., 114, 015502 (2015)

4, Quan Li, Hanyu Liu, Dan Zhou, Weitao Zheng, Zhijian Wu and Yanming Ma, "novel low compressible and superhard carbon nitride: Body-centered tetragonal CN2" Phys. Chem. Chem. Phys., 14, 13081–13087 (2012)







评论

此博客中的热门博文

dpgen数据收集分类续算

dpgen 推荐安装升级方法:删除之前工作目录的dpgen文件夹 Install from source code:  git clone https://github.com/deepmodeling/dpgen && pip install ./dpgen 想收集TL的数据集且按化学成分分类:/work/qan/kluo/NaSPO/run/TransL dpgen collect ./ ./collect -p simplify.json -m 不起作用,只能用 param.json格式 所以单独新建文件夹,构造虚拟的 param.json其中初始数据集地址,直接复制最后一个train的input.json.再用 dpgen collect ./ ./collect -p param.json -m就可以收集初始的数据了,但是这时候没有分类,尽管dpgen collect -m 有这个功能但没有作用。 所以,构建虚拟的simplify任务,记住是精简过程,所以       "labeled" : true ,       "init_pick_number" : 0 ,       "iter_pick_number" : 0 , .....       "training_init_model" : false , 运行之后,第一步就得到了 所有的分类数据集。 Q: /work/qan/kluo/NaSPO/run 最近几轮的准确率上不去,猜测是数据集太大 232334 batch ,而每一代的学习步长 step 只有 50 万,以及不够了。所以出现了:一些模型的准确率一直上不去,就算修改上下限也没有改观。或者一些模型学好了,另一些模型就被遗忘了,很明显是学习步长不够了。 A: 解决办法如下:将现有数据收集分类,分拣出确实学习率低的重写单独重点学习。其次,以后用 dpgen 自动采样产生数据集的时候,时刻关注准确率的变化,一旦上不去了赶紧分家。 D: 1.        收集数据 a.       ...

dpgen simplify 数据精简二次处理

问题: 1.        Carbon 的势能文件无法准确描述石墨层间距 共有 204,200 bch 2.        NaSPO 的势能文件无法压缩 共有 242,423 bch 都可能是 data 太臃肿导致的,所以决定精简用 simplify 命令试试(感觉是重新采样的过程,只是节省了 lammps 的时间用 dp test 代替了,还是需要 fp 过程(也可以注释掉,如果需要新的 VASP 参数可以启用),更适合需要换 fp 参数的计算)。第一次取样是随机的, dp 采样过程有点慢 压缩的 pb 需要 6 小时。 还可以重新 fp 改善数据集 https://tutorials.deepmodeling.com/en/latest/CaseStudies/Transfer-learning/Transfer-learning.html https://docs.deepmodeling.com/projects/dpgen/en/latest/simplify/simplify-jdata.html https://zhuanlan.zhihu.com/p/456504860 http://bohrium-doc.dp.tech/docs/software/DP-GEN_simplify Simplify — DP-GEN documentation 先做,动起来在看 1.        收集所有数据 https://hikunluo.blogspot.com/2022/12/dpgen.html 2.        准备 simplify 的两个 json 文件。      nohup dpgen simplify simplify.json machine.json 1 > log 2 > err &      (base) [kluo@condo2017 SimCarbon]$ cat simplify.json { ...

python相关

 在IDLE中运行pip install pandas是不行的。你需要在命令提示符(Command Prompt)或终端(Terminal)中运行该命令。下面是详细步骤: 使用命令提示符安装 pandas 打开命令提示符: 按 Win + R 键打开运行窗口,输入 cmd,然后按回车键。 或者你可以在开始菜单中搜索“命令提示符”并打开它。 而且运行python脚本的一般步骤: 1. 打开IDLE shell这是个交互窗口 不能直接将脚本内容直接复制到这里,但是应该可以用python +脚本路径运行 2. File -new file-粘贴脚本内容 3.这个窗口上有run