24小时热门版块排行榜    

查看: 2510  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

aminibuck

捐助贵宾 (正式写手)

[求助] VASP中脚本程序问题

我初学VASP,看侯老师的教程中有时候需要编写脚本程序,比如优化晶格常数有如下脚本:#!/bin/sh
rm  wAVECAR
for i in 3.80 3.85 3.90 3.95 4.00 4.05 4.10 4.15 4.20 4.25 4.30
do
cat>POSCAR< Al-fcc
$i
0.0  0.5  0.5
0.5  0.0  0.5
0.5  0.5  0.0
1
Direct
0.0  0.0  0.0
!
echo "a=$i angstrom";time vasp
E='grep "TOTEN" OUTCAR |tail -1|awk '{printf "%12.6f\n",$5}''
V='grep "volume" OUTCAR |tail -1|awk '{prinf "%12.4f\n",$5}''
echo $V $E>>EtVo.dat
done

我想问的是这个是写在POSCAR文件里吗?如果不是的话就是另写一个脚本吧?我们学校的高性能计算中心利用PBS提交作业,请问如果另写一个脚本的话我的PBS文件中应该加入什么命令呢?谢谢了
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Vaucanson

金虫 (小有名气)

把我的PBS文件贴出来给大家看看,针对的是侯老师的有关测试截断能的那个例子。
#PBS -N vaspjob
#PBS -l nodes=1:ppn=8
#PBS -q csuliaofei
#PBS -j oe
#PBS -l walltime=1000:00:00

cd $PBS_O_WORKDIR
NP=`cat $PBS_NODEFILE|wc -l`

rm WAVECAR
for i in 150 200 250 300 350 400
do
cat >INCAR<<!
SYSTEM=Si-Diamond
ENCUT=$i
ISTART=0;ICHARG=2
ISMEAR=-5
PREC=Accurate
!
echo "a=$i"

source /public/software/mpi/openmpi1.4-pgi.sh
mpirun -np $NP -machinefile $PBS_NODEFILE /public/software/qchem/vasp/vasp-openmpi-pgf90

E=`grep "TOTEN" OUTCAR| tail -1| awk '{printf "%12.6f \n", $5}'`
echo $i $E>>comment
done
15楼2013-12-13 14:14:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

yh3166

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
aminibuck: 金币+50, 有帮助 2013-12-04 21:15:38
这种小程序是随便建个文档写入,写完保存后变成执行文件就好
最后,关于pbs上面如何提交作业的话我是这样写的,你可以参考下
#!/bin/sh

#PBS -N vasp

#PBS -d ./

#PBS -o ./

#PBS -e ./

#PBS -l nodes=1:ppn=4

#PBS -l walltime=10:00:00

#PBS -l mem=

#PBS -q serique

#PBS -V

ulimit -s unlimited
source /opt/intel/Compiler/11.1/046/bin/intel64/iccvars_intel64.sh
source /opt/intel/Compiler/11.1/046/bin/intel64/ifortvars_intel64.sh
source /opt/intel/mkl/10.2.2.025/tools/environment/mklvarsem64t.sh
source /opt/intel/impi/3.2.2/bin64/mpivars.sh
EXEC=/***/***/vasp_5.2
################################################################
rm WAVECAR
for i in 250 300 350 400 450 500 550 600
do
cat > INCAR <<!
System = Si
ENCUT = $i
ISTART = 0
ICHARG = 2
ISMEAR = 0
SIGMA = 0.1
PREC = Accurate
!
echo "ENCUT = $i eV" ;  /***/***/ vasp_5.2(这里是写vasp的路径,你自己是什么写什么)
E=`grep "TOTEN" OUTCAR | tail -1 | awk '{printf "%12.6f\n",$5}'`
KP=`grep "irreducible" OUTCAR | tail -1 | awk '{printf "%5i \n", $2 }'`
echo $i $KP $E >> comment
done
2楼2013-12-04 20:55:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aminibuck

捐助贵宾 (正式写手)

引用回帖:
2楼: Originally posted by yh3166 at 2013-12-04 20:55:11
这种小程序是随便建个文档写入,写完保存后变成执行文件就好
最后,关于pbs上面如何提交作业的话我是这样写的,你可以参考下
#!/bin/sh

#PBS -N vasp

#PBS -d ./

#PBS -o ./

#PBS -e ./

#PBS -l n ...

你好,非常感谢你的回答。照你的意思是直接把脚本程序写进PBS脚本里面是吧?那INCAR和KPOINTS这样的文件也还是必须的吧?比如说按照你这个PBS模板是不是依旧还需要写一个INCAR文件如下:
SYSTEM=Si
ENCUT=$i
ISTART=0
ICHARGE=2
ISMEAR=0;SIGMA=0.1
PREC=Accurate
请问是这样理解吗?
3楼2013-12-04 21:15:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yh3166

金虫 (正式写手)

嗯,脚本写进pbs里,其他INCAR,KPOINTS,POTCAR都还是要有的。
4楼2013-12-05 08:49:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见