From 9edaaa1387b768110f200eefbefe43334a75366c Mon Sep 17 00:00:00 2001 From: marsamos Date: Fri, 7 Aug 2009 12:15:03 +0000 Subject: [PATCH] GWW examples added to the repository git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5835 c92efa57-630b-4861-b058-cf58834340f0 --- examples/GWW_examples/README | 13 + examples/GWW_examples/example01/run_example | 197 ++++++++++ examples/GWW_examples/example02/run_example | 403 ++++++++++++++++++++ examples/GWW_examples/example03/run_example | 210 ++++++++++ 4 files changed, 823 insertions(+) create mode 100644 examples/GWW_examples/README create mode 100755 examples/GWW_examples/example01/run_example create mode 100755 examples/GWW_examples/example02/run_example create mode 100755 examples/GWW_examples/example03/run_example diff --git a/examples/GWW_examples/README b/examples/GWW_examples/README new file mode 100644 index 000000000..0f38a7f90 --- /dev/null +++ b/examples/GWW_examples/README @@ -0,0 +1,13 @@ +to run examples do + +./run_example + +from the following directories: + +example01 computes the GW quasi-particle energies in C6H6 (Benzene molecule) + +example02 computes the GW quasi-particle energies in bulk Si (extended system) + +example03 computes the orbital decomposition of the total GWW density of states in C6H6 (Benzene molecule) + +Joe, 05/08/2009 diff --git a/examples/GWW_examples/example01/run_example b/examples/GWW_examples/example01/run_example new file mode 100755 index 000000000..0ead2cbf8 --- /dev/null +++ b/examples/GWW_examples/example01/run_example @@ -0,0 +1,197 @@ +#!/bin/sh + +### +### Initial file from QE modified by +### G. Stenuit (06/08/2009) +### + +# 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 + +# function to test the exit status of a job +. ../../check_failure.sh + +$ECHO +$ECHO "$EXAMPLE_DIR : starting" +$ECHO +$ECHO "This example shows how to use pw.x, pw4gww.x and gww.x to compute" +$ECHO "the quasi-particle energies in C6H6 (benzene) molecule" + +# set the needed environment variables +. ../../environment_variables + +# required executables and pseudopotentials +BIN_LIST="pw.x pw4gww.x gww.x" +PSEUDO_LIST="C.pbe-rrkjus.UPF H.pbe-rrkjus.UPF" + +$ECHO +$ECHO " executables directory: $BIN_DIR" +$ECHO " pseudo directory: $PSEUDO_DIR" +$ECHO " temporary directory: $TMP_DIR" +$ECHO +$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/results" ; do + if test ! -d $DIR ; then + mkdir $DIR + fi +done +cd $EXAMPLE_DIR/results + +# 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 "ERROR: $PSEUDO_DIR/$FILE not existent or not readable" + $ECHO "Aborting" + exit 1 + fi +done +$ECHO " done" + +# how to run executables +PW_COMMAND="$PARA_PREFIX $BIN_DIR/pw.x $PARA_POSTFIX" +PW4GWW_COMMAND="$PARA_PREFIX $BIN_DIR/pw4gww.x $PARA_POSTFIX" +GWW_COMMAND="$PARA_PREFIX $BIN_DIR/gww.x $PARA_POSTFIX" +$ECHO +$ECHO " running pw.x as: $PW_COMMAND" +$ECHO " running pw4gww.x as: $PW4GWW_COMMAND" +$ECHO " running gww.x as: $GWW_COMMAND" +$ECHO + +# clean TMP_DIR +$ECHO " cleaning $TMP_DIR...\c" +rm -rf $TMP_DIR/* +$ECHO " done" + +# self-consistent calculation at Gamma +cat > benzene.scf.in << EOF + &control + calculation='scf' + restart_mode='from_scratch', + pseudo_dir = '$PSEUDO_DIR/', + prefix='benzene' + outdir='$TMP_DIR/' + / + &system + ibrav= 8, celldm(1)= 20,celldm(2)= 1, celldm(3)=1, + nat= 12, ntyp= 2, + ecutwfc = 25.0, nosym=.true., nbnd = 115 + ecutrho= 200.d0 + / + &electrons + diagonalization='cg', + conv_thr = 1.0d-10, + mixing_beta = 0.5, + startingwfc='random', + / +ATOMIC_SPECIES + C 1. C.pbe-rrkjus.UPF + H 1. H.pbe-rrkjus.UPF +ATOMIC_POSITIONS {bohr} +C 1.321864 2.289536 0.000 +C -1.321864 2.289536 0.000 +C -2.643728 0.000000 0.000 +C -1.321865 -2.289535 0.000 +C 1.321864 -2.289536 0.000 +C 2.643728 -0.000001 0.000 +H 2.362159 4.091379 0.000 +H -2.362158 4.091379 0.000 +H -4.724317 0.000001 0.000 +H -2.362160 -4.091378 0.000 +H 2.362158 -4.091379 0.000 +H 4.724317 -0.000001 0.000 +EOF +$ECHO " running the scf calculation for benzene molecule...\c" +$PW_COMMAND < benzene.scf.in > benzene.scf.out +check_failure $? +$ECHO " done" + +# pw4gww calculation at Gamma +cat > benzene.pw4gww.in << EOF +&inputpw4gww + prefix='benzene' + outdir='$TMP_DIR/', + lwannier=.true., + cutoff_wpr_vc = 0.1d0 + num_nbnd_first = 50 + num_nbndv=15 + num_nbnds=20 + l_truncated_coulomb=.true. + truncation_radius=10d0 + restart_gww=-1 + numw_prod=1 + cprim_first=1 + cprim_last=20 + cutoff_products=0.1 + l_polarization_analysis=.true. + cutoff_polarization=0.1 + / +EOF +$ECHO " running the pw4gww calculation at Gamma for C6H6...\c" +$PW4GWW_COMMAND < benzene.pw4gww.in > benzene.pw4gww.out +$ECHO " done" + +# GWW calculation +cat > inputgww << EOF +&inputgww +ggwin%n=79, +ggwin%n_fit=120, +ggwin%tau=10., +ggwin%max_i=20, +ggwin%prefix='benzene' +ggwin%num_rows=50 +ggwin%starting_point=1 +ggwin%ending_point=7 +ggwin%fit_maxiter=1000 +ggwin%n_max_minpack=10000 +ggwin%lnonorthogonal=.false. +ggwin%lconduction=.true. +ggwin%grid_time=2 +ggwin%grid_freq=2 +ggwin%omega=20 +ggwin%omega_fit=20 +ggwin%n_grid_fit=240 +ggwin%i_min=1 +ggwin%i_max=20 +ggwin%l_head_epsilon=.false. +ggwin%w_divergence=0 +ggwin%l_wing_epsilon=.false. +/ +EOF +$ECHO " running the GWW calculation for C6H6...\c" +$GWW_COMMAND < inputgww +#check_failure $? +$ECHO " done" + + +# clean TMP_DIR +$ECHO " cleaning $TMP_DIR...\c" +rm -rf $TMP_DIR/* +$ECHO " done" + +$ECHO +$ECHO "$EXAMPLE_DIR: done" diff --git a/examples/GWW_examples/example02/run_example b/examples/GWW_examples/example02/run_example new file mode 100755 index 000000000..6fc4afa67 --- /dev/null +++ b/examples/GWW_examples/example02/run_example @@ -0,0 +1,403 @@ +#!/bin/sh + +### +### Initial file from QE modified by +### G. Stenuit (06/08/2009) +### + +# 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 + +# function to test the exit status of a job +. ../../check_failure.sh + +$ECHO +$ECHO "$EXAMPLE_DIR : starting" +$ECHO +$ECHO "This example shows how to use pw.x, head.x, pw4gww.x and gww.x to compute" +$ECHO "the quasi-particle energies in an extended system such as bulk Si" + +# set the needed environment variables +. ../../environment_variables + +# required executables and pseudopotentials +BIN_LIST="pw.x head.x pw4gww.x gww.x" +PSEUDO_LIST="Si.pz-rrkj.UPF" + +$ECHO +$ECHO " executables directory: $BIN_DIR" +$ECHO " pseudo directory: $PSEUDO_DIR" +$ECHO " temporary directory: $TMP_DIR" +$ECHO +$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" ; do + if test ! -d $DIR ; then + mkdir $DIR + fi +done + +# 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 "ERROR: $PSEUDO_DIR/$FILE not existent or not readable" + $ECHO "Aborting" + exit 1 + fi +done +$ECHO " done" + +# how to run executables +PW_COMMAND="$PARA_PREFIX $BIN_DIR/pw.x $PARA_POSTFIX" +HEAD_COMMAND="$PARA_PREFIX $BIN_DIR/head.x $PARA_POSTFIX" +PW4GWW_COMMAND="$PARA_PREFIX $BIN_DIR/pw4gww.x $PARA_POSTFIX" +GWW_COMMAND="$PARA_PREFIX $BIN_DIR/gww.x $PARA_POSTFIX" +$ECHO +$ECHO " running pw.x as: $PW_COMMAND" +$ECHO " running pw4gww.x as: $PW4GWW_COMMAND" +$ECHO " running gww.x as: $GWW_COMMAND" +$ECHO + +# clean TMP_DIR +$ECHO " cleaning $TMP_DIR , $EXAMPLE_DIR/HEAD , $EXAMPLE_DIR/EXCHANGE, $EXAMPLE_DIR/WANNIER \c" +rm -rf $TMP_DIR/* +rm -rf $EXAMPLE_DIR/HEAD +rm -rf $EXAMPLE_DIR/EXCHANGE +rm -rf $EXAMPLE_DIR/WANNIER +$ECHO " done" + +### HEAD part... +for DIR in "$EXAMPLE_DIR/HEAD" ; do + if test ! -d $DIR ; then + mkdir $DIR + fi +done +cd $EXAMPLE_DIR/HEAD + +# self-consistent calculation at Gamma +cat > si8_scf_head.in << EOF + &control + calculation='scf' + restart_mode='from_scratch', + pseudo_dir = '$PSEUDO_DIR/', + prefix='si' + outdir='$TMP_DIR/' +/ + &system + ibrav= 8, celldm(1)= 10.26,celldm(2)= 1, celldm(3)=1, + nat= 8, ntyp= 1, + ecutwfc = 18.0, nosym=.false. + / + &electrons + diagonalization='david', + conv_thr = 1.0d-10, + mixing_beta = 0.5, + startingwfc='random', + / +ATOMIC_SPECIES + Si 1. Si.pz-rrkj.UPF +ATOMIC_POSITIONS (crystal) +Si 0.00000 0.00000 0.00000 +Si 0.50000 0.50000 0.00000 +Si 0.00000 0.50000 0.50000 +Si 0.50000 0.00000 0.50000 +Si 0.25000 0.25000 0.25000 +Si 0.75000 0.75000 0.25000 +Si 0.75000 0.25000 0.75000 +Si 0.25000 0.75000 0.75000 +K_POINTS (automatic) +4 4 4 1 1 1 +EOF +$ECHO " running the scf calculation for bulk Si (HEAD part)...\c" +$PW_COMMAND < si8_scf_head.in > si8_scf_head.out +check_failure $? +$ECHO " done" + +# ph calculation at Gamma +cat > si8_ph_head.in << EOF +phonons of Si at Gamma + &inputph + tr2_ph=1.d-4, + prefix='si', + outdir='$TMP_DIR/', + epsil=.false., + amass(1)=28.08, + fildyn='si.dynG', + recover=.false. + trans=.false. + l_head=.true. + omega_gauss=20. + n_gauss=79 + grid_type=2 + niter_ph=1 + / +0.0 0.0 0.0 +EOF +$ECHO " running the phonon calculation at Gamma for computating the head of bulk Si...\c" +$HEAD_COMMAND < si8_ph_head.in > si8_ph_head.out +$ECHO " done" + +cd $EXAMPLE_DIR +### HEAD part... +for DIR in "$EXAMPLE_DIR/EXCHANGE" ; do + if test ! -d $DIR ; then + mkdir $DIR + fi +done +cd $EXAMPLE_DIR/EXCHANGE + +# self-consistent calculation at Gamma +cat > si8_scf_exchange.in << EOF + &control + calculation='scf' + restart_mode='from_scratch', + pseudo_dir='$PSEUDO_DIR/', + prefix='si' + outdir='$TMP_DIR/' +/ + &system + ibrav= 8, celldm(1)=10.26, celldm(2)= 1, celldm(3)=1, + nat= 8, ntyp= 1, + ecutwfc = 18.0, nbnd = 200, nosym=.true. + / + &electrons + diagonalization='cg', + conv_thr = 1.0d-8, + mixing_beta = 0.5, + startingwfc='random', + / +ATOMIC_SPECIES + Si 1. Si.pz-rrkj.UPF +ATOMIC_POSITIONS (crystal) +Si 0.00000 0.00000 0.00000 +Si 0.50000 0.50000 0.00000 +Si 0.00000 0.50000 0.50000 +Si 0.50000 0.00000 0.50000 +Si 0.25000 0.25000 0.25000 +Si 0.75000 0.75000 0.25000 +Si 0.75000 0.25000 0.75000 +Si 0.25000 0.75000 0.75000 +K_POINTS (automatic) +4 4 4 0 0 0 +EOF +$ECHO " running the scf calculation for bulk Si (EXCHANGE part)...\c" +$PW_COMMAND < si8_scf_exchange.in > si8_scf_exchange.out +check_failure $? +$ECHO " done" + +# pw4gww calculation at Gamma for computing the exchange energies +cat > si8_exchange.in << EOF +&inputpw4gww + prefix='si' + outdir='$TMP_DIR/', + lwannier=.false. + l_exchange=.true. + num_nbndv=16 + num_nbnds=20 + l_truncated_coulomb=.true. + truncation_radius=20.52 + omega_gauss=20. + tau_gauss=10.d0 + n_gauss=79 + grid_type=2 + restart_gww=-1 +/ +EOF +$ECHO " running the pw4gww calculation at Gamma for computating the exchange energies of bulk Si...\c" +$PW4GWW_COMMAND < si8_exchange.in > si8_exchange.out +$ECHO " done" + +cd $EXAMPLE_DIR +### HEAD part... +for DIR in "$EXAMPLE_DIR/WANNIER" ; do + if test ! -d $DIR ; then + mkdir $DIR + fi +done +cd $EXAMPLE_DIR/WANNIER + +# self-consistent calculation with kpoints +cat > si8_scf_kpt_wannier.in << EOF + &control + calculation='scf' + restart_mode='from_scratch', + pseudo_dir='$PSEUDO_DIR/', + prefix='si' + outdir='$TMP_DIR/' +/ + &system + ibrav= 8, celldm(1)=10.26, celldm(2)= 1, celldm(3)=1, + nat= 8, ntyp= 1, + ecutwfc = 18.0, nosym=.true. + / + &electrons + diagonalization='cg', + conv_thr = 1.0d-8, + mixing_beta = 0.5, + startingwfc='random', + / +ATOMIC_SPECIES + Si 1. Si.pz-rrkj.UPF +ATOMIC_POSITIONS (crystal) +Si 0.00000 0.00000 0.00000 +Si 0.50000 0.50000 0.00000 +Si 0.00000 0.50000 0.50000 +Si 0.50000 0.00000 0.50000 +Si 0.25000 0.25000 0.25000 +Si 0.75000 0.75000 0.25000 +Si 0.75000 0.25000 0.75000 +Si 0.25000 0.75000 0.75000 +K_POINTS (automatic) +4 4 4 1 1 1 +EOF +$ECHO " running the scf calculation with kpoints for bulk Si (WANNIER part)...\c" +$PW_COMMAND < si8_scf_kpt_wannier.in > si8_scf_kpt_wannier.out +check_failure $? +$ECHO " done" + +# non self-consistent calculation at GAMMA +cat > si8_nscf_gamma_wannier.in << EOF + &control + calculation='nscf' + restart_mode='restart', + pseudo_dir='$PSEUDO_DIR/', + prefix='si' + outdir='$TMP_DIR/' +/ + &system + ibrav= 8, celldm(1)=10.26, celldm(2)= 1, celldm(3)=1, + nat= 8, ntyp= 1, + ecutwfc = 18.0, nbnd = 200, nosym=.true. + / + &electrons + diagonalization='cg', + conv_thr = 1.0d-8, + mixing_beta = 0.5, + / +ATOMIC_SPECIES + Si 1. Si.pz-rrkj.UPF +ATOMIC_POSITIONS (crystal) +Si 0.00000 0.00000 0.00000 +Si 0.50000 0.50000 0.00000 +Si 0.00000 0.50000 0.50000 +Si 0.50000 0.00000 0.50000 +Si 0.25000 0.25000 0.25000 +Si 0.75000 0.75000 0.25000 +Si 0.75000 0.25000 0.75000 +Si 0.25000 0.75000 0.75000 +K_POINTS (gamma) +EOF +$ECHO " running the nscf calculation at GAMMA for bulk Si (WANNIER part)...\c" +$PW_COMMAND < si8_nscf_gamma_wannier.in > si8_nscf_gamma_wannier.out +check_failure $? +$ECHO " done" + +# copy the wing info from HEAD calculations: +$ECHO " " +$ECHO " copy ../HEAD/si.e_head into the current directory ." +cp ../HEAD/si.e_head . + +# wannier calculations... +cat > si8_wannier.in << EOF + &inputpw4gww + prefix='si' + outdir='$TMP_DIR/' + lwannier=.true., + cutoff_wpr_vc = 0.1d0 + num_nbnd_first = 50 + num_nbndv=16 + num_nbnds=20 + l_truncated_coulomb=.false. + remainder=-1 + restart_gww=-1 + numw_prod=1 + n_gauss=79 + omega_gauss=20.d0 + tau_gauss=10.d0 + l_zero=.true. + l_wing=.true. + cprim_first=1 + cprim_last=20 + cutoff_products=0.01d0 + l_polarization_analysis=.true. + cutoff_polarization=0.01d0 +/ +EOF +$ECHO " running the pw4gww calculation for bulk Si (WANNIER part)...\c" +$PW4GWW_COMMAND < si8_wannier.in > si8_wannier.out +check_failure $? +$ECHO " done" + +# copy the wing info from HEAD calculations: +$ECHO " " +$ECHO " copy ../HEAD/si.e_head, ../HEAD/si.head, ../EXCHANGE/si.exchange and ../EXCHANGE/si.gv_time" +$ECHO " into the current directory ." + +cp ../HEAD/si.e_head . +cp ../HEAD/si.head . +cp ../EXCHANGE/si.exchange . +cp ../EXCHANGE/si.gv_time . + +# GWW calculation +cat > inputgww << EOF +&inputgww +ggwin%n=79, +ggwin%n_fit=120, +ggwin%tau=10., +ggwin%max_i=20, +ggwin%prefix='si' +ggwin%num_rows=200 +ggwin%starting_point=1 +ggwin%ending_point=7 +ggwin%lnonorthogonal=.false. +ggwin%lconduction=.true. +ggwin%grid_time=2 +ggwin%grid_freq=2 +ggwin%omega=20 +ggwin%omega_fit=20 +ggwin%n_grid_fit=240 +ggwin%i_min=1 +ggwin%i_max=20 +ggwin%l_head_epsilon=.true. +ggwin%w_divergence=2 +ggwin%l_wing_epsilon=.true. +/ +EOF +$ECHO " running the GWW calculation for bulk Si...\c" +$GWW_COMMAND < inputgww +#check_failure $? +$ECHO " done" + + +# clean TMP_DIR +$ECHO " cleaning $TMP_DIR...\c" +rm -rf $TMP_DIR/* +$ECHO " done" + +$ECHO +$ECHO "$EXAMPLE_DIR: done" diff --git a/examples/GWW_examples/example03/run_example b/examples/GWW_examples/example03/run_example new file mode 100755 index 000000000..8aecfaf83 --- /dev/null +++ b/examples/GWW_examples/example03/run_example @@ -0,0 +1,210 @@ +#!/bin/sh + +### +### Initial file from QE modified by +### G. Stenuit (06/08/2009) +### + +# 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 + +# function to test the exit status of a job +. ../../check_failure.sh + +$ECHO +$ECHO "$EXAMPLE_DIR : starting" +$ECHO +$ECHO "This example shows how to use projwfc.x to compute" +$ECHO "the orbital decomposition of the total DOS from GWA energies" + +# set the needed environment variables +. ../../environment_variables + +# required executables and pseudopotentials +BIN_LIST="pw.x projwfc.x" +PSEUDO_LIST="C.pbe-rrkjus.UPF H.pbe-rrkjus.UPF" + +$ECHO +$ECHO " executables directory: $BIN_DIR" +$ECHO " pseudo directory: $PSEUDO_DIR" +$ECHO " temporary directory: $TMP_DIR" +$ECHO +$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/results" ; do + if test ! -d $DIR ; then + mkdir $DIR + fi +done +cd $EXAMPLE_DIR/results + +# 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 "ERROR: $PSEUDO_DIR/$FILE not existent or not readable" + $ECHO "Aborting" + exit 1 + fi +done +$ECHO " done" + +# check if bands.dat exist ! +if test ! -r ../../example01/results/bands.dat ; then + $ECHO + $ECHO "ERROR: ../../example01/results/bands.dat not existent or not readable" + $ECHO "Please run example01 FIRST !!" + $ECHO "Aborting" + exit 1 +fi +$ECHO " done" + + +# how to run executables +PW_COMMAND="$PARA_PREFIX $BIN_DIR/pw.x $PARA_POSTFIX" +PROJWFC_COMMAND="$PARA_PREFIX $BIN_DIR/projwfc.x $PARA_POSTFIX" +$ECHO +$ECHO " running pw.x as: $PW_COMMAND" +$ECHO " running projwfc.x as: $PROJWFC_COMMAND" +$ECHO + +# clean TMP_DIR +$ECHO " cleaning $TMP_DIR...\c" +rm -rf $TMP_DIR/* +$ECHO " done" + +# self-consistent calculation at Gamma +cat > benzene.scf.in << EOF + &control + calculation='scf' + restart_mode='from_scratch', + pseudo_dir = '$PSEUDO_DIR/', + prefix='benzene' + outdir='$TMP_DIR/' + / + &system + ibrav= 8, celldm(1)= 20,celldm(2)= 1, celldm(3)=1, + nat= 12, ntyp= 2, + ecutwfc = 25.0, nosym=.true. + ecutrho= 200.d0 + / + &electrons + diagonalization='cg', + conv_thr = 1.0d-10, + mixing_beta = 0.5, + startingwfc='random', + / +ATOMIC_SPECIES + C 1. C.pbe-rrkjus.UPF + H 1. H.pbe-rrkjus.UPF +ATOMIC_POSITIONS {bohr} +C 1.321864 2.289536 0.000 +C -1.321864 2.289536 0.000 +C -2.643728 0.000000 0.000 +C -1.321865 -2.289535 0.000 +C 1.321864 -2.289536 0.000 +C 2.643728 -0.000001 0.000 +H 2.362159 4.091379 0.000 +H -2.362158 4.091379 0.000 +H -4.724317 0.000001 0.000 +H -2.362160 -4.091378 0.000 +H 2.362158 -4.091379 0.000 +H 4.724317 -0.000001 0.000 +EOF +$ECHO " running the scf calculation for benzene molecule...\c" +$PW_COMMAND < benzene.scf.in > benzene.scf.out +check_failure $? +$ECHO " done" + + +# non self-consistent calculation at Gamma +cat > benzene.nscf.in << EOF + &control + calculation='nscf' + restart_mode='from_scratch', + pseudo_dir = '$PSEUDO_DIR/', + prefix='benzene' + outdir='$TMP_DIR/' + / + &system + ibrav= 8, celldm(1)= 20,celldm(2)= 1, celldm(3)=1, + nat= 12, ntyp= 2, + ecutwfc = 25.0, nosym=.true., nbnd = 20 + ecutrho= 200.d0 + / + &electrons + diagonalization='cg', + conv_thr = 1.0d-10, + mixing_beta = 0.5, + / +ATOMIC_SPECIES + C 1. C.pbe-rrkjus.UPF + H 1. H.pbe-rrkjus.UPF +ATOMIC_POSITIONS {bohr} +C 1.321864 2.289536 0.000 +C -1.321864 2.289536 0.000 +C -2.643728 0.000000 0.000 +C -1.321865 -2.289535 0.000 +C 1.321864 -2.289536 0.000 +C 2.643728 -0.000001 0.000 +H 2.362159 4.091379 0.000 +H -2.362158 4.091379 0.000 +H -4.724317 0.000001 0.000 +H -2.362160 -4.091378 0.000 +H 2.362158 -4.091379 0.000 +H 4.724317 -0.000001 0.000 +EOF +$ECHO " running the non scf calculation for benzene molecule...\c" +$PW_COMMAND < benzene.nscf.in > benzene.nscf.out +check_failure $? +$ECHO " done" + +# copy the bands.dat file from example01 +$ECHO "Copy the bands.dat file generated in example01 ...\c" +cp ../../example01/results/bands.dat . + +# projwfc calculation at Gamma +cat > benzene.pdos_pp.in << EOF +&inputpp + outdir='$TMP_DIR/' + prefix='benzene' + lgww=.true. + Emin=-30.0, Emax=5.0, DeltaE=0.05, + ngauss=0, degauss=0.01559 +/ +EOF +$ECHO " running the projwfc calculation at Gamma for C6H6...\c" +$PROJWFC_COMMAND < benzene.pdos_pp.in > benzene.pdos_pp.out +check_failure $? +$ECHO " done" + +# clean TMP_DIR +$ECHO " cleaning $TMP_DIR...\c" +rm -rf $TMP_DIR/* +$ECHO " done" + +$ECHO +$ECHO "$EXAMPLE_DIR: done"