vasp计算脚本放在服务器的位置,让搬砖变得轻松——vasp提交系列任务用的脚本...

在上adv. metal课的时候就曾经遇到过这个问题,当然那个时候还是全靠手动去做nuclei move的锅,不过现在也会遇到这样的情况,就是我要提交一系列的任务,而这一系列的任务是有一定的规律的,目前从我遇到过的case来看,主要有两种

Case 1.

这种情况每个任务里面不一样的地方只有其中一个参数,参数是单一的或者多个参数之间有某种数学关系

e.g. 要做一个convergence test,提交相同cut off energy不同k-point的一系列任务,或者POSCAR里面成比例地修改键长

用改POSCAR这个case来说,需要完成两个script:

生成POSCAR的script

首先理清思路,在我们的一系列的任务中,POSCAR是一直在变的,所以在最开始的输入文件中,我们不事先提供POSCAR这个文件,而是用每个文件夹中的script去生成跟任务文件夹对应的POSCAR文件,然后运行vasp程序->得到结果->收集结果

写一个生成POSCAR的script pos.py,这里用python写了一个,用c也可以,完全看习惯

import sys

import math

a = float(sys.argv[1]) # lattice constant

fout = open('POSCAR', 'w') # make a file named as POSCAR

fout.write(

'''G_monolayer

1.0

%.10f 0.0000000000 0.0000000000

%.10f %.10f 0.0000000000

0.0000000000 0.0000000000 3.0000000000

C

2

Cartesian

0.000000000 0.000000000 2.171259403

1.233863017 0.712369702 2.171259403

'''%(a, -a/2, math.sqrt(3)*a/2))

# construct a primitive cell with constant c direction but variable a b directions

fout.close()

这里我们是为了改变一个graphene的primitive cell的lattice parameter

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VASP(Vienna Ab initio Simulation Package)是一款用于计算材料结构和性质的第一性原理计算软件。批量提交任务脚本可以用于简化VASP计算的流程,提高计算的效率。下面是一个用于批量提交任务脚本示例: ```shell #!/bin/bash # 设置计算所需的参数 work_dir="/path/to/your/work/directory" vasp_exec="/path/to/your/vasp/executable" input_files="INCAR POSCAR KPOINTS" job_name="VASP_Job" # 创建任务目录 mkdir -p $work_dir/$job_name cd $work_dir/$job_name # 复制输入文件到任务目录 for file in $input_files do cp /path/to/your/input/files/$file . done # 循环提交任务 for i in {1..10} # 根据需要修改任务数量 do # 创建任务子目录 mkdir -p $i cd $i # 复制输入文件到任务子目录 for file in $input_files do cp ../$file . done # 修改输入文件中的一些参数,如必要 # sed -i 's/param1/param2/g' INCAR # 提交任务 $vasp_exec > vasp.out # 返回上一级目录 cd .. done ``` 以上脚本中,首先设置了计算所需的参数,包括工作目录、VASP可执行文件路径、输入文件列表和任务名称。然后,在工作目录下创建了一个名为`VASP_Job`的目录。接下来,将输入文件复制到任务目录中,并循环提交指定数量的任务。每个任务都在任务目录下创建一个子目录,并将输入文件复制到子目录中。如果需要修改输入文件中的参数,可以使用`sed`命令实现。最后,通过执行VASP可执行文件运行任务,并将输出重定向到`vasp.out`文件中。 需要注意的是,该脚本只是一个示例,具体使用时需要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值