Phonon band structure using Phoebe #172
-
Dear developers, Thank you very much for the great code! I'm trying to use phoebe to estimate the phonon transport behavior. Currently I'm following the instruction on https://phoebe.readthedocs.io/en/develop/tutorials/mlPhononTransport.html and try Si as a first example. With the python scripts, I can generate the IFCs as fc2.hdf5 and fc3.hdf5 files. However, when I use phoebe to generate the phonon band structure, incorrect results are obtained. It seems that some phonon branches show imaginal frequencies. The input files and the obtained phonon dispersion can be found in Could you please advise what I can done wrong? Thanks. Looking forward to your suggestions. Regards, |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 15 replies
-
Hi Gang, We're glad you're enjoying Phoebe, and thanks for reaching out about this! Your Phoebe input file (phband.phoebe) looks correct for the phonon bands app calculation, so I don't think you have any issue with the actual Phoebe calculation. The problem is likely coming from the force constants. If your potential isn't of a good quality, the force constants could come out quite wrong, and then of course you could see an incorrect phonon dispersion. Classical Tersoff potentials may not work well enough for accurate phonon calculations, though I see here the regular Tersoff Si potential gets the phonons quite wrong, but they are stable. Some suggestions to diagnose the issue:
Let me know what you learn after checking a few of these, and we can think about what else to try. |
Beta Was this translation helpful? Give feedback.
-
Also, it would be great to see a phonon dispersion on the full band path of silicon -- I'd like to see how the dispersion matches up to expected results. |
Beta Was this translation helpful? Give feedback.
-
Hi Gang, Thank you for this detailed, thorough report of the issue -- it's very helpful to see this. I agree, it's definitely not the potential. @YuuuXie, who replied in a comment and is the author of the tutorial, had some thoughts on what might cause the issue. Indeed, it may be some difference in the behavior of phonopy and phono3py. I'm going to do some tests for myself and will get back to you soon with either more questions or a fix for this. Thanks again for reporting the issue, we really appreciate it. |
Beta Was this translation helpful? Give feedback.
-
Hi Gang, Thanks to your helpful comments, I was able to pin down the issue! We really appreciate that you reported this. The reason it works when the fc2 and fc3 supercells are the same is because the
We were previously writing the primitive cell to supercell mapping for the fc3s to fc2.hdf5. Changing that line to Additionally, on your question about validation vs other codes -- yes, we've checked that our lifetime and transport properties come out equivalently to ShengBTE and Phono3py in the past. An example of a comparison for GaN lifetimes between Phoebe (purple points) and Phono3py (black points) is attached (note, they aren't exactly the same in large part because they're done on different meshes, to make it easier to see that the Phono3py points sit on top of the Phoebe ones. Some additional small things, like ASR choice/smearing aren't identical in this particular comparison example, either). I'm going to also double check that the fc2.hdf5 and fc3.hdf5 files generated by this script produce a thermal conductivity which matches the command line use of Phono3py (as in the Phonon Transport tutorial on the Phoebe website). I feel certain this will be fine, but I'll do it out of an abundance of caution. Thank you again for reporting this in such a helpful and detailed manner, and do let us know if you need any other help using Phoebe. |
Beta Was this translation helpful? Give feedback.
-
Hi Jenny, In addition to the above question, I'm still struggling in two problems. First is about the parallel computation of the forces. I don't want to take the mpi/omp parallelism of LAMMPS. Instead, I'd like to scatter the calculation of the displaced configurations to different subprocesses, which can achieve ideal parallelism in principle. Meanwhile, I like your use of tqdm. Now I'm trying to use the multiprocessing module in pathos lib. Do you have any suggestion on the better realization? Second is about the compilation of Phoebe on GPGPU. I prefer Kokkos acceleration, however the compilation fails when I use the Nvidia hpcsdk + intel MKL. Can you suggest the best compilation environment? I will try first and post more details if I still fail. Regards, |
Beta Was this translation helpful? Give feedback.
Hi Gang,
Thanks to your helpful comments, I was able to pin down the issue! We really appreciate that you reported this.
The reason it works when the fc2 and fc3 supercells are the same is because the
write_fc2_to_hdf5
block of code needs to be changed to:We were previously writing the primitive cell to supercell mapping for the fc3s to fc2.hdf5. Changing that line to
ph3.phonon_primitive.p2s_map
in thewrite_fc2_to_hdf5
function instead should fix the problem -- please let me know ASAP if it doesn't. I'll also update the tutorial accordingly!Ad…