example04 copied to PW/examples/example03

-This line, and those below, will be ignored--

A  + examples/example03
M    examples/example03/run_example
M    examples/example03/run_xml_example


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8408 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
marsamos 2012-01-09 11:14:26 +00:00
parent cad820dc18
commit e01ad8bac9
6 changed files with 24151 additions and 0 deletions

View File

@ -0,0 +1,35 @@
This example illustrates how to use pw.x to perform molecular dynamics
for an 8-atom cell of Si starting with compressed bonds along 111
The calculation proceeds as follows (for the meaning of the cited input
variables see the file 'INPUT_PW' in the directory 'pwdocs')
1) make a MD run for Si in the diamond structure in a 2-atom cell starting
with the bond along (111) slightly compressed. Use the Gamma point only.
2) make a MD run for Si in the diamond structure in a 8-atom cell starting
with the bond along (111) slightly compressed. Use the Gamma point only.
Note that the two calculations do not give exactly the same results
because the BZ samplig is different.
3) make a MD run for Si in the diamond structure in a 2-atom cell starting
with the bond along (111) slightly compressed. Use the Gamma and the
3 X points for the BZ sampling.
It should give the same result as the calculation with 8 atoms (clearly
the total energy is 4 times larger)
In all the three calculation above:
calculation='md' specifies that a MD run is performed.
dt=20 defines the time step in (Rydberg) atomic unit of time.
The mass of each type of atom is specified in the cards ATOMIC_SPECIES
(for Si, 28.086 is the atomic mass in a.m.u.)
nstep=100 is the number of steps in the MD run.
potential_extrapolation='wfc2' meansd that starting guess for the
potential and the wavefunctions at the new atomic positions will
be extrapolated from previous history.
nosym=.true. states that symmetry should not be used in the MD run.
Additional variables (such as temperature) could be set in a MD run.
Refer to INPUT_PW for their meaning.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

224
PW/examples/example03/run_example Executable file
View File

@ -0,0 +1,224 @@
#!/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
# function to test the exit status of a job
. ../../../examples/check_failure.sh
$ECHO
$ECHO "$EXAMPLE_DIR : starting"
$ECHO
$ECHO "This example shows how to use pw.x to perform molecular dynamics for"
$ECHO "2- and 8-atom cells of Si starting with compressed bonds along (111)."
# set the needed environment variables
cd ../
. ../../examples/environment_variables
cd example03
# required executables and pseudopotentials
BIN_LIST="pw.x"
PSEUDO_LIST="Si.pz-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 "Downloading $FILE to $PSEUDO_DIR...\c"
$WGET $PSEUDO_DIR/$FILE \
http://www.quantum-espresso.org/pseudo/1.3/UPF/$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
PW_COMMAND="$PARA_PREFIX $BIN_DIR/pw.x $PARA_POSTFIX"
$ECHO
$ECHO " running pw.x as: $PW_COMMAND"
$ECHO
# clean TMP_DIR
$ECHO " cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/*
$ECHO " done"
# MD in a 2-atom cell
cat > si.md2.in << EOF
&control
calculation='md'
restart_mode='from_scratch',
pseudo_dir = '$PSEUDO_DIR/',
outdir='$TMP_DIR/',
dt=20,
nstep=100,
disk_io='high'
/
&system
ibrav= 2, celldm(1)=10.18, nat= 2, ntyp= 1,
ecutwfc = 8.0, nosym=.true.
/
&electrons
conv_thr = 1.0d-8
mixing_beta = 0.7
/
&ions
pot_extrapolation='second-order'
wfc_extrapolation='second-order'
/
ATOMIC_SPECIES
Si 28.086 Si.pz-vbc.UPF
ATOMIC_POSITIONS
Si -0.123 -0.123 -0.123
Si 0.123 0.123 0.123
K_POINTS {automatic}
1 1 1 0 0 0
EOF
$ECHO " running the MD calculation for Si in a 2 atom cell. G-point...\c"
$PW_COMMAND < si.md2.in > si.md2.out
check_failure $?
$ECHO " done"
awk '/Ekin/{ek=$3;et=$11; print it,time,ek,u,et}/Dynamics/{it=$5;time=$8}/^\!/{u=$5}' si.md2.out > MD2
# clean TMP_DIR
$ECHO " cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/*
$ECHO " done"
# MD in a 8-atom cell
cat > si.md8.in << EOF
&control
calculation='md'
restart_mode='from_scratch',
pseudo_dir = '$PSEUDO_DIR/',
outdir='$TMP_DIR/',
dt=20,
nstep=100,
disk_io='high'
/
&system
ibrav= 1, celldm(1)=10.18, nat= 8, ntyp= 1,
ecutwfc = 8.0, nosym=.true.
/
&electrons
conv_thr = 1.0d-8,
mixing_beta = 0.7
/
&ions
pot_extrapolation='second-order'
wfc_extrapolation='second-order'
/
ATOMIC_SPECIES
Si 28.086 Si.pz-vbc.UPF
ATOMIC_POSITIONS
Si -0.123 -0.123 -0.123
Si 0.377 0.377 -0.123
Si 0.377 -0.123 0.377
Si -0.123 0.377 0.377
Si 0.123 0.123 0.123
Si 0.623 0.623 0.123
Si 0.623 0.123 0.623
Si 0.123 0.623 0.623
K_POINTS {automatic}
1 1 1 0 0 0
EOF
$ECHO " running the MD calculation for Si in a 8 atom cell. G-point...\c"
$PW_COMMAND < si.md8.in > si.md8.out
check_failure $?
$ECHO " done"
awk '/Ekin/{ek=$3;et=$11; print it,time,ek,u,et}/Dynamics/{it=$5;time=$8}/^\!/{u=$5}' si.md8.out > MD8
# clean TMP_DIR
$ECHO " cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/*
$ECHO " done"
# MD in a 2-atom cell. Gamma+3X
cat > si.md2_G3X.in << EOF
&control
calculation='md'
restart_mode='from_scratch',
pseudo_dir = '$PSEUDO_DIR/',
outdir='$TMP_DIR/',
dt=20,
nstep=100,
disk_io='high'
/
&system
ibrav= 2, celldm(1)=10.18, nat= 2, ntyp= 1,
ecutwfc = 8.0, nosym=.true.
/
&electrons
conv_thr = 1.0d-8,
mixing_beta = 0.7
/
&ions
pot_extrapolation='second-order'
wfc_extrapolation='second-order'
/
ATOMIC_SPECIES
Si 28.086 Si.pz-vbc.UPF
ATOMIC_POSITIONS
Si -0.123 -0.123 -0.123
Si 0.123 0.123 0.123
K_POINTS
4
0.0 0.0 0.0 1.0
1.0 0.0 0.0 1.0
0.0 1.0 0.0 1.0
0.0 0.0 1.0 1.0
EOF
$ECHO " running the MD calculation for Si in a 2 atom cell. G3X-points...\c"
$PW_COMMAND < si.md2_G3X.in > si.md2_G3X.out
check_failure $?
$ECHO " done"
awk '/Ekin/{ek=$3;et=$11; print it,time,ek,u,et} \
/Dynamics/{it=$5;time=$8}/^\!/{u=$5}' si.md2_G3X.out > MD2_G3X
$ECHO
$ECHO "$EXAMPLE_DIR: done"

View File

@ -0,0 +1,562 @@
#!/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
# function to test the exit status of a job
. ../../../examples/check_failure.sh
$ECHO
$ECHO "$EXAMPLE_DIR : starting"
$ECHO
$ECHO "This example shows how to use pw.x to perform molecular dynamics for"
$ECHO "2- and 8-atom cells of Si starting with compressed bonds along (111)."
# set the needed environment variables
cd ../
. ../../examples/environment_variables
cd example03
# required executables and pseudopotentials
BIN_LIST="pw.x"
PSEUDO_LIST="Si.pz-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 "Downloading $FILE to $PSEUDO_DIR...\c"
$WGET $PSEUDO_DIR/$FILE \
http://www.quantum-espresso.org/pseudo/1.3/UPF/$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
PW_COMMAND="$PARA_PREFIX $BIN_DIR/pw.x $PARA_POSTFIX"
$ECHO
$ECHO " running pw.x as: $PW_COMMAND"
$ECHO
# clean TMP_DIR
$ECHO " cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/*
$ECHO " done"
# MD in a 2-atom cell
cat > si.md2.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<input calculation="md">
<cell type="qecell">
<qecell ibrav="2" alat="10.18">
<real rank="1" n1="5">
0.0 0.0 0.0 0.0 0.0
</real>
</qecell>
</cell>
<atomic_species ntyp="1">
<specie name="Si">
<property name="mass">
<real>28.086</real>
</property>
<property name="pseudofile">
<string>Si.pz-vbc.UPF</string>
</property>
</specie>
</atomic_species>
<atomic_list units="alat" nat="2" >
<atom name="Si">
<position>
<real rank="1" n1="3">
-0.123 -0.123 -0.123
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.123 0.123 0.123
</real>
</position>
</atom>
</atomic_list>
<field name="InputOutput">
<parameter name="restart_mode">
<string>
from_scratch
</string>
</parameter>
<parameter name="pseudo_dir">
<string>
$PSEUDO_DIR/
</string>
</parameter>
<parameter name="outdir">
<string>
$TMP_DIR/
</string>
</parameter>
<parameter name="disk_io">
<string>
high
</string>
</parameter>
</field>
<field name="Numerics">
<parameter name="ecutwfc">
<real>
8.0
</real>
</parameter>
<parameter name="nosym">
<logical>
true
</logical>
</parameter>
<parameter name="mixing_beta">
<real>
0.7
</real>
</parameter>
<parameter name="conv_thr">
<real>
1.0d-8
</real>
</parameter>
</field>
<field name="MD">
<parameter name="dt">
<real>
20.0
</real>
</parameter>
<parameter name="nstep">
<integer>
100
</integer>
</parameter>
<parameter name="pot_extrapolation">
<string>
second-order
</string>
</parameter>
<parameter name="wfc_extrapolation">
<string>
second-order
</string>
</parameter>
</field>
<k_points type="automatic">
<mesh>
<integer rank="1" n1="6">
1 1 1 0 0 0
</integer>
</mesh>
</k_points>
</input>
EOF
$ECHO " running the MD calculation for Si in a 2 atom cell. G-point...\c"
$PW_COMMAND < si.md2.xml > si.md2.out
check_failure $?
$ECHO " done"
awk '/Ekin/{ek=$3;et=$11; print it,time,ek,u,et}/Dynamics/{it=$5;time=$8}/^\!/{u=$5}' si.md2.out > MD2
# clean TMP_DIR
$ECHO " cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/*
$ECHO " done"
# MD in a 8-atom cell
cat > si.md8.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<input calculation="md">
<cell type="qecell">
<qecell ibrav="1" alat="10.18">
<real rank="1" n1="5">
0.0 0.0 0.0 0.0 0.0
</real>
</qecell>
</cell>
<atomic_species ntyp="1">
<specie name="Si">
<property name="mass">
<real>28.086</real>
</property>
<property name="pseudofile">
<string>Si.pz-vbc.UPF</string>
</property>
</specie>
</atomic_species>
<atomic_list units="alat" nat="8" >
<atom name="Si">
<position>
<real rank="1" n1="3">
-0.123 -0.123 -0.123
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.377 0.377 -0.123
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.377 -0.123 0.377
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
-0.123 0.377 0.377
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.123 0.123 0.123
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.623 0.623 0.123
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.623 0.123 0.623
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.123 0.623 0.623
</real>
</position>
</atom>
</atomic_list>
<field name="InputOutput">
<parameter name="restart_mode">
<string>
from_scratch
</string>
</parameter>
<parameter name="pseudo_dir">
<string>
$PSEUDO_DIR/
</string>
</parameter>
<parameter name="outdir">
<string>
$TMP_DIR/
</string>
</parameter>
<parameter name="disk_io">
<string>
high
</string>
</parameter>
</field>
<field name="Numerics">
<parameter name="ecutwfc">
<real>
8.0
</real>
</parameter>
<parameter name="nosym">
<logical>
true
</logical>
</parameter>
<parameter name="mixing_beta">
<real>
0.7
</real>
</parameter>
<parameter name="conv_thr">
<real>
1.0d-8
</real>
</parameter>
</field>
<field name="MD">
<parameter name="dt">
<real>
20.0
</real>
</parameter>
<parameter name="nstep">
<integer>
100
</integer>
</parameter>
<parameter name="pot_extrapolation">
<string>
second-order
</string>
</parameter>
<parameter name="wfc_extrapolation">
<string>
second-order
</string>
</parameter>
</field>
<k_points type="automatic">
<mesh>
<integer rank="1" n1="6">
1 1 1 0 0 0
</integer>
</mesh>
</k_points>
</input>
EOF
$ECHO " running the MD calculation for Si in a 8 atom cell. G-point...\c"
$PW_COMMAND < si.md8.xml > si.md8.out
check_failure $?
$ECHO " done"
awk '/Ekin/{ek=$3;et=$11; print it,time,ek,u,et}/Dynamics/{it=$5;time=$8}/^\!/{u=$5}' si.md8.out > MD8
# clean TMP_DIR
$ECHO " cleaning $TMP_DIR...\c"
rm -rf $TMP_DIR/*
$ECHO " done"
# MD in a 2-atom cell. Gamma+3X
cat > si.md2_G3X.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<input calculation="md">
<cell type="qecell">
<qecell ibrav="2" alat="10.18">
<real rank="1" n1="5">
0.0 0.0 0.0 0.0 0.0
</real>
</qecell>
</cell>
<atomic_species ntyp="1">
<specie name="Si">
<property name="mass">
<real>28.086</real>
</property>
<property name="pseudofile">
<string>Si.pz-vbc.UPF</string>
</property>
</specie>
</atomic_species>
<atomic_list units="alat" nat="2" >
<atom name="Si">
<position>
<real rank="1" n1="3">
-0.123 -0.123 -0.123
</real>
</position>
</atom>
<atom name="Si">
<position>
<real rank="1" n1="3">
0.123 0.123 0.123
</real>
</position>
</atom>
</atomic_list>
<field name="InputOutput">
<parameter name="restart_mode">
<string>
from_scratch
</string>
</parameter>
<parameter name="pseudo_dir">
<string>
$PSEUDO_DIR/
</string>
</parameter>
<parameter name="outdir">
<string>
$TMP_DIR/
</string>
</parameter>
<parameter name="disk_io">
<string>
high
</string>
</parameter>
</field>
<field name="Numerics">
<parameter name="ecutwfc">
<real>
8.0
</real>
</parameter>
<parameter name="nosym">
<logical>
true
</logical>
</parameter>
<parameter name="mixing_beta">
<real>
0.7
</real>
</parameter>
<parameter name="conv_thr">
<real>
1.0d-8
</real>
</parameter>
</field>
<field name="MD">
<parameter name="dt">
<real>
20.0
</real>
</parameter>
<parameter name="nstep">
<integer>
100
</integer>
</parameter>
<parameter name="pot_extrapolation">
<string>
second-order
</string>
</parameter>
<parameter name="wfc_extrapolation">
<string>
second-order
</string>
</parameter>
</field>
<k_points type="tpiba">
<mesh npoints="4">
<real rank="2" n1="4" n2="4">
0.0 0.0 0.0 1.0
1.0 0.0 0.0 1.0
0.0 1.0 0.0 1.0
0.0 0.0 1.0 1.0
</real>
</mesh>
</k_points>
</input>
EOF
$ECHO " running the MD calculation for Si in a 2 atom cell. G3X-points...\c"
$PW_COMMAND < si.md2_G3X.xml > si.md2_G3X.out
check_failure $?
$ECHO " done"
awk '/Ekin/{ek=$3;et=$11; print it,time,ek,u,et} \
/Dynamics/{it=$5;time=$8}/^\!/{u=$5}' si.md2_G3X.out > MD2_G3X
$ECHO
$ECHO "$EXAMPLE_DIR: done"