#!/bin/bash

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

Header=Ga6Sn16O45-T-VCfromVCRelaxed3
BaseDir=`pwd`/$Header
TemplateDir=`pwd`/Template-${Header}
CIFFileName=${Header}.cif

DoPBE96=1

PBE96DoVASP=DoVASP.sh
PBE96VASPCommand=./$PBE96DoVASP

PBE96DoVASPTemplate=$TemplateDir/DoVASP.sh

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

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

# For MD
MakeFilesFromCIF=0
MakeSummary=1
DeleteExtraFiles=1
DeleteLargeFiles=0

# For VCRelax/SCF/DOS/Band
BackUpOriginal=0
DoMD=0
DoVCRelaxRough=1
DoVCRelax=1
DoDFTSCF=1
DoSCF=1
CalculateDOS=1
CalculateBand=1
CalculateEffectiveMass=0
CalculateElectronDensity=0
CalculateFermiSurface=0
CalculatePhonon=0
DoPhonopy=0
CalculateIR=0
CalculateRaman=0

post=

NSWMD=1000
POTIM=2.0
TList="1400 1300 1200 1100 1000 900 800 700 600 500"

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

OriginalDir=`pwd`

mkdir $BaseDir

PrevPBE96Dir=
LastT=

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

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

	if [ $DoPBE96 -eq 1 ]; then
		if [ -d $PBE96WorkDir ]; then
			echo [$PBE96WorkDir] exists.
			echo Skip PBE96.
#			continue
		else
			LastT=$T
			LastDir=$PBE96WorkDir

			mkdir $PBE96WorkDir
			cd $PBE96WorkDir

			echo "cp $TemplateDir/{${CIFFileName},hosts,*.klist} $PBE96WorkDir"
			cp $TemplateDir/{${CIFFileName},hosts,INCAR,POSCAR,POTCAR*,KPOINTS,*.klist} $PBE96WorkDir

			echo "sed -e \"s/^TEBEG=.*$/TEBEG=$T/g\" $PBE96DoVASPTemplate \> $PBE96WorkDir/${PBE96DoVASP}"
			sed \
			    -e "s/^MakeFilesFromCIF=.*$/MakeFilesFromCIF=$MakeFilesFromCIF/g" \
			    -e "s/^BackUpOriginal=.*$/BackUpOriginal=1/g" \
			    -e "s/^DoMD=.*$/DoMD=1/g" \
			    -e "s/^DoVCRelaxRough=.*$/DoVCRelaxRough=0/g" \
			    -e "s/^DoVCRelax=.*$/DoVCRelax=0/g" \
			    -e "s/^DoDFTSCF=.*$/DoDFTSCF=0/g" \
			    -e "s/^DoSCF=.*$/DoSCF=0/g" \
			    -e "s/^CalculateDOS=.*$/CalculateDOS=0/g" \
			    -e "s/^CalculateBand=.*$/CalculateBand=0/g" \
			    -e "s/^CalculateElectronDensity=.*$/CalculateElectronDensity=0/g" \
			    -e "s/^CalculateFermiSurface=.*$/CalculateFermiSurface=0/g" \
			    -e "s/^CalculatePhonon=.*$/CalculatePhonon=0/g" \
			    -e "s/^DoPhonopy=.*$/DoPhonopy=0/g" \
			    -e "s/^CalculateIR=.*$/CalculateIR=0/g" \
			    -e "s/^CalculateRaman=.*$/CalculateRaman=0/g" \
			    -e "s/^MakeSummary=.*$/MakeSummary=$MakeSummary/g" \
			    -e "s/^DeleteExtraFiles=.*$/DeleteExtraFiles=$DeleteExtraFiles/g" \
			    -e "s/^DeleteLargeFiles=.*$/DeleteLargeFiles=$DeleteLargeFiles/g" \
			    -e "s/^NSWMD=.*$/NSWMD=$NSWMD/g" \
			    -e "s/^POTIM=.*$/POTIM=$POTIM/g" \
			    -e "s/^TEBEG=.*$/TEBEG=$T/g" \
			    -e "s/^TEEND=.*$/TEEND=$T/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

	echo ''
	echo ''

done

cd $BaseDir
cd $LastDir
T=$LastT
echo ''
echo ''
echo "=== Run SCF/DOS/Band etc..."
echo "sed -e \"s/^TEBEG=.*$/TEBEG=$T/g\" $PBE96DoVASPTemplate \> $PBE96WorkDir/${PBE96DoVASP}"
			sed \
			    -e "s/^MakeFilesFromCIF=.*$/MakeFilesFromCIF=0/g" \
			    -e "s/^BackUpOriginal=.*$/BackUpOriginal=$BackUpOriginal/g" \
			    -e "s/^DoMD=.*$/DoMD=$DoMD/g" \
			    -e "s/^DoVCRelaxRough=.*$/DoVCRelaxRough=$DoVCRelaxRough/g" \
			    -e "s/^DoVCRelax=.*$/DoVCRelax=$DoVCRelax/g" \
			    -e "s/^DoDFTSCF=.*$/DoDFTSCF=$DoDFTSCF/g" \
			    -e "s/^DoSCF=.*$/DoSCF=$DoSCF/g" \
			    -e "s/^CalculateDOS=.*$/CalculateDOS=$CalculateDOS/g" \
			    -e "s/^CalculateBand=.*$/CalculateBand=$CalculateBand/g" \
			    -e "s/^CalculateElectronDensity=.*$/CalculateElectronDensity=$CalculateElectronDensity/g" \
			    -e "s/^CalculateFermiSurface=.*$/CalculateFermiSurface=$CalculateFermiSurface/g" \
			    -e "s/^CalculatePhonon=.*$/CalculatePhonon=$CalculatePhonon/g" \
			    -e "s/^DoPhonopy=.*$/DoPhonopy=$DoPhonopy/g" \
			    -e "s/^CalculateIR=.*$/CalculateIR=$CalculateIR/g" \
			    -e "s/^CalculateRaman=.*$/CalculateRaman=$CalculateRaman/g" \
			    -e "s/^MakeSummary=.*$/MakeSummary=$MakeSummary/g" \
			    -e "s/^DeleteExtraFiles=.*$/DeleteExtraFiles=$DeleteExtraFiles/g" \
			    -e "s/^DeleteLargeFiles=.*$/DeleteLargeFiles=$DeleteLargeFiles/g" \
			    -e "s/^NSWMD=.*$/NSWMD=$NSWMD/g" \
			    -e "s/^POTIM=.*$/POTIM=$POTIM/g" \
			    -e "s/^TEBEG=.*$/TEBEG=$T/g" \
			    -e "s/^TEEND=.*$/TEEND=$T/g" $PBE96DoVASPTemplate > $PBE96WorkDir/${PBE96DoVASP}

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

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

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

#===========================
# 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
