Codes to play with Phonons, as output from Phonopy, in Julia.
Per atom energy-mode decomposition.
A work in progress.
These codes read a mesh.yaml from a Phonopy calculation (Gamma only, save the eigenvectors); and a
VASP POSCAR file on this structure, to collect coordinate and atom information.
Beware - Dragons!
-
First do a standard
Phonopycalculation pipeline, to get yourFORCE_SETSetc., then output the Eigenvectors to yourmesh.yaml. -
The animation part of this package assumes that the mode is at Gamma, but (touch wood), the Inverse Participation Ratio and Atomic decomposition by energy and displacement should also work when there's a complex phase factor, BUT THIS IS AS YET UNTESTED.
To generate a Gamma point Eigenvectors file, your Phonopy input should
contain something like:
DIM = 2 2 2
FC_SYMMETRY = 1
MP = 1 1 1
EIGENVECTORS=.TRUE.
Then take your POSCAR and mesh.yaml, put them in a suitable directory with
these codes, and then edit phonopy_projector.jl to do something useful with
them.
- 'Animated' .xyz files, with or without supercell expansion.
- ((I recommend
Pymolto visualise, withset grid_mode,1andshow spheres))
- ((I recommend
- Decomposition to individual atoms, norm of Energy or Displacement weighted phonon eigenvectors
- Decomposition to atom type, for generating %fractional contribution of structure to phonon modes
- Inverse Participation Ratio (IPR) of the mode by Energy and Displacement, as a localisation metric.
- 'Conflation' animation of multiple modes, with the relative harmonies being displayed
- Generates a synchronised audio-track 'warble' for the relative harmonies of the conflation: https://www.youtube.com/watch?v=7UoPgFJcRoI
- Symmetry / mode analysis
- Maybe with these exciting new 'distortion antisymmetry' ideas: http://dx.doi.org/10.1038/ncomms9818