#!/bin/bash

DoSCF() {
	BackupDir=$1
	FromScratch=$2

	$CMD --Action=ModifyFiles --Function=scf --FromScratch=$FromScratch $CommonParameters --aKProduct=$aKProduct $ARG1
	rm *.txt *.csv
	vasp | $TEE `hostname`.out.txt
	$CMD --Action=MakeDOSCSV --Width=$DOSWidth --IgnoreZero=0 DOSCAR DOS-up.csv DOS-dn.csv

	mkdir $BackupDir
	cp {INCAR,KPOINTS,POTCAR,POSCAR,*.txt,OUTCAR,IBZKPT,EIGENVAL,DOSCAR,WAVECAR,CHG,CHGCAR,DOS*.csv} $BackupDir
}

DoSCFDOS() {
	dir=$1
echo $dir,$1

	a=$2
	b=$3
	c=$4
	alpha=$5
	beta=$6
	gamma=$7
	FromScratch=$8
	echo SCF calculation for a=$a,$b,$c,$alpha,$beta,$gamma
	mkdir $dir

	$CMD --Action=ModifyFiles --Function=scf --FromScratch=$FromScratch $CommonParameters --aKProduct=$aKProduct $ARG1
	$CMD --Action=ModifyPOSCAR --A= --a=$a --b=$b --c=$c --alpha=$alpha --beta=$beta --gamma=$gamma INCAR
	rm *.txt *.csv
	vasp | $TEE `hostname`.out.txt
	BackupDir=$dir/SCF
	mkdir $BackupDir
	cp {INCAR,KPOINTS,POTCAR,POSCAR,*.txt,OUTCAR,IBZKPT,EIGENVAL,DOSCAR,WAVECAR,CHG,CHGCAR} $BackupDir

	$CMD --Action=ModifyFiles --Function=dos $CommonParameters --aKProduct=$aKProduct --DOSMeasreudFromEF=1 --MinEnergy=$MinEnergy --MaxEnergy=$MaxEnergy --nMesh=$nMesh $ARG1
	rm *.txt
	vasp | $TEE `hostname`.out.txt
	$CMD --Action=MakeDOSCSV --Width=$DOSWidth --IgnoreZero=0 DOSCAR DOS-up.csv DOS-dn.csv
	BackupDir=$dir/DOS
	mkdir $BackupDir
	cp {INCAR,KPOINTS,POTCAR,POSCAR,*.txt,OUTCAR,IBZKPT,EIGENVAL,DOSCAR,DOS*.csv} $BackupDir
}


MakeBackup() {
	dir=$1
	mkdir $1
	cp {INCAR,KPOINTS,POSCAR,POTCAR,*.klist,*.cif} $dir
}

ReadArguments() {
	while [ $# -gt 0 ]
	do
	  ARG=$1
	  Val=${ARG#*=}
	  Key=${ARG%%=*}
	  shift
	  echo Change parameter $Key to $Val
	  eval `echo $Key=$Val`
	done
}

