#!/bin/bash # # Resets parts of the EZFIO directory. # # Wed Jan 16 16:50:36 CET 2019 # # Check the QP_ROOT directory if [[ -z ${QP_ROOT} ]] ; then echo "The QP_ROOT environment variable is not set." echo "Please reload the quantum_package.rc file." exit 1 fi source ${QP_ROOT}/quantum_package.rc TEMP=$(getopt -o adhm -l all,dets,help,mos -n $0 -- "$@") || exit 1 eval set -- "$TEMP" function help() { cat << EOF This command resets parts of the EZFIO directory. Usage: $(basename $0) [OPTIONS] EZFIO_DIR Arguments: EZFIO_DIR EZFIO directory Options: -a --all Reset to the state after qp_create -d --dets Deletes the determinants and CI coefficients -h --help Prints the help message -m --mos Deletes the MOs Examples: To delete the complete set of determinants and CI coefficients: $(basename $0) --dets h2o.ezfio To delete the molecular orbitals (implies -dets): $(basename $0) --mos h2o.ezfio EOF exit 0 } function error() { >&2 echo "$(basename $0): $@" exit 2 } dets=0 mos=0 while true ; do case "$1" in -a|--all) dets=1 mos=1 ;; -d|--dets) dets=1 ;; -m|--mos) mos=1 ;; -h|-help|--help) help exit 0;; --) shift ; break ;; *) error $(basename $0)": unknown option $1, try --help" exit 2;; esac shift done if [[ -z $1 ]] ; then help error "EZFIO directory not specified" fi if [[ ! -d $1 ]] ; then error "EZFIO directory not found" fi ezfio=$1 qp set_file $ezfio if [[ $dets -eq 1 ]] ; then rm --force -- ${ezfio}/determinants/n_det rm --force -- ${ezfio}/determinants/psi_{det,coef}.gz rm --force -- ${ezfio}/determinants/n_det_qp_edit rm --force -- ${ezfio}/determinants/psi_{det,coef}_qp_edit.gz fi if [[ $mos -eq 1 ]] ; then if [[ -f ${ezfio}/mo_basis/mo_class.gz ]] && [[ $(qp get mo_basis mo_num) -ne \ $(zcat ${ezfio}/mo_basis/mo_class.gz |grep Active | wc -l) ]] ; then echo "Warning: You will need to re-define the MO classes" fi rm --recursive --force -- ${ezfio}/mo_basis rm --recursive --force -- ${ezfio}/work/mo_ints_* fi qp_edit --check ${ezfio} if [[ $mos -eq 1 ]] ; then qp set mo_two_e_ints io_mo_two_e_integrals None qp set mo_one_e_ints io_mo_integrals_n_e None qp set mo_one_e_ints io_mo_integrals_kinetic None qp set mo_one_e_ints io_mo_integrals_pseudo None qp set mo_one_e_ints io_mo_one_e_integrals None fi