-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PhononWork -> generating too many DFPT calculations #236
Comments
As an FYI, I noticed the 24 comes from the number of perturbations required on directions and atoms:
|
These input files solve the DFPT equations for different perturbations.
|
Yes so I see, now. It is a different direction for the response functions. So the odd thing and I guess why I was confused: the input files are the exact same on startup. Then I think after they begin to run they change? I was using diff t0/run.abi t1/run.abi and they were the same until I started t0, which I found odd. (At least I'm pretty sure or I wouldn't have made this post ;)). As an aside, I may also need the eigenvectors for the phonon frequencies, from what I saw in the code there is no easy connection via abipy to get this, correct me if I'm wrong. Thanks! |
Not really. The input files with the different DFPT perturbations are generated at the beginning when you generate the flow.
phonon frequencies and displacement vectors are stored in the PhononBands object To build a PhononBands instance, we usually start from a DdbFile object and then we call one of the To get the ph displacement for a single q-point, I would use the following script: #!/usr/bin/env python
from abipy.abilab import abiopen
with abiopen("trf2_3_DDB") as ddb:
# ifcflag 0 means that no Fourier interpolation is performed in anaddb
# hence the q-point must belong to the IBZ used in the DFPT calculation.
# ifcflag 1 activates the Fourier interpolation of the dynamical matrix.
# In this case, one can pass an arbitrary q-point to obtain interpolated quantities.
phbands = ddb.anaget_phmodes_at_qpoint(qpoint=[0.0, 0, 0], ifcflag=0)
print("Ph frequencies in eV", phbands.phfreqs)
#phdispl_cart: [nqpt, 3*natom, 3*natom] array with displacement in Cartesian coordinates in Angstrom.
# The last dimension stores the cartesian components.
# This is an array of complex numbers
mode = 0
print(f"phdispl_cart for phonon mode {mode}:\n", phbands.phdispl_cart[0, mode]) |
Okay, cool. Thanks for helping out! |
Hello,
Is anyone familiar with the PhononWork calculations? From what I understand, and from what I could decipher from the code, there seems to be an issue with generating the correct number of calculations (perhaps at the qpoint steps).
When looking at just qpt = (0,0,0):
I was trying a surface of Silicon in the 2x1 reconstruction and when I generate the PhononWork DFPT steps it generates 24 calculations, all of which have the same input...
I also had the same issue with crystalline cubic Si. It generated two tasks with the same input for DFPT, and when analyzed, each task had the same phonon frequencies (of course).
The text was updated successfully, but these errors were encountered: