-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrun
120 lines (106 loc) · 3.04 KB
/
run
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/sh
THIS_DIR=`pwd`
# check whether echo has the -e option
if test "`echo -e`" = "-e" ; then ECHO=echo ; else ECHO="echo -e" ; fi
$ECHO
$ECHO "The Band Structure of Monolayer Black Phosphorus (Phosphorene)"
$ECHO
# set the needed environment variables
. ~/code/espresso6.0/environment_variables
# override pseudopotential path
PSEUDO_DIR=$THIS_DIR/pseudo
# required executables and pseudopotentials
BIN_LIST="pw.x pp.x bands.x plotrho.x projwfc.x"
PSEUDO_LIST="P.rel-pbe-nl-kjpaw_psl.1.0.0.UPF" # P.rel-pbe-nl-kjpaw_psl.1.0.0.UPF, P.pbe-n-kjpaw_psl.1.0.0.UPF
TMP_DIR="$THIS_DIR/tempdir"
$ECHO
$ECHO " executables directory: $BIN_DIR"
$ECHO " pseudo directory: $PSEUDO_DIR"
$ECHO " temporary directory: $TMP_DIR"
$ECHO "\n 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" "$THIS_DIR/results-nonrel" ; do
if test ! -d $DIR ; then
mkdir $DIR
fi
done
cd $THIS_DIR/results-nonrel
# 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...\n"
$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
PW_COMMAND="$PARA_PREFIX $BIN_DIR/pw.x $PARA_POSTFIX"
BANDS_COMMAND="$PARA_PREFIX $BIN_DIR/bands.x $PARA_POSTFIX"
PROJ_COMMAND="$PARA_PREFIX $BIN_DIR/projwfc.x $PARA_POSTFIX"
PP_COMMAND="$PARA_PREFIX $BIN_DIR/pp.x $PARA_POSTFIX"
PLOTRHO_COMMAND="$PARA_PREFIX $BIN_DIR/plotrho.x $PARA_POSTFIX"
$ECHO
$ECHO " running pw.x as: $PW_COMMAND"
$ECHO " running bands.x as: $BANDS_COMMAND"
$ECHO " running projwfc.x as: $PROJ_COMMAND"
$ECHO
# set paramters shared among all modules
atom='P'
prefix='phosphorene'
pseudo='P.rel-pbe-nl-kjpaw_psl.1.0.0.UPF'
ecutwfc=34.0
num_k=6
soc='.TRUE.'
if [ "$soc" == ".TRUE." ];
then
num_band=32
else
num_band=16
fi
efield='.TRUE.'
efield_amp=4.0d-3
# clean TMP_DIR and RESULTS
# $ECHO " cleaning up temporary files...\c"
# rm -rf $TMP_DIR/$prefix*
# rm -rf $THIS_DIR/results-nonrel/$prefix*
# $ECHO " done"
# variable-cell relaxation
# . ../bash/vc-relax
# relaxation
# . ../bash/relax
# self-consistent field calculation
. ../bash/scf
# band structure calculation along high-symmetry lines
# . ../bash/band
# post-processing for band structure
# . ../bash/bands
# non-self-consistent calculation
# . ../bash/nscf
# projected wave functions
# . ../bash/proj
# post processing charge density
# . ../bash/pp