[Wannier] Carbon Nanotube Example
Jonathan Yates
jry20 at cam.ac.uk
Thu Jan 8 23:34:38 CET 2009
Seunghwan,
>>(1) wannier90.x -pp cnt88
>
>It looks like this step works only in serial. Is this correct?
>If I run this in parallel, there is file I/O error.
Yes, wannier90 will only run in serial
(if you try to run it in parallel through mpirun you will probably spawn
multiple copies of the program, these will all compete to open the same
files - hence the I/O error)
This applies when you run wannier90 with the -pp option, and also the
second tim when you are minimising the spread. The hope is the W90 is
sufficiently fast (due to small matrices) that there is no need to run in
parallel.
>(2) mpirun -np 8 pw2wannier90.x < cnt88.pw2wan.in > cnt88.pw2wan.out
>
>This step worked only in parallel with 8 processors. I used the same
>number of processors for scf and nscf calculations. Do I need to use
>the same number of processors for QE and pw2wannier90.x?
Both pw.x and pw2wannier90.x should work for any number of processors.
One important constraint is that pw2wannier90 will not work when kpoints
are distributed (ie using npools). You can only use R+G vector
distribution.
If you want to use npools for the scf and nscf runs, or you want to run
pw2wannier90 on a different number of nodes, you can use the wf_collect
parameter in the control namelist (see the pwscf documentation). This will
cause a single wavefunction file to be written.
>
>(3) wannier90.x cnt88
>
>This is where I have problems. If I run this in parallel, it stops
>in the middle of "Extraction of optimally-connected subspace". The error
>message on the screen was
>
>forrtl: No such file or directory
>forrtl: severe (28): CLOSE error, unit 10, file "Unknown"
see above: run it in serial
>If I run this in serial, it finishes "disentanglement" process, but
>stops after computing the initial spread of wannier functions.
That's a little odd - the code shouldn't stop without some indication why.
Did it write any warning message - eg in the <seedname>.werr file?
num_print_cycles = 10
To check that it really did stop after the first iteration set this to 1.
Jonathan
--
Department of Materials
Oxford University, UK
More information about the Wannier
mailing list