#!/bin/sh

# run from directory where this script is
cd `echo $0 | sed 's/\(.*\)\/.*/\1/'` # extract pathname
EXAMPLE_DIR=`pwd`

# check whether echo has the -e option
if test "`echo -e`" = "-e" ; then ECHO=echo ; else ECHO="echo -e" ; fi

$ECHO
$ECHO "$EXAMPLE_DIR : starting"
$ECHO
$ECHO "This example runs thermo_pw on a solid with space group 28 (AuTe2)"

# set the needed environment variables
. ../../../environment_variables

# required executables and pseudopotentials
BIN_LIST="thermo_pw.x"
PSEUDO_LIST=""

$ECHO
$ECHO "  executables directory: $BIN_DIR"
$ECHO "  pseudo directory:      $PSEUDO_DIR"
$ECHO "  temporary directory:   $TMP_DIR"
$ECHO "  checking that needed directories and files exist...\c"

# check for directories
for DIR in "$BIN_DIR" "$PSEUDO_DIR" ; do
    if test ! -d $DIR ; then
        $ECHO
        $ECHO "ERROR: $DIR not existent or not a directory"
        $ECHO "Aborting"
        exit 1
    fi
done
for DIR in "$TMP_DIR" "$EXAMPLE_DIR/res_28_aute2" ; do
    if test ! -d $DIR ; then
        mkdir $DIR
    fi
done
cd $EXAMPLE_DIR/res_28_aute2

# check for executables
for FILE in $BIN_LIST ; do
    if test ! -x $BIN_DIR/$FILE ; then
        $ECHO
        $ECHO "ERROR: $BIN_DIR/$FILE not existent or not executable"
        $ECHO "Aborting"
        exit 1
    fi
done

# check for pseudopotentials
for FILE in $PSEUDO_LIST ; do
    if test ! -r $PSEUDO_DIR/$FILE ; then
       $ECHO
       $ECHO "Downloading $FILE to $PSEUDO_DIR...\c"
            $WGET $PSEUDO_DIR/$FILE $NETWORK_PSEUDO/$FILE 2> /dev/null
    fi
    if test $? != 0; then
        $ECHO
        $ECHO "ERROR: $PSEUDO_DIR/$FILE not existent or not readable"
        $ECHO "Aborting"
        exit 1
    fi
done
$ECHO " done"

# how to run executables
THERMO_PW_COMMAND="$PARA_IMAGE_PREFIX $BIN_DIR/thermo_pw.x $PARA_IMAGE_POSTFIX"
# check for gnuplot
$ECHO
$ECHO "  running thermo_pw.x as: $THERMO_PW_COMMAND"
$ECHO

$ECHO "  cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/g*/aute2*
$ECHO " done"

cat > thermo_control << EOF
 &INPUT_THERMO
  what='plot_bz',
 /
EOF

cat > aute2.scf_bands.in << EOF
 &control
  calculation = 'scf'
  prefix='aute2',
  pseudo_dir = '$PSEUDO_DIR/',
  outdir='$TMP_DIR/'
  verbosity='high'
 /
 &system
  ibrav  = 8
  celldm(1)=31.256
  celldm(2)=0.533252720677
  celldm(3)=0.269649334946 
  space_group=28,
  nat           = 8,
  ntyp          = 2,
  ecutwfc =45.0,
  ecutrho =300.,
!  lspinorb=.TRUE.
!  noncolin=.TRUE.
!  nspin=2
  occupations='smearing'
  smearing='mp'
  degauss=0.02
!  starting_magnetization(1)=0.2
 /
 &electrons
  conv_thr =  1.0d-8
 /
ATOMIC_SPECIES
Au  0.0  Au.pz-n-kjpaw_psl.1.0.0.UPF
Te  0.0  Te.pz-n-kjpaw_psl.1.0.0.UPF
ATOMIC_POSITIONS crystal_sg
Au 2a 0.00000000000000
Au 2c 0.31900000000000 0.01400000000000
Au 4d 0.12400000000000 0.66600000000000 0.50000000000000
Te 2c 0.01800000000000 0.04200000000000
Te 2c 0.61700000000000 0.04200000000000
Te 4d 0.00300000000000 0.69900000000000 0.04200000000000
Te 4d 0.13200000000000 0.36400000000000 0.50000000000000
Te 4d 0.11900000000000 0.96400000000000 0.50000000000000
K_POINTS AUTOMATIC
2 2 2 1 1 1 
EOF
$ECHO "  running the scf_bands calculation for high AuTe2..."
$THERMO_PW_COMMAND < aute2.scf_bands.in > aute2.scf_bands.out
check_failure $?
$ECHO " done"

$ECHO
$ECHO "$EXAMPLE_DIR : done"
