[Pw_forum] can't read wavefunction and coords

Jonas Baltrusaitis jasius_1 at yahoo.com
Tue Apr 28 03:51:08 CEST 2009


Gabriele et al,

I rerun input with alat and, yes , it reads nicely. I assume it will read and convert ansgtroms from geom opt to alat in the next step no prob.

Last thing I want to add to my input (after or before normal modes calcs) is DOS calcs. And this is where I got stuck as it wouldn't read last optimized coordinates (in fact it would miss ATOMIC SPECIES field if I didn't add it in ncsf part in hope that guess will get read). If I added ATOMIC SPECIES in ncsf it would use those instead of converting them from the optimization run.

So my questions is how to combined DOS calcs so it uses optimized coordinates, so in one input I can 1) optimize, 2) normal modes and crossections and 3) DOS and PDOS calcs from optimized geometries

I attached the input that succeded in nm calcls but failed in DOS calcs: didn;t read coords and produced empty output files

thanks

Jonas



#!/bin/sh

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

# 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 shows how to use pw.x and phcg.x to calculate the normal"
$ECHO "modes of a molecule (SiH4) at Gamma."
$ECHO 
$ECHO

# set the needed environment variables
PREFIX=`pwd`
BIN_DIR=/share/apps/espresso-4.0.4/bin
PSEUDO_DIR=/share/apps/espresso-4.0.4/pseudo
TMP_DIR=/share/apps/scratch

mkdir $EXAMPLE_DIR/results

PARA_PREFIX="mpiexec -n 8 -machinefile $PBS_NODEFILE"
PARA_POSTFIX="-rmpool 0 -nodes 2 -procs 4"


# required executables and pseudopotentials
BIN_LIST="pw.x phcg.x ph.x"
PSEUDO_LIST="Si.vbc.UPF H.vbc.UPF C.pz-rrkjus.UPF H.vbc.UPF"

$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/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"
PH_COMMAND="$PARA_PREFIX $BIN_DIR/ph.x $PARA_POSTFIX"
PHCG_COMMAND="$PARA_PREFIX $BIN_DIR/phcg.x $PARA_POSTFIX"
DYNMAT_COMMAND=" $BIN_DIR/dynmat.x"
$ECHO
$ECHO "  running pw.x     as: $PW_COMMAND"
$ECHO "  running ph.x     as: $PH_COMMAND"
$ECHO "  running phcg.x   as: $PHCG_COMMAND"
$ECHO "  running dynmat.x as: $DYNMAT_COMMAND"
$ECHO

# clean TMP_DIR
$ECHO "  cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/*
$ECHO " done"

# geometry optimization calculation
cat > sih4.opt.in << EOF
 &control
    calculation='relax'
    pseudo_dir = '$PSEUDO_DIR/',
    restart_mode = ’from_scratch’,
    outdir='$TMP_DIR/'
    title='Test Silane SiH4 gamma only'
    prefix='sih4'
    tprnfor=.true.
 /
 &system
    ibrav=2, celldm(1) =12.0, nat=5, ntyp= 2,
    ecutwfc =16.0
 /
  &electrons
    mixing_mode='plain'
    mixing_beta = 0.7,
    conv_thr =  1.0d-8
 /
&IONS
/
ATOMIC_SPECIES
 Si 28.086 Si.vbc.UPF
  H  1.008  H.vbc.UPF
ATOMIC_POSITIONS (alat)
 Si   0.000000000   0.000000000   0.000000000
  H   0.128530744   0.128530744   0.128530744
  H  -0.128530744  -0.128530744   0.128530744
  H  -0.128530744   0.128530744  -0.128530744
  H   0.128530744  -0.128530744  -0.148530744
K_POINTS (gamma)
EOF
$ECHO "  running the geometry opt calculation for SiH4...\c"
$PW_COMMAND < sih4.opt.in > sih4.opt.out
$ECHO " done"



# normal mode calculation for SiH4
cat > sih4.nm.in << EOF
normal modes for sih4
 &inputph
  tr2_ph=1.0d-14,
  prefix='sih4',
  amass(1)=28.086,
  amass(2)=1.008,
  outdir='$TMP_DIR/',
  epsil=.true.,
  trans=.true., asr=.true.
  raman=.false.
  fildyn='sih4.dyn'
 /
 0.0 0.0 0.0
EOF
$ECHO "  running normal mode calculation for SiH4...\c"
$PHCG_COMMAND < sih4.nm.in > sih4.nm.out
$ECHO " done"

# IR cross sections  for SiH4
cat > sih4.dyn.in << EOF
 &input fildyn='sih4.dyn', asr='zero-dim' /
EOF

$ECHO "  running IR cross section calculation for SiH4...\c"
$DYNMAT_COMMAND < sih4.dyn.in > sih4.dyn.out
$ECHO " done"


# DOS calculation for sih4
cat > sih4.dos.in << EOF
 &control
    calculation='nscf'
    prefix='sih4',
    pseudo_dir = '$PSEUDO_DIR/',
    outdir='$TMP_DIR/'
    /
 &system
    ibrav=2, celldm(1) =12.0, nat=5, ntyp= 2,
    ecutwfc =16.0
 /
  &electrons
    mixing_mode='plain'
    mixing_beta = 0.7,
    conv_thr =  1.0d-8
 /
ATOMIC_SPECIES
 Si 28.086 Si.vbc.UPF
  H  1.008  H.vbc.UPF
ATOMIC_POSITIONS (alat)
 Si   0.000000000   0.000000000   0.000000000
  H   0.128530744   0.128530744   0.128530744
  H  -0.128530744  -0.128530744   0.128530744
  H  -0.128530744   0.128530744  -0.128530744
  H   0.128530744  -0.128530744  -0.148530744
K_POINTS {automatic}
 12 12 12 0 0 0
EOF

cat > sih4.dos2.in << EOF
 &inputpp
    outdir='$TMP_DIR/'
    prefix='sih4'
    fildos='sih4.dos',
    Emin=5.0, Emax=25.0, DeltaE=0.1
 /
EOF

$ECHO "  running DOS calculation for sih4...\c"
$PW_COMMAND < sih4.dos.in > sih4.dos.out
check_failure $?
$DOS_COMMAND < sih4.dos2.in > sih4.dos2.out
$ECHO " done"

cat > sih4.pdos.in << EOF
 &inputpp
    outdir='$TMP_DIR/'
    prefix='sih4'
    Emin=5.0, Emax=25.0, DeltaE=0.1
    ngauss=1, degauss=0.02
 /
EOF
$ECHO "  running PDOS calculation for Ni...\c"
$PROJWFC_COMMAND < sih4.pdos.in > sih4.pdos.out
$ECHO " done"

$ECHO
$ECHO "$EXAMPLE_DIR: done"



--- On Mon, 4/27/09, Gabriele Sclauzero <sclauzer at sissa.it> wrote:

> From: Gabriele Sclauzero <sclauzer at sissa.it>
> Subject: Re: [Pw_forum] can't read wavefunction and coords
> To: "PWSCF Forum" <pw_forum at pwscf.org>
> Date: Monday, April 27, 2009, 7:37 AM
> Jonas Baltrusaitis wrote:
> > Gabriele,
> > 
> > thanks for your response. I reran input without the
> SCF step. I don't thin it's reading
> > coords right. The source of confusion is that I am
> inputting and outputing coords in
> > angstroms in optimization but it gets transferred into
> alat in normal mode calcs.
> 
> I think reading and writing coordinates is treated properly
> in pwscf (i.e. it is 
> internally consistent). You can specify input coordinates
> in different formats, alat 
> (Cartesian axes, celldm(1) units), crystal,...
> At the beginning of the output the read coordinates are
> written in alat units (correctly 
> transformed, if you used an input with a different format),
> and in crystal units if you 
> use verbosity='high'.
> In relax calculations the coordinated are written after
> each scf step in the format you 
> used for the input. So, if you use (angstrom) as input
> format, you'll get ATOMIC_POSITION 
> in angstrom units on output, so that you can copy and paste
> those positions if you need 
> them to build another input.
> For me it always worked: if I give input coordinates as
> ATOMIC_POSITIONS (angstrom)
> ...
> 
> I will get
> ATOMIC_POSITIONS (angstrom)
> ...
> 
> after each ions move in a relax calculation.
> If you restart, the program should not care about the
> atomic positions you give on input, 
> but read those store in the restart files.
> 
> HTH
> 
> GS
> 
> 
> > 
> > Still, this is what I backcalculate with xcrysden:
> > 
> > Optimized coords: ATOMIC POSITIONS Si -0.053476533
> -0.187541319 +0.057950773 ...
> > 
> > Normal mode calculation coords: ATOMIC_POSITIONS Si   
>   -0.037813604  -0.132611686
> > 0.040977368 H       -0.042235675  -0.102590555  
> 0.268983495 H       -0.221511706
> > -0.243919610  -0.030796850 H       -0.032400640  
> 0.077902395  -0.042412224 H
> > 0.144511653  -0.248234756  -0.027243038
> > 
> > below is my latest input incidently, is there a way to
> tell pwscf to use only angstroms
> > in output? 
> > It is convenient for me to use angstroms when setting
> up the initial input
> > so I'd like to stay with angstroms
> > 
> > JOnas
> 
> -- 
> 
> 
> o ------------------------------------------------ o
> | Gabriele Sclauzero, PhD Student                  |
> | c/o:   SISSA & CNR-INFM Democritos,              |
> |        via Beirut 2-4, 34014 Trieste (Italy)     |
> | email: sclauzer at sissa.it                         |
> | phone: +39 040 3787 511                          |
> | skype: gurlonotturno                             |
> o ------------------------------------------------ o
> _______________________________________________
> Pw_forum mailing list
> Pw_forum at pwscf.org
> http://www.democritos.it/mailman/listinfo/pw_forum


      


More information about the Pw_forum mailing list