#!/bin/bash

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

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

DoPBE96=1
DoPBE0=0
DoSendMail=0
DoVCRelaxRough=0
DoVCRelax=0
DoSCF=1

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

PBE96DoVASPTemplate=$TemplateDir/DoVASP.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 300 400 500 600 700 800 900 1000 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500"
#aList="3.80 3.75 3.70 3.65 3.60 3.55 3.50 3.45 3.40 3.35 3.30 3.25 3.20 3.15 3.10 3.05 3.0"
aList="3.90 4.00 4.20 4.40 4.60 4.80 5.00 5.20 5.40 5.60 6.00 6.40 6.80 7.20 7.60 8.00"
PStress=0

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

OriginalDir=`pwd`

mkdir $BaseDir

PrevPBE96Dir=
PrevPBE0Dir=

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

#===============================
# PBE96 calculation
#===============================
	PBE96WorkDir=$BaseDir/${Header}-PBE96-a${a}
	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/{hosts,*.klist} $PBE96WorkDir

#			echo "sed -e \"s/{a}/$a/g\" $TemplateDir/$CIFFileTemplateName \> $PBE96WorkDir/${CIFFileName}"
#			sed -e "s/{a}/$a/g" $TemplateDir/$CIFFileTemplateName > $PBE96WorkDir/${CIFFileName}
			sed \
			    -e "s/^\_cell\_length\_a\s.*$/_cell_length_a\t\t\t$a/" \
			    -e "s/^\_cell\_length\_b\s.*$/_cell_length_b\t\t\t$a/" \
			    -e "s/^\_cell\_length\_c\s.*$/_cell_length_c\t\t\t$a/" \
			    $TemplateDir/$CIFFileName > $PBE96WorkDir/$CIFFileName

#			echo "sed -e \"s/{PStress}/$P/g\" $PBE96DoVASPTemplate \> $PBE96WorkDir/${PBE96DoVASP}"
#			sed -e "s/{PStress}/$P/g" $PBE96DoVASPTemplate > $PBE96WorkDir/${PBE96DoVASP}
			sed \
			    -e "s/^PStress=.*$/PStress=$P/" \
			    -e "s/^DoSendMail=.*$/DoSendMail=$DoSendMail/" \
			    -e "s/^MakeFilesFromCIF=.*$/MakeFilesFromCIF=0/" \
			    -e "s/^DoVCRelaxRough=.*$/DoVCRelaxRough=$DoVCRelaxRough/" \
			    -e "s/^DoVCRelax=.*$/DoVCRelax=$DoVCRelax/" \
			    -e "s/^DoSCF=.*$/DoSCF=$DoSCF/" \
			    $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
