当前位置:首页|资讯

【使用for循环和sed命令简化VASP恒电势计算流程】

作者:砜之谷发布时间:2024-10-08


先进行结构优化,而后频率分析获得自由能校正G(T)


mkdir 0

cp INCAR CONTCAR vasp630FCP.sh 0

cd 0


cp CONTCAR POSCAR

vaspkit - 102 - 0.04,并记录电中性条件下总价电子数(Total Valence Electrons)

k点非1 1 1,vasp630FCP.sh里使用vasp_std

vi INCAR

尽量不锁NUPDOWN,如实在收敛不到所需磁矩,可以尝试NUPDOWN

LWAVE  =  T

LVHAR  = T

如FERMI_SHIFT输出一直为0:PREC = Accurate

EDIFF  =  1E-06

ALGO   =  CG

NSW    =  0

设电中性NELECT

提交任务


输出文件中E0即E(DFT),并包含FERMI_SHIFT、总mag

grep fermi OUTCAR获得费米能级Ef

tail -100 OUTCAR获得各原子mag,注意检查磁性原子磁矩是否正常



grep NELECT INCAR -n

获得零电荷状态下的价电子数(OUTCAR里也有)和NELECT关键词所在的行数


cd ..


for i in `seq 231 0.5 235` ; do cp 0 $i -r ; done

以0.5为步长将文件夹0复制为NELECT-2至NELECT+2(这里是231至235电子)的一系列文件夹


for i in `seq 231 0.5 235` ; do sed -i "103s/233/$i/g" $i/INCAR ; done

将各文件夹里INCAR文件第103行的NELECT关键词数值替换为各文件夹名字


grep NELECT */INCAR

检查替换情况


批量提交:

写一个批量提交脚本s.sh


#!/bin/bash

#SBATCH -p v6_384

#SBATCH -N 1

#SBATCH -n 96

for i in `seq 231 0.5 235`

do

cd $i

sbatch vasp630FCP.sh

cd ..

done


提交

sbatch s.sh



for i in `seq 231 0.5 235` ; do tail -50 $i/OUTCAR  ; done

查看磁性原子磁矩是否合理


for i in `seq 231 0.5 235` ; do grep sigma $i/OUTCAR  ; done

ls *

tail 235.0/slurm-10965592.out

获取E(DFT)


for i in `seq 231 0.5 235` ; do grep fermi $i/OUTCAR  ; done

获取费米能级



最后批量删除WAVECAR、POT、LOCPOT、vasprun.xml等大文件,清理空间:


#!/bin/bash

#SBATCH -p v6_384

#SBATCH -N 1

#SBATCH -n 96

for i in `seq 231 0.5 235`

do

rm $i/WAVECAR

rm $i/POT

rm $i/LOCPOT

rm $i/vasprun.xml

done

rm 0/WAVECAR

rm 0/POT

rm 0/LOCPOT

rm 0/vasprun.xml




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1