#!/bin/bash

SCRIPTDir=`pwd`/script
VASPDir=$TkPerlDir/VASP
CMD="/usr/bin/perl $VASPDir/VASP.pl"

Header=BaSiO3-cubic
BaseDir=`pwd`/$Header
TemplateDir=`pwd`/Template-${Header}-Volume
CIFFileName=${Header}.cif

DoPBE96=1
DoPBE0=0

PBE96DoVASP=DoVASP.sh
PBE0DoVASP=DoVASP-HF-mpi.sh
PBE96VASPCommand=./$PBE96DoVASP
PBE0VASPCommand=./$PBE0DoVASP

PBE96DoVASPTemplate=$TemplateDir/DoVASP-Template.sh
PBE0DoVASP=$TemplateDir/DoVASP-HF-mpi.sh

ModifyINCARCommand="/usr/bin/perl $SCRIPTDir/ModifyINCARforPBE0.pl"

#AddMDHistoryCMD="/usr/bin/perl $SCRIPTDir/AddMDHistory.pl"
#HistoryFile=History.csv

post=

#ASiteList="Mg Ca Sr Ba Cd"
#BSiteList="C Si Ge Sn Ti Zr Hf Ce Pt"
PList="0 100 200 400 450 500 600 700 800 900 1000 1200 1300 1400 1500 1600 1700 1800 1900 2000"

#===========================
# Calculate all
#===========================

OriginalDir=`pwd`

mkdir $BaseDir

PrevPBE96Dir=
PrevPBE0Dir=

for P in $PList
do
	if [ -f STOP.`hostname` ]; then
		exit -1
	fi

#===============================
# PBE96 calculation
#===============================
	PBE96WorkDir=$BaseDir/${Header}-PBE96-P${P}
	echo Working in $PBE96WorkDir...

	if [ $DoPBE96 -eq 1 ]; then
		if [ -d $PBE96WorkDir ]; then
			echo [$PBE96WorkDir] exists.
			echo Skip PBE96.
#			continue
		else
			mkdir $PBE96WorkDir
			cd $PBE96WorkDir

			cp $TemplateDir/{${CIFFileName},hosts,*.klist} $PBE96WorkDir

			echo "sed -e \"s/{PStress}/$P/g\" $PBE96DoVASPTemplate \> $PBE96WorkDir/${PBE96DoVASP}"
			sed -e "s/{PStress}/$P/g" $PBE96DoVASPTemplate > $PBE96WorkDir/${PBE96DoVASP}

			chmod +x $PBE96WorkDir/*.sh
			$PBE96VASPCommand init

			if [ -d $PrevPBE96Dir ]; then
				echo "cp $PrevPBE96Dir/POSCAR $PBE96WorkDir"
				cp $PrevPBE96Dir/POSCAR $PBE96WorkDir
			fi

			echo === Working in \"`pwd`\"
			echo === Files in \"`pwd`\"
			ls

			echo ''
			echo === Execute [$PBE96VASPCommand]
			$PBE96VASPCommand

			echo ''
			echo === Exit to \"$OriginalDir\"
			cd $OriginalDir
		fi

		PrevPBE96Dir=$PBE96WorkDir
	fi

#===============================
# PBE0 calculation
#===============================
	PBE0WorkDir=$BaseDir/${Header}-PBE0-P${P}
	echo Working in $PBE0WorkDir...

	if [ -f STOP.`hostname` ]; then
		exit -1
	fi

	if [ $DoPBE0 -eq 1 ]; then
		if [ -d $PBE0WorkDir ]; then
			echo [$PBE0WorkDir] exists.
			echo Skip PBE0.
#			continue
		else
			mkdir $PBE0WorkDir
			cd $PBE0WorkDir

			cp $PBE96WorkDir/{INCAR,POSCAR,POTCAR,KPOINTS} $PBE0WorkDir
			cp $PBE0TemplateDir/{*.sh,hosts,*.klist} $PBE0WorkDir
			$ModifyINCARCommand $PBE0WorkDir/INCAR

			chmod +x $PBE0WorkDir/*.sh

			echo === Working in \"`pwd`\"
			echo === Files in \"$wd\"
			ls

			echo ''
			echo === Execute [$PBE0VASPCommand]
			$PBE0VASPCommand

			echo ''
			echo === Exit to \"$OriginalDir\"
			cd $OriginalDir
		fi
		
		PrevPBE0Dir=$PBE0WorkDir
	fi

	echo ''
	echo ''

done

#===========================
# Post processors
#===========================
#$SCRIPTDir/MergePositionsInCIFs.pl --Positions=$iSite 0000.last/SCF MergedCIF.cif
#$SCRIPTDir/MakeSummaryCSV2.pl --Positions=$iSite --AtomType=$AtomType

cd $BaseDir
perl $SCRIPTDir/MakeSummaryCSV.pl TotalEnergy.csv .
cd $OriginalDir

#rm $HistoryFile
#for Template in $TemplateList
#do
#	$AddMDHistoryCMD $HistoryFile $Template
#done
