计算化学公社

 找回密码 Forget password
 注册 Register
Views: 11904|回复 Reply: 6
打印 Print 上一主题 Last thread 下一主题 Next thread

[综合讨论] 求应力应变结构拉伸脚本

[复制链接 Copy URL]

26

帖子

0

威望

388

eV
积分
414

Level 3 能力者

跳转到指定楼层 Go to specific reply
楼主
如题,为提高 工作效率,又由于个人程序方面不才,特此向各位高手求助力学拉伸程序。不胜感激!

908

帖子

37

威望

5435

eV
积分
7083

Level 6 (一方通行)

7#
发表于 Post on 2017-4-21 11:39:14 | 只看该作者 Only view this author
mylifecg 发表于 2017-4-20 09:34
不好意思,补充一下我的求助细节啊:
我是想对二维材料进行某个方向的拉伸,比如沿着x方向拉伸,就要实现 ...

为啥不一次把各种百分比的都拉伸好,在分别算。你这样串行算效率多低啊?

26

帖子

0

威望

388

eV
积分
414

Level 3 能力者

6#
 楼主 Author| 发表于 Post on 2017-4-21 08:18:55 | 只看该作者 Only view this author
万里云 发表于 2017-4-20 11:57
这个问题最棘手的部分是生成不同的POSCAR。POSCAR中原子坐标不变,只根据一套公式改变基矢。

麻烦就在这 ...

十分感谢您的回复。

418

帖子

4

威望

2910

eV
积分
3408

Level 5 (御坂)

5#
发表于 Post on 2017-4-20 11:57:39 | 只看该作者 Only view this author
这个问题最棘手的部分是生成不同的POSCAR。POSCAR中原子坐标不变,只根据一套公式改变基矢。

麻烦就在这改变基矢上了。拉伸还行,压缩有个负号-,而-在Shell中又有其它用途,导致程序稳定性堪忧。

据个人经验,先用Matlab把POSCAR做好,再逐个计算最好。Shell的计算能力实在着急。

贴个用QuantumESPRESSO优化不同应变下结构的脚本:

  1. #! /bin/bash

  2. runjob()
  3. {
  4.         local a1x=$(echo $a      | awk '{printf "%14.9f", $1/2}')
  5.         local a1y=$(echo $a $ita | awk '{printf "%14.9f", (1-$2)/2*sqrt(3)*$1}')
  6.         local a2x=$(echo $a      | awk '{printf "%14.9f", -$1/2}')
  7.         local a2y=$(echo $a $ita | awk '{printf "%14.9f", (1-$2)/2*sqrt(3)*$1}')
  8.         cat > $ita.in << EOF
  9. &CONTROL
  10.     prefix           = '$ita'
  11.     calculation      = 'relax'
  12.     restart_mode     = 'from_scratch'
  13.     pseudo_dir       = './'
  14.     outdir           = './'
  15.     wfcdir           = './'
  16.     verbosity        = 'high'
  17.     wf_collect       = .TRUE.
  18.     nstep            = 250
  19.     etot_conv_thr    = 7.3d-6
  20.     forc_conv_thr    = 3.8d-4
  21.     tprnfor          = .TRUE.
  22. /
  23. &SYSTEM
  24.     ibrav            = 0
  25.     celldm(1)        = 1.889726125
  26.     ntyp             = 2
  27.     nat              = 2
  28.     ecutwfc          = 70
  29.     nbnd             = 16
  30.     occupations      = 'smearing'
  31.     smearing         = 'gaussian'
  32.     degauss          = 0.005
  33. /
  34. &ELECTRONS
  35.     electron_maxstep = 250
  36.     conv_thr         = 1.0d-8
  37.     mixing_mode      = 'plain'
  38.     mixing_beta      = 0.7
  39.     mixing_ndim      = 8
  40.     diagonalization  = 'david'
  41.     diago_david_ndim = 4
  42. /
  43. &IONS
  44.     ion_dynamics     = 'bfgs'
  45. /
  46. ATOMIC_SPECIES
  47.    A   1.0   A.pbe-mt_fhi.UPF
  48.    B   2.0   B.pbe-mt_fhi.UPF
  49. CELL_PARAMETERS {alat}
  50. $a1x$a1y   0.000000000
  51. $a2x$a2y   0.000000000
  52.    0.000000000   0.000000000  20.500000000
  53. ATOMIC_POSITIONS {crystal}
  54.    B   0.333334671   0.333334671   0.431781565
  55.    A   0.666665091   0.666665091   0.369744698
  56. K_POINTS {automatic}
  57. 12 12 1 0 0 0
  58. EOF
  59.         $MPIRUN pw.x -in $ita.in &> $ita.out
  60.         wait
  61.         rm -r *.save
  62.         wait
  63. }

  64. ncore=20
  65. MPIRUN="mpirun -np $ncore"
  66. topdir=$(pwd)
  67. a=4.055466757
  68. for ita in $(seq 0.0 0.005 0.03); do
  69.         runjob
  70. done
复制代码

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
sobereva + 3

查看全部评分 View all ratings

26

帖子

0

威望

388

eV
积分
414

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2017-4-20 09:34:13 | 只看该作者 Only view this author
不好意思,补充一下我的求助细节啊:
我是想对二维材料进行某个方向的拉伸,比如沿着x方向拉伸,就要实现晶格常数的逐步增大(比如每一步增加1%),且下一步应变需要用到上一步的输出CONTCAR文件作为下一步的POSCAR输入文件。每一步计算都要输出一个一个文件夹为保存此步的计算结构。比如对应1%的拉伸可输出一个命名为1的文件夹,包含了此步拉伸的计算结果。2%拉伸的计算结果可输入一个命名为2的文件夹,包含了此步拉伸的计算结果。2%的拉伸实在1%拉伸的基础上实现的。所以要用到1计算的结果文件CONTCAR再继续拉伸。

6万

帖子

99

威望

5万

eV
积分
120146

管理员

公社社长

3#
发表于 Post on 2017-4-19 22:30:17 | 只看该作者 Only view this author
至少也得把用的程序写明了,要从答疑者的角度去思考需要提供什么信息,尤其是脚本这直接牵扯到计算程序,没有细节没法回答
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

908

帖子

37

威望

5435

eV
积分
7083

Level 6 (一方通行)

2#
发表于 Post on 2017-4-19 22:18:17 | 只看该作者 Only view this author
你这个问题不详细啊。

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-15 23:23 , Processed in 0.168612 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list