Hi Junfeng,

Thank you for the useful information! Indeed I looked into the kmesh.f90 file and they have a defined the internal_maxloc function for this purpose of getting repeatable ordering.

I have now implemented the shell-search-approach in my own time-dependent code and it works very well. I can confirm that is much more accurate (spherically symmetric) than the 6-point approach to calculate the gradient. I implemented the gradient with both second accuracy and third order accuracy (in this case the A in Aw=q is a 21xN_s matrix instead of 6xN_s matrix), and I can see improvements in the resulting observables.

Thanks again Junfeng, Nicola, and Jonathan for all your help!

Best regards,

Lun

Louisiana State University


On 11/7/23 4:38 AM, Junfeng Qiao wrote:
Hi Lun,

I did some experimentations with bvectors some while ago, as far as I 
understand, in principle, the bvectors can be independent of k-points. However, 
W90 sorts the bvecotors such that they are ordered according to some rules: 
this removes some arbitrariness so that the bvectors thus the MMN file can be 
generated in a deterministic way, i.e., you could run wannier90.x multiple 
times and there won't be collision between the current bvectors and the ones in 
MMN file.

The rules are somewhat difficult to explain in plain sentence, the best 
resource should be the src/kmesh.F90 file. In short, (at each kpoint) the 
bvectors are first sorted by their norm in ascending order, then by the index 
of the supercell used to generate a large mesh for searching bvectors, then the 
index of the kpoints.

You could also manually write a nnkp file with fixed bvector ordering at each 
kpoint, then use that nnkp to compute MMN file, then restart Wannierization 
with such bvector order. As long as bvector orderings during the whole process 
are consistent, there will be no issue.

Best,
Junfeng

THEOS, EPFL

On 6 Nov 2023, at 6:42 PM, Lun Yue <lun_...@msn.com> wrote:

Dear Nicola and Jonathan,

Thank you for the expedient reply! This has been very helpful!

I have a followup question: in the output ".bvec" file, is there any particular 
reason why the set of b-vectors are written out for each k-point? Are there situations 
where the set of b-vectors differs from k-point to k-point?

Best regards,

Lun

Louisiana State University


On 11/4/23 6:04 AM, Jonathan Yates wrote:
Dear Yue,

  In support of Nicola’s comments: a long time I did some comparisons of the B1 
approach from MV97, and the simpler 6 neighbour approach. I didn’t look at the 
resulting MLWF - rather I looked at the form of the position operator they lead 
to. Indeed, for the same k-point mesh the B1 approach gives a more accurate 
position operator - and also a more symmetric representation. See
http://www.tcm.phy.cam.ac.uk/~jry20/wannier/pos_op.html

  Jonathan
  —
Prof. Jonathan Yates
Professor of Materials Modelling, Dept of Materials, University of Oxford
Tutor for Materials Science, St Edmund Hall, Oxford.

On 4 Nov 2023, at 02:55, Nicola Marzari <nicola.marz...@epfl.ch> wrote:


Dear Yue,

admittedly both are easy - but think e.g. at a fcc lattice - its reciprocal 
lattice is bcc, 8 neighbours, and calculating the gradient using those 8 b_k 
vectors will be more accurate, at a given sampling, than just using 3.

nicola



On 03/11/2023 23:55, Lun Yue wrote:
Dear all,
I have a question regarding the implementation of the k-gradient.
1) In Wannier90, it is implemented by constructing the weights such that the 
completeness relation is fully satisfied [Eq. (B1), PRB 56, 12847 (1997)].
2) Another approach would be to calculate the numerical derivatives along the 
reciprocal lattice vectors (which is easy as the quantities are given in a 
Monkhorst-Pack grid), and then transform to the Cartesian coordinates using the 
metric tensor and the reciprocal lattice vectors.
I am wondering why approach 1) was implemented over approach 2) in Wannier90. 
The second approach seems to be easier, or does approach 2) fail in some cases?
Best regards,
Lun Yue
Louisiana State University
_______________________________________________
Wannier mailing list
Wannier@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/wannier
--
----------------------------------------------------------------------
Prof Nicola Marzari, Chair of Theory and Simulation of Materials, EPFL
Director, National Centre for Competence in Research NCCR MARVEL, SNSF
Head, Laboratory for Materials Simulations, Paul Scherrer Institut
Contact info and websites at http://theossrv1.epfl.ch/Main/Contact

_______________________________________________
Wannier mailing list
Wannier@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/wannier
_______________________________________________
Wannier mailing list
Wannier@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/wannier
_______________________________________________
Wannier mailing list
Wannier@lists.quantum-espresso.org
https://lists.quantum-espresso.org/mailman/listinfo/wannier

Reply via email to