[Wannier] Problem with use_ws_distance
greschd at phys.ethz.ch
Thu Feb 16 13:34:42 CET 2017
Thank you very much for your reply. Indeed, increasing the tolerance (in
my case, to about 7.d-4) fixes this issue. I changed the code such that
the tolerance can be given as an input parameter, see here:
First of all, do you think this is useful / necessary in general? If
yes, are there other places in ws_distance.F90 where the tolerance
should be changed accordingly? From glancing over the code I would guess
maybe eps = 10 * irdist_ws_tol would make sense. Of course we could also
let the user set eps and use irdist_ws_tol = eps / 10 . Please let me
know what you think about this.
P.S.: I uploaded my input files here:
However, the files are very large (500MB compressed, about 1.2 GB
uncompressed), so they might not be worth downloading. Also, I'm not
especially interested in getting this particular example to run, I was
just playing around with parameters to see how they affect the result.
On 15.02.2017 13:32, Lorenzo Paulatto wrote:
> On Tuesday, February 14, 2017 9:51:50 PM CET Dominik Gresch wrote:
> > Dear Wannier90 community,
> > While running Wannier90 with the 'use_ws_distance = .TRUE.' flag, I
> > encounter the error 'wrong irdist_ws'. Does anyone know the nature of
> > this error?
> This error should never happen, although if the position of the
> centres of the WFs are very noisy it may pop up. It is difficult to
> tell without having the slightest detail about your calculation.
> Could you please provide us the files necessary to reproduce you
> calculation (ie. all the file seedname.*, except the UNK files).
> As a quick workaround, you can go in the file src/ws_distance.F90 and
> around line 156 change this check:
> IF(ANY(ABS(DBLE(irdist_ws)-irdist_real)>1.d-6)) &callio_error('wrong
> irdist_ws')allowing for a larger tolerance, something like 1.d-4 or
> 1.d-3. If then the code runs to the end, it is just a problem of
> numerical noise/minimisation not being tight enough.
> If this does not help, we definitely need to reproduce the calculation
> in order to be able to help.
> > Important things to note:
> > - The error seems to appear also for 'use_ws_distance = .FALSE.',
> > but in that case the output files are still written
> Yes, there is a place where the subroutine causing the error is called
> even when that option is false. This occurence arrives later in the
> code, hence I can see how the output files are written in this case.
> To avoid this problem, you can change src/plot.F90 around line 80, from
> if( write_hr.or.write_rmn.or.write_tb ) thenif(.not.done_ws_distance)
> callws_translate_dist(nrpts,irvec) callws_write_vec(nrpts,irvec) end if
> if( (write_hr.or.write_rmn.or.write_tb) .and.use_ws_distance)
> thenif(.not.done_ws_distance) callws_translate_dist(nrpts,irvec)
> callws_write_vec(nrpts,irvec) end if
> And, of course, recompile (I have not tested this, but it should work).
> > - My input files were generated with VASP (meaning, for Wannier90
> > v.1), which could be the source of the problem
> I do not think this makes any difference.
> Dr. Lorenzo Paulatto
> IdR @ IMPMC -- CNRS & Université Paris 6
> phone: +33 (0)1 442 79822 / skype: paulatz
> www: http://www-int.impmc.upmc.fr/~paulatto/
> mail: 23-24/423 Boîte courrier 115, 4 place Jussieu 75252 Paris Cédex 05
> Wannier mailing list
> Wannier at quantum-espresso.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Wannier