quantum-espresso/PHonon/FD/run_fd

57 lines
1.5 KiB
Bash

#!/bin/bash
#Same than in fd.in
fd_outfile=displaced
IN_DIR='./fd_files/'
OUT_DIR='./fd_files/'
FORCEDIR='./fd_forces/'
pw_exe='../../../../bin/pw.x'
#check directories
if [ ! -d "${IN_DIR}" ]; then
echo ERROR: ${IN_DIR} does not exist
exit
fi
if [ ! -d "${OUT_DIR}" ]; then
mkdir -p ${OUT_DIR}
fi
if [ ! -d "${FORCEDIR}" ]; then
mkdir -p ${FORCEDIR}
fi
# scf calculation of the displaced macrocells
#x,y,z displacements
#atomic_index within original unit cell (two Si atoms)
#positive/negative displacement
for i in $(seq 1 3); do
for n in $(seq 1 2); do
for m in $(seq 1 2 ); do
echo running serial pw.x on ${fd_outfile}.$m.$i.$n.in
$pw_exe < $IN_DIR/${fd_outfile}.$m.$i.$n.in > $OUT_DIR/${fd_outfile}.$m.$i.$n.out;
done
done
done
# scf calculation of the reference macrocell (no displacement)
echo running serial pw.x on ${fd_outfile}.0.0.0.in
$pw_exe < $IN_DIR/${fd_outfile}.0.0.0.in > $OUT_DIR/${fd_outfile}.0.0.0.out
# extract forces
grep 'force = ' $OUT_DIR/${fd_outfile}.0.0.0.out | grep ' atom ' > forces
awk '{printf("% 18.12f % 18.12f % 18.12f \n",$7,$8,$9)}' < forces > $FORCEDIR/force.0.0.0
rm forces
for i in `seq 1 3 ` ; do
for n in `seq 1 2 ` ; do
for m in `seq 1 2 ` ; do
grep 'force = ' $OUT_DIR/${fd_outfile}.$m.$i.$n.out | grep ' atom ' > forces
awk '{printf("% 18.12f % 18.12f % 18.12f \n",$7,$8,$9)}' < forces > $FORCEDIR/force.$m.$i.$n
rm forces
done
done
done