Quantum ESPRESSO uses the scf generated ./outdir/PREFIX.save/charge-density.xml
or .hdf5
in the nscf calculation. It also uses the same prefix
and outdir
to write the new files (it overwrites). So I guess the following method should work to perform what you described in step 2:
(Let's assume you set outdir='./outdir/'
and prefix='BP'
in your scf calculation.)
- First, create a copy of the
outdir
directory and name it as SCF_outdir
. Now, perform a regular nscf calculation setting nbnd=100
(it's nbnd
, not nband
). Leave the prefix
and outdir
as it is.
- After the calculation finishes, rename the
outdir
as nscf1_outdir
and make a copy of the SCF_outdir
as outdir
. Perform another regular nscf calculation with nbnd=200
.
- Similar to step 2, rename
outdir
as nscf2_outdir
and make a copy of the SCF_outdir
as outdir
. Perform your 3rd nscf calculation with nbnd=300
- After the calculation finishes, rename
outdir
as nscf3_outdir
.
In this way, you will have 4 different directories: one for the scf calculation and other 3 for the 3 different nscf calculations. For the epsilon.x
, you will then leave the outdir='./outdir/'
and prefix='BP'
but just change the name of the corresponding nscf*_outdir
to outdir
.
After running epsilon.x
, you will have four different output files: epsr_BP.dat
, epsi_BP.dat
, eels_BP.dat
, and ieps_BP.dat
. Copy them in a directory according to the nscf outdir
you used. Then rerun epsilon.x
with another nscf outdir
and so on.
Apart from manually setting things in the input file, the workflow is like this:
pw.x < scf.in > scf.out
cp outdir SCF_outdir
pw.x < nscf_nbnd100.in > nscf_nbnd100.out
mv outdir nscf1_outdir
cp SCF_outdir outdir
pw.x < nscf_nbnd200.in > nscf_nbnd200.out
mv outdir nscf2_outdir
cp SCF_outdir outdir
pw.x < nscf_nbnd300.in > nscf_nbnd300.out
mv outdir nscf3_outdir
mv nscf1_outdir outdir
epsilon.x < epsilon.in > epsilon100.out
mkdir nbnd100
mv epsilon.out nbnd100/
mv *dat nbnd100/
mv outdir nscf1_outdir
mv nscf2_outdir outdir
epsilon.x < epsilon.in > epsilon200.out
mkdir nbnd200
mv epsilon.out nbnd200/
mv *dat nbnd200/
mv outdir nscf2_outdir
mv nscf3_outdir outdir
epsilon.x < epsilon.in > epsilon300.out
mkdir nbnd300
mv epsilon.out nbnd300/
mv *dat nbnd300/
mv outdir nscf3_outdir