#!/bin/bash
# use -x option for debug

#==========================================
# Prameters
#==========================================

script_dir=${0%/*}
if [ -e $script_dir/vasp_config.sh ]; then
	. $script_dir/vasp_config.sh
elif [ -e $DataRoot/scripts/vasp_config.sh ]; then
	. $DataRoot/scripts/vasp_config.sh
else
	echo 
	echo *** ERROR: Can not find [$script_dir/vasp_config.sh] nor [$DataRoot/scripts/vasp_config.sh]
	echo
	exit
fi
if [ -e $script_dir/vasp_params.sh ]; then
	. $script_dir/vasp_params.sh
fi

PrecisionHFSCF=$PrecisionCommon
#PrecisionHFSCF=Norm
EDIFFHFSCF=$EDIFFCommon
EDIFFGHFSCF=$EDIFFGCommon
ALGOHFSCF=$ALGOCommon
GammaOnlyHFSCF=$GammaOnlyCommon
aKProductHFSCF=$aKProductCommon
#aKProductHFSCF=2.0
#aKProductHFSCF=1.5
#aKProductHFSCF=fix:8/2,8/2,6/3
ISMEARHFSCF=$ISMEARCommon
#ISMEARHFSCF=-5
SIGMAHFSCF=$SIGMACommon

NKREDHFSCF=$NKREDCommon
HybridALGOHFSCF=$HybridALGOCommon
ISMEARHybridFunctionalHFSCF=$ISMEARHybridFunctionalCommon
SIGMAHybridFunctionalHFSCF=$SIGMAHybridFunctionalCommon

KeepSymmetryHFSCF=1

CalOpticsHFSCF=.TRUE.
SHIFTHFSCF=0.1

LELFHFSCF=.TRUE.

#====================================================
# HF SCF command
#====================================================
#MPIParamsHFSCF="--Param:NPAR=$NPAR --Param:KPAR=$KPAR --Param:LPLANE=.TRUE."
MPIParamsHFSCF=$MPIParamsCommon

# For phonon, use LREAL=.FALSE. and large ENCUT like 500 eV
# For usual DFT use default for ENCUT (comment out) and LREAL=Auto
#AdditionalParametersHFSCF=$AdditionalParametersCommon
#AdditionalParametersHFSCF="--Param:LREAL=Auto"
AdditionalParametersHFSCF="--Param:LREAL=Auto --Param::LWANNIER90_RUN=.FALSE."
#AdditionalParametersHFSCF="--Param:LREAL=Auto --NBANDS=x2"
#AdditionalParametersHFSCF="--Param:LREAL=.FALSE. --NBANDS=64 --Param:SYMPREC=1e-4";
#AdditionalParametersHFSCF="--Param:LREAL=Auto --NBANDS=64 --ENCUT=500"
#AdditionalParametersHFSCF="--Param:LREAL=.FALSE. --ENCUT=500"

CommonParametersHFSCF="--SpinOrbit=$SpinOrbit --NonCollinear=$NonCollinear --LMAXMIX=$LMAXMIX \
	--SpinPolarized=$SpinPolarized"
HFParametersHFSCF="--HybridFunctional=$HybridFunctional \
	--NKRED=$NKREDHFSCF \
	--ISMEARHybridFunctional=$ISMEARHybridFunctionalHFSCF \
	--SIGMAHybridFunctional=$SIGMAHybridFunctionalHFSCF"
PrecisionParametersHFSCF="--Precision=$PrecisionHFSCF --Param:EDIFF=$EDIFFHFSCF --Param:EDIFFG=$EDIFFGHFSCF \
	--Param:ISMEAR=$ISMEARHFSCF --Param:SIGMA=$SIGMAHFSCF \
	--Param:ALGO=$ALGOHFSCF --Param:LELF=$LELFHFSCF \
	--GammaOnly=$GammaOnlyHFSCF --aKProduct=$aKProductHFSCF"

CMDSCF="$CMD --Action=ModifyFiles --Function=scf \
	$MPIParamsHFSCF \
	$CommonParametersHFSCF \
	$HFParametersHFSCF \
	$PrecisionParametersHFSCF \
	$AdditionalParametersHFSCF \
	--KeepSymmetry=$KeepSymmetryHFSCF \
	--CalOptics=$CalOpticsHFSCF --CSHIFT=$CSHIFTHFSCF \
	$ARG1"


#====================================
# DFTSCF
#====================================
echo ' '
echo '================================================================'
echo "  (HF)SCF run: [$CMDSCF]"
echo '================================================================'
$CMDSCF

if [ "$UseDBRWIGs" = "1" ]; then
	$CMD --Action=ChangeRWIGS --RWIGSDB=$RWIGSDB . INCAR.RWIGS
	cp INCAR INCAR.prev
	cp INCAR.RWIGS INCAR
fi


echo 
echo ======================================================================
echo $0 finished.
echo ======================================================================
echo 
