#!/bin/bash
set -x
export THISDIR=$(pwd)
if [[ ! $0  -ef ${THISDIR}/src/doit_malo ]] ; then
  echo 'error in $0: must be called from parent directory'
  exit 1
fi
export NCORE=6   # number of cores (too high can lead to crashes)
export LOG=${THISDIR}/log_malo
export STPDIR=${THISDIR}/src/Setups
export SRCDIR=${THISDIR}/src/Malo/
%
echo "========= new call of doit_malo at $(date)==========" >> ${LOG}

## encapsulate the paw command
function runpaw () {
  echo "doing runpaw $1......................................................."
  echo "runpaw: doing $ROOTNAME at $(date)" >>${LOG}
  doppaw -n ${NCORE} ${ROOTNAME}.cntl 1>out 2>&1 ; RC=$?
  if [[ $RC -eq 0 ]] ; then 
    echo "runpaw: $ROOTNAME done at $(date)" >>${LOG}
    echo "...........................................runpaw ${ROOTNAME} $1 done"
    return
  else
    echo "error in runpaw: $1" 
    exit 1
  fi
}

##############################################################################
## Malonaldehyde 
##############################################################################
export ROOTNAME=c3o2h4
export DIR=Malo
if [[ ! -d $DIR ]] ; then mkdir $DIR ; fi
cd $DIR

##   relax wave functions
cp ${SRCDIR}/${ROOTNAME}_urlx_1.cntl ${ROOTNAME}.cntl
paw_resolve -i ${SRCDIR}/${ROOTNAME}.strc \
            -o ${ROOTNAME}.strc \
            -f hydrogen=${STPDIR}/h_.stp \
            -f carbon=${STPDIR}/c_.stp \
            -f oxygen=${STPDIR}/o_.stp 
#
runpaw 'urlx'
paw_checkpoint -c C_Malonaldehyde_urlx 
rm  ${ROOTNAME}.prot 

##  relax structure
cp ${SRCDIR}/${ROOTNAME}_rlx_1.cntl ${ROOTNAME}.cntl
runpaw 'rlx_1'
cp ${SRCDIR}/${ROOTNAME}_rlx_2.cntl ${ROOTNAME}.cntl
runpaw 'rlx_2'
paw_checkpoint -c C_Malonaldehyde_rlx
rm  ${ROOTNAME}.prot

## collect data
## plot density of states
echo " calculating dos for ${ROOTNAME} " >> ${LOG}
cp ${SRCDIR}/${ROOTNAME}.dcntl  ${ROOTNAME}.dcntl
cp ${SRCDIR}/${ROOTNAME}.dpcntl ${ROOTNAME}.dpcntl
mkdir ./Dos
paw_dos ${ROOTNAME}.dcntl 1>out 2>&1 
paw_dosplot ${ROOTNAME}.dpcntl 1>out 2>&1
gracebat -nosafe -hdevice PNG -batch c3o2h4.bat -hardcopy -printfile c3o2h4_dos.png
## construct sprot file and structure files for viewing
echo " calculating structure for ${ROOTNAME} " >> ${LOG}
paw_strc -m ${ROOTNAME} 
## construct wave functions
echo " calculating wave functions for ${ROOTNAME} " >> ${LOG}
cp ${SRCDIR}/${ROOTNAME}_analyze_1.cntl ${ROOTNAME}.cntl
runpaw 'analyze_1'
cp ${SRCDIR}/${ROOTNAME}_1.wcntl ${ROOTNAME}.wcntl
paw_wave ${ROOTNAME}.wcntl 1>out 2>&1
paw_checkpoint -c C_Malonaldehyde_collect
rm  ${ROOTNAME}.prot

## ab-initio molecular dynamics
cp ${SRCDIR}/${ROOTNAME}_aimd_1.cntl ${ROOTNAME}.cntl
runpaw 'aimd_1'
paw_checkpoint -c C_Malonaldehyde_aimd_1

echo "Analyze trajectory" >> ${LOG}
cp ${SRCDIR}/${ROOTNAME}.tcntl ${ROOTNAME}.tcntl
paw_tra ${ROOTNAME}.tcntl

# gracebat -nosafe -hardcopy -batch bfile
# xmgrace -free -noask O1H.dat O2H.dat

echo '=========================== doit_malo completed at $(date)' >>${LOG}
echo '............................................... doit_malo completed'
exit
##

