#!/bin/bash


BaseDir=$1

shift;SpinPolarized=$1
shift;GammaOnlyCommon=$1
shift;ISMEARCommon=$1

shift;MakeFilesFromCIF=$1
shift;DoVCRelaxRough=$1
shift;DoVCRelax=$1
shift;CalculateDOS=$1
shift;CalculateBand=$1
shift;DeleteExtraFiles=$1
shift;DeleteLargeFiles=$1

#DFT Functional=PAW_LDA64|PAW_PBE64|PAW_LDA54|PAW_PBE54
shift;Functional=$1
#GGA: PE: PBE RE: revPBE RP: RPBE PS: PBEsol AM: AM05  91: PW91, CA VW  HL WI
shift;GGA=$1
# MBJ LMBJ TPSS RTPSS M06L MS0 MS1 MS2 SCAN RSCAN R2SCAN SCANL RSCANL R2SCANL OFR2 
shift;METAGGA=$1
#HybridFunctional=HF|HSE|PBE0
#     B3: B3LYP with VWN3  B5: B3LYP with VWN5
shift;HybridFunctional=$1
#ADDGRID

if [[ "$GGA" == "-" ]]; then
  GGA=
fi
if [[ "$METAGGA" == "-" ]]; then
  METAGGA=
fi
if [[ "$HybridFunctional" == "-" ]]; then
  HybridFunctional=
fi

shift;template_dir=$1
shift;DoVASP_name=$1
shift;CIF_name=$1
shift;KPOINTS_name=$1

DoVASP_input=$template_dir/$DoVASP_name
DoVASP_output=./$BaseDir/$DoVASP_name

CIF_input=./template/$CIF_name
CIF_output=./$BaseDir/$CIF_name
KPOINTS_input=./template/$KPOINTS_name
KPOINTS_output=./$BaseDir/$KPOINTS_name


echo 
echo BaseDir=$BaseDir
echo ..MakeFilesFromCIF=$MakeFilesFromCIF
echo ..SpinPolarized=$SpinPolarized
echo ..GammaOnlyCommon=$GammaOnlyCommon
echo ..ISMEARCommon=$ISMEARCommon
echo ..DoVCRelaxRough=$DoVCRelaxRough
echo ..DoVCRelax=$DoVCRelax
echo ..CalculateDOS=$CalculateDOS
echo ..CalculateBand=$CalculateBand
echo ..DoVCRelax=$DoVCRelax
echo ..Functional=$Functional
echo ..GGA=$GGA
echo ..METAGGA=$METAGGA
echo ..HybridFunctional=$HybridFunctional
echo ..template_dir=$template_dir
echo ..DoVASP_input=$DoVASP_input
echo ..DoVASP_output=$DoVASP_output
echo ..CIF_input=$CIF_input
echo ..CIF_output=$CIF_output
echo ..KPOINTS_input=$KPOINTS_input
echo ..KPOINTS_output=$KPOINTS_output

echo
echo "Make [$BaseDir], [$DoVASP_output], [$CIF_output] and [$KPOINTS_output]"
mkdir $BaseDir
cp $DoVASP_input $DoVASP_output
cp $CIF_input $CIF_output
cp $KPOINTS_input $KPOINTS_output

sed -i \
	-e "s/^MakeFilesFromCIF=.*$/MakeFilesFromCIF=$MakeFilesFromCIF/g" \
	-e "s/^SpinPolarized=.*$/SpinPolarized=$SpinPolarized/g" \
	-e "s/^GammaOnlyCommon=.*$/GammaOnlyCommon=$GammaOnlyCommon/g" \
	-e "s/^ISMEARCommon=.*$/ISMEARCommon=$ISMEARCommon/g" \
	-e "s/^DoVCRelaxRough=.*$/DoVCRelaxRough=$DoVCRelaxRough/g" \
	-e "s/^DoVCRelax=.*$/DoVCRelax=$DoVCRelax/g" \
	-e "s/^CalculateDOS=.*$/CalculateDOS=$CalculateDOS/g" \
	-e "s/^CalculateBand=.*$/CalculateBand=$CalculateBand/g" \
	-e "s/^DeleteExtraFiles=.*$/DeleteExtraFiles=$DeleteExtraFiles/g" \
	-e "s/^DeleteLargeFiles=.*$/DeleteLargeFiles=$DeleteLargeFiles/g" \
	-e "s/^Functional=.*$/Functional=$Functional/g" \
	-e "s/^GGA=.*$/GGA=$GGA/g" \
	-e "s/^METAGGA=.*$/METAGGA=$METAGGA/g" \
	-e "s/^HybridFunctional=.*$/HybridFunctional=$HybridFunctional/g" \
	$DoVASP_output

original_dir=`pwd`

cd $BaseDir
./$DoVASP_name

cd $original_dir