ZnO (Quantum ESPRESSO)
The initial setup must be completed before continuing.
This example shows how to create Infrared and Raman spectra of solid ZnO-Wurtzite, which are computed using the following 3 steps:
- Perform Self Consistent Field (scf) calculation with pw.x
- Calculate the vibrational frequencies (normal modes/phonons) with ph.x
- Extract the phonon information from ph.x output using dynmat.x
- Parse the dynmat.x output section that contains the spectra data and plot it with gnuplot
Prepare Example Directory
First, make sure we are at the root of our home directory
user $
cd
Now, make an example directory, and copy the ellipse example directory into it.
user $
mkdir examples
user $
cp -r /home/bgo/shared/examples/qe/ZnO examples/
user $
cd examples/ZnO
user $
ls
O.pw-mt_fhi.UPF README Zn.pw-mt_fhi.UPF zno.dm.qei zno.ph.qei zno.scf.qei
We also need a script to submit the job to the cluster. Lets start with the quantum espresso sample script in /home/bgo/shared/samples by copying it to our new ellipse example directory.
user $
cp /home/bgo/shared/samples/torque-qe.sh .
user $
ls
O.pw-mt_fhi.UPF Zn.pw-mt_fhi.UPF zno.dm.qei zno.scf.qei README torque-qe.sh zno.ph.qei
The torque-qe.sh script should look something like this:
#PBS -l walltime=10:00:00,nodes=1:ppn=16 ##PBS -M EmailAddress ##PBS -m bae #PBS -q default #PBS -N Jobname #PBS -o myoutput.txt #PBS -j oe QE_MODULE=pw.x . $(which qe-config) # The input file must have a '.qei' extension (e.g., mysimulation.qei). INPUTFILE=mysimulation doQE
The submission script we just copied has default settings that have to be modified for this simulation. Lucky, most of the defaults work for the ZnO simulation (1 node, 16 processes per node, etc.) and all we have to change is the name of the job, the Quantum Espresso module, and the name of the input file.
Running Quantum Espresso
Perform Self Consistent Field (scf) calculation
Modify Queue Submission Script
Changing the job name to ZnO-pw and the input file to zno.scf results in a submission script that looks like this:
#PBS -l walltime=10:00:00,nodes=1:ppn=16 ##PBS -M EmailAddress ##PBS -m bae #PBS -q default #PBS -N ZnO-pw #PBS -o myoutput.txt #PBS -j oe QE_CMD=pw.x . $(which qe-config) # The input file must have a '.qei' extension (e.g., mysimulation.qei). INPUTFILE=zno.scf doQE
Submit Job
The job is now ready to be sent to the cluster.
user $
qsub torque-lmp.sh
user $
qstat
Job ID Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 14222.flory ZnO-pw user 00:00:35 R default
The job should take about 1 minute. Check the job status with qstat to see when it is finished; when the job is no longer listed it has finished.
Calculate the vibrational frequencies (normal modes/phonons)
Modify Queue Submission Script
#PBS -l walltime=10:00:00,nodes=1:ppn=16 ##PBS -M EmailAddress ##PBS -m bae #PBS -q default #PBS -N ZnO-ph #PBS -o myoutput.txt #PBS -j oe QE_CMD=ph.x . $(which qe-config) # The input file must have a '.qei' extension (e.g., mysimulation.qei). INPUTFILE=zno.ph doQE
Submit Job
The job is now ready to be sent to the cluster.
user $
qsub torque-lmp.sh
user $
qstat
Job ID Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 14222.flory ZnO-ph user 00:00:35 R default
The job should take about 5 minutes. Check the job status with qstat to see when it is finished; when the job is no longer listed it has finished.
phonon information
Modify Queue Submission Script
#PBS -l walltime=10:00:00,nodes=1:ppn=16 ##PBS -M EmailAddress ##PBS -m bae #PBS -q default #PBS -N ZnO-dynmat #PBS -o myoutput.txt #PBS -j oe QE_CMD=dynmat.x . $(which qe-config) # The input file must have a '.qei' extension (e.g., mysimulation.qei). INPUTFILE=zno.dm doQE
Submit Job
The job is now ready to be sent to the cluster.
user $
qsub torque-lmp.sh
user $
qstat
Job ID Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 14222.flory ZnO-ph user 00:00:35 R default
The job should take less than a minute. Check the job status with qstat to see when it is finished; when the job is no longer listed it has finished.