Loop.s
go back to Main Page, Computational Resources, Scripts, Scripts for VASP
This is an example loop for finding the lattice constant of an FCC metal (e.g. copper). The loop creates a series of POSCAR files with primitive cell size length specified in the seq command (3.1 to 4.0 Å with steps of 0.1 Å, i.e. 10 runs).
This cell size parameter, cell volume from OUTCAR and energy form OSZICAR are extracted into the output files.
Evaluation using a proper EOS method (preferentially Birch-Murnaghan equation) should follow. (Do not use quadratic regression! - it's not an equation of state (EOS)!!)
Note In the INCAR file, please take care that you set up a rigid calculation - NSW=1 - and that the electronic density is properly converged - NELMIN=10. The KPOINTS should define a very dense k-point grid (such as 10x10x10 or more).
The script loop.s itself:
#!/bin/bash
#$ -N Cu-lattice
#$ -pe c8m24_ompi 8
#$ -cwd
#$ -o vasp-ompi.out
#$ -e vasp-ompi.err
#$ -S /bin/bash
. /etc/profile.d/modules.sh
module load vasp/5.2
export OMP_NUM_THREADS=1
for L in `seq -f %3.1f 3.2 0.1 4.0`
do
cat >POSCAR <<!
Copper bulk - Cu1
$L
0.500000000000000 0.500000000000000 0.000000000000000
0.000000000000000 0.500000000000000 0.500000000000000
0.500000000000000 0.000000000000000 0.500000000000000
1
Selective dynamics
Direct
0.000000000000000 0.000000000000000 0.000000000000000 T T T
!
echo "a= $L"
mpirun -np $NSLOTS vasp
V=`grep "volume " OUTCAR | tail -1 | awk '{print $5}'`
E=`tail -1 OSZICAR | awk '{print $5}'`
printf "%3.1f %6.2f %13.7f\n" $L $V $E >> SUMMARY-LVE.log
printf "%3.1f %13.7f\n" $L $E >> SUMMARY-LE.log
printf "%6.2f %13.7f\n" $V $E >> SUMMARY-VE.log
cp OSZICAR OSZICAR-$L
cp OUTCAR OUTCAR-$L
done
cat SUMMARY.log
rm -f CHG* WAVE*
--Dkarhanek 11:10, 29 September 2010 (CEST)