#!/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


export VASP_RAMAN_RUN=$VASPRunCMD
#export VASP_RAMAN_RUN="$VASPRunCMD \&> raman-job.out.txt"

# NPAR must be numberof nodes
NPARRaman=$NUM_CPU
KPARRaman=1

#RamanModes="1 2 3"
RamanModes="2 5"
#RamanModes=`seq 1 21`
#FirstMode=01
#RamanLastMode=21
# Scheme for finite difference. Currently only 2 is supported
RamannDeriv=2
RamanStepSize=0.01

#Precision=Accurate
ADDGRIDRaman=.TRUE.
NWRITERaman=3
# IBRION=5/7 are recommended, but 6/8 may work
IBRIONRaman=8
NSWRaman=1

LEPSILONRaman=.TRUE.
LRPARaman=.FALSE.
CalOpticsRaman=.FALSE.
CSHIFTRaman=0.1

PrecisionRaman=$PrecisionCommon
#PrecisionRaman=Norm
EDIFFRaman=$EDIFFCommon
EDIFFGRaman=$EDIFFGCommon
ALGORaman=$ALGOCommon
GammaOnlyRaman=$GammaOnlyCommon
aKProductRaman=$aKProductCommon
#aKProductRaman=2.0
#aKProductRaman=1.5
#aKProductRaman=fix:8/2,8/2,6/3
ISMEARRaman=$ISMEARCommon
#ISMEARRaman=-5
SIGMARaman=$SIGMACommon

NKREDRaman=$NKREDCommon
HybridALGORaman=$HybridALGOCommon
ISMEARHybridFunctionalRaman=$ISMEARHybridFunctionalCommon
SIGMAHybridFunctionalRaman=$SIGMAHybridFunctionalCommon

# ISYM=0 for IR
KeepSymmetryRaman=1

LELFRaman=.TRUE.

LREALRaman=Auto


#====================================================
# Raman command
#====================================================
MPIParamsRaman="--Param:NPAR=$NPARRaman --Param:KPAR=$KPARRaman --Param:LPLANE=.TRUE."
#MPIParamsRaman=$MPIParamsCommon

# For Phonon, use LREAL=.FALSE. and large ENCUT like 500 eV
#AdditionalParametersRaman=$AdditionalParametersCommon
#AdditionalParametersRaman="--Param:LREAL=Auto"
AdditionalParametersRaman="--Param:LREAL=$LREALRaman --Param::LWANNIER90_RUN=.FALSE."
#AdditionalParametersRaman="--Param:LREAL=Auto --NBANDS=x2"
#AdditionalParametersRaman="--Param:LREAL=.FALSE. --NBANDS=64 --Param:SYMPREC=1e-4";
#AdditionalParametersRaman="--Param:LREAL=Auto --NBANDS=64 --ENCUT=500"
#AdditionalParametersRaman="--Param:LREAL=.FALSE. --ENCUT=500"

CommonParametersRaman="--SpinOrbit=$SpinOrbit --NonCollinear=$NonCollinear --LMAXMIX=$LMAXMIX \
	 --SpinPolarized=$SpinPolarized"
HFParametersRaman="--HybridFunctional=$HybridFunctional \
	 --NKRED=$NKREDRaman \
	 --ISMEARHybridFunctional=$ISMEARHybridFunctionalRaman \
	 --SIGMAHybridFunctional=$SIGMAHybridFunctionalRaman"
PrecisionParametersRaman="--Precision=$PrecisionRaman --Param:EDIFF=$EDIFFRaman --Param:EDIFFG=$EDIFFGRaman \
	 --Param:ISMEAR=$ISMEARRaman --Param:SIGMA=$SIGMARaman \
	 --Param:ALGO=$ALGORaman \
	 --GammaOnly=$GammaOnlyRaman --aKProduct=$aKProductRaman"

#CMDRaman="$CMD --Action=ModifyFiles --Function=Raman \
CMDRaman="$CMD --Action=ModifyFiles --Function=phonon \
	$MPIParamsRaman \
	$CommonParametersRaman \
	$HFParametersRaman \
	$PrecisionParameters \
	$AdditionalParametersRaman \
	--KeepSymmetry=$KeepSymmetryRaman \
	--Param:ADDGRID=$ADDGRIDRaman \
	--Param:NWRITE=$NWRITERaman --Param:NSW=$NSWRaman \
	--Pram::LEPSILON=$LEPSILONRaman --IBRION=$IBRIONRaman \
	--CalOptics=$CalOpticsRaman --CSHIFT=$CSHIFTRaman \
	--LRPA=$LRPARaman \
	--Param:LELF=$LELFRaman \
	$ARG1"


#====================================
# Raman
#====================================
echo ' '
echo '================================================================'
echo "  Modify input files for Raman [$CMDRaman]"
echo '================================================================'

cp $BaseDir/{hosts,*.ini} .
cp $BaseDir/{INCAR,POSCAR,POTCAR,KPOINTS,WAV*,CHG*} .

$CMDRaman .


echo 
echo ======================================================================

echo 
echo ======================================================================
echo vasp_modify_raman.py finished.
echo ======================================================================
echo 
