跳至主要内容

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)







评论

此博客中的热门博文

lammps 压痕划痕模拟设置参考

  Molecular dynamics study on the effect of electric current on electrically-assisted scratching for crystal copper - IOPscience 原因深入分析如下: ✅ 切削 / 摩擦 / 划痕:局部剧烈变形 → 热量集中 这类过程模拟的是工具与材料 接触区域的强烈局部非平衡过程 ; 如果对整个系统控温,会 严重抹平局部发热、滑移带的应变能耗散 等重要现象; 所以 只在边界区域(如底部、侧边)设 thermostat,起到“热沉”作用 ; 文献经典设置就是: 底部固定 ; 边缘 slab 控温 ; 接触区完全不控温,自由演化 。 ✅ 拉伸 / 压缩 / 剪切:全局加载 → 热传导充分 是材料整体在受力,不存在特别“集中”的能量输入区域; 局部发热相对温和,且在 bulk 系统中可以通过自身结构进行导热 ; 实验中常常是等温加载(准静态过程); 所以 很多文献就直接用整体 fix nvt 控温 ,保持恒温环境,简化模拟; 注意有些更精细的研究会改为: 只在两端 slab 控温,中间 Newtonian 自由演化 。 📚 二、典型模拟场景下的控温策略总览 场景类别 控温方式 控温范围 控温方法 控温目的 注意事项 ✅ 平衡态热力学性质 (如热容、扩散、应力) 整体控温 全体系 fix nvt , fix npt 模拟室温等温状态 标准EMD方法 ✅ 热导率(Green-Kubo) 整体控温 全体系 fix nvt (前期平衡), 后期 nve 采集能流自相关函数 采样期不能控温 ✅ 热导率(NEMD) 区域控温 热源/热沉 fix langevin , fix heat 人为施加温差形成热流 中间区自由演化 ✅ 拉伸 / 压缩 / 剪切 整体控温(常用)或局部控温 全体系或上下 slab fix nvt 或 langevin slab 保持恒温,避免非真实升温 全控温可抹平热应变 ✅ 应力松弛 / 加热冷却过程 整体控温 全体系 fix nvt 或温度渐变 等温退火、升温或冷却 控温方式决定退火速率 ✅ 位错运动 / 缺陷扩散 局部控温 边界或部分 slab ...

lammps Pdamp,Tdamp的设置经验

 一张小抄(固体/位错/二维材料都适用) fix             11    all npt temp 0.1 0.1 0.5 tri 0.0 0.0 5   drag 2 tchain 3 pchain 3 保持 Pdamp ≫ Tdamp(通常 10× 左右)。 固体/低温:Tdamp 取 0.5–1 ps,Pdamp 取 5–15 ps;需要更稳就再加大 Pdamp。 所以推荐如下: 0.1K 用1 10 300K 固体 用0.5 5  高温用0.2 2 液体用0.1 1 液体/高温:Tdamp 0.2–0.5 ps,Pdamp 2–5 ps 往往够。 2D(石墨烯等,只控平面 x/y):Pdamp 常用 10–20 ps 起步,z 固定或 z NULL。 观察到体积/压力振荡大:增加 Pdamp 或加 drag 2–3,必要时把 dt 临时降到 0.5 fs。 drag 2、tchain/pchain 3 保留没坏处,确实能再抑制一点振荡;不是硬性必须,但在固体+低温+(可能还有 tri 或剪切)的组合里,“更稳”>“更快”,我一般会开着。

dpgen训练经验

最新的dpgen参考PtCuP /work/qan/kluo/PtCuP 0.1K的第0代采样很重要 可以多重复几次确保99以上的准确率,它是后续高温的基础 单点能计算  ISYM = 2 nohup dpgen run param.json machine.json 1>log 2>err& nohup dpgen init_bulk param.json machine.json  1>log 2>err& 初始数据集产生,只能一个POSCAR的计算 但是可以同时提多个任务,但是每个任务都需要 POTCAR POSCAR 一 一对应才行。  elements 和POSCAR POTCAR保持一致。 " type_map " : [ "Ti" , "C" , "V" , "Cr" , "Nb" , "Mo" ],都写全才行 POSCAR 不需要 改成特定顺序 程序最终生成数据集的时候会根据 type_map自动统一匹配 usage: dpgen [-h] {init_surf,init_bulk,auto_gen_param,init_reaction,run,run/report,collect,simplify,autotest,db,gui} ... dpgen is a convenient script that uses DeepGenerator to prepare initial data, drive DeepMDkit and analyze results. This script works based on several sub-commands with their own options. To see the options for the sub-commands, type "dpgen sub-command -h". positional arguments:   {init_surf,init_bulk,auto_gen_param,init_reaction,run,run/report,collect,simpli...