Open hongyi-zhao opened 1 year ago
Hi
I'm not sure what you mean by "the exact form of the wavefunction". As is well known, VASP WAVECAR file stores the plane-wave coefficients of the PSEUDO-wavefunction, which can be easily obtained with my code, e.g.
#/usr/bin/env python
from vaspwfc import vaspwfc
pswfc = vaspwfc('./examples/wfc_r/WAVECAR')
# Cg now contains the plane-wave coefficients of the selected KS states
Cg = pswfc.readBandCoeff(ispin=1, ikpt=1, iband=1)
On the other hand, should one need the PSEUDO-wavefunction in real-space, one can also do it with my code. See to the examples of README for more informations.
I am not aware of your exact form of the matrix element, therefore I can not comment on this point.
Best Qijing
- I'm not sure what you mean by "the exact form of the wavefunction". As is well known, VASP WAVECAR file stores the plane-wave coefficients of the PSEUDO-wavefunction, which can be easily obtained with my code, e.g.
The PSEUDO-wavefunction is the basis set, and the plane-wave coefficients are the superposition coefficient of states using this basis set. So, by saying "the exact form of the wavefunction", I mean that whether these coefficients are complete relative to the base set, i.e., there are no omissions.
- I am not aware of your exact form of the matrix element, therefore I can not comment on this point.
Sorry, my description is not very clear here. More specifically, I want to implement the things described here based on the WAVECAR analysis:
Regarding your wording of exact form of the matrix element, I'm not sure whether you mean the matrix elements of the point group or the space group of the computed system in question.
If I have any incorrect description or misunderstanding, please do not hesitate to correct me.
BTW, both your version and the method implemented in pymatgen are based on the algorithm developed in WaveTrans, so what are the differences between them?
Regards, Zhao
The pseudo-wavefunctions are expanded by plane-waves, i.e.
\psink(r) = \sum{G} Cg * exp(-G r)
where Cg are the plane-waves coefficients written in WAVECAR. As I understand it, the plane-waves are always orthogonal and you can always increase ENCUT
to increase the completeness of the plane-waves. I'm not sure if this answer your questions.
The algorithm implemented in my code and pymatgen are NOT based on that in WaveTrans, where the latter just use brute force summation over all the plane-waves to do the Fourier transform, while the former two codes use FFT which is significantly faster and efficient.
Best Qijing
It seems that for now, regarding your explanations and comments, I can't point out any further points that are not quite reasonable. Therefore, I can only say that perhaps we'll need to discuss it further when there are additional questions and clues.
BTW, I noticed the following description here:
I'm not sure if you have any understanding of the corresponding impact of the above-mentioned settings and modifications on the generated WAVRCAR file in a specific calculation.
Regards, Zhao
Suppose I would like to achieve the following purposes based on the wavefunction analysis from WAVRCAR:
I would like to know whether the method implemented in this package meets the above requirements.
See below for the related discussions: https://www.vasp.at/forum/viewtopic.php?t=18177
See the related implementation below, which is based on this package: https://github.com/SMTG-UCL/easyunfold/blob/main/easyunfold/wavecar.py
Regards, Zhao