ENH: VASP Frequency Results Handling
Wanted to get the results of an IBRION=5
calculation, i.e. a phonon/frequency run. I propose two new functions for the VASP calculator:
-
read_vib_modes
to return tuples of eigenvalues and eigenvectors (can also be complex eigenvalues) -
get_vibrations
to get a representation of the vibrations by displacing coordinates along the normal modes.
While writing the test I stumbled upon a remaining open file (the sorting file), so I changed that. Don't see why this should remain open.
This collides with !1274, so if depending on what is merged first a bit of work is needed. Happy to do that though. If helpful, I can also try to incorporate the changes of !1274 and write some tests.
Happy to get feedback on this.
Merge request reports
Activity
added 46 commits
-
6905a9c8...ad110ab2 - 45 commits from branch
ase:master
- 587c9f41 - Merge branch 'master' into vasp-freq
-
6905a9c8...ad110ab2 - 45 commits from branch
- Resolved by Adam Jackson
Just found the new
VibrationsData
Class. It seems more reasonable to replaceget_vibrations
with a version that returns aVibrationsData
object than to re-implement this here... Switching back to draft.
added 2 commits
added 2 commits
- Resolved by Adam Jackson
Ok, I now added
get_vibrations
to the VASP calculator to return aVibrationsData
object that is built using the vasprun.xml. It supports some constraints (VibrationsData
only supports fully fixed atoms, so that is a limitation compared to VASP, if the VASP calculation was started manually).I added a test, that tests the existing
read_vib_freq
(from the OUTCAR) against the new function.Since VASP6 changes the content of the vasprun.xml I had some trouble, but think I figured it out in the end.
Added documentation and enabled documentation of the
VibrationsData
, since this was missing in my opinion anyhow.The clash with !1274 remains, but I guess it is out of date and needs work. If I find the time I might do this later.
Happy to hear your opinion.
- Resolved by Patrick Melix
Mmmh, no idea how I could fix the lint problem, I tried asserting that it is not None...
ase/calculators/vasp/vasp.py:1208: error: Unsupported target for indexed assignment ("Optional[Any]") ase/calculators/vasp/vasp.py:1217: error: Unsupported operand types for * ("None" and "float") ase/calculators/vasp/vasp.py:1217: note: Left operand is of type "Optional[Any]"
added 71 commits
-
a0d1d2ec...51aaa4ac - 69 commits from branch
ase:master
- 852f9ce2 - Merge branch 'master' into vasp-freq
- a5476a4b - insert assert
-
a0d1d2ec...51aaa4ac - 69 commits from branch
assigned to @ajjackson
- Resolved by Patrick Melix
- Resolved by Patrick Melix
- Resolved by Patrick Melix
- Resolved by Adam Jackson