pace-neutrons / Euphonic

Euphonic is a Python package for efficient simulation of phonon bandstructures, density of states and inelastic neutron scattering intensities from force constants.
GNU General Public License v3.0
28 stars 11 forks source link

Apply symmetry to dynamical matrix #9

Closed rebeccafair closed 3 years ago

rebeccafair commented 4 years ago

Currently Euphonic doesn't symmetrise the dynamical matrix under the crystal symmetry operations whereas CASTEP does, this results in some small frequency discrepancies and Euphonic doesn't always capture the degeneracies exactly. For Euphonic's purposes, do these discrepancies matter and is it worth the development effort/increase in code complexity?

Example frequencies at [0., 0., 0.5] for Quartz:

From CASTEP: >>> pdata.freqs <Quantity([[ 5.87738425 15.41479647 15.41479647 20.61992589 22.73315616 22.73315616 25.12355695 32.59943397 32.59943397 47.7622586 49.764678 51.9832326 51.9832326 55.98022357 55.98022357 70.61364014 70.61364014 96.79265198 97.54977511 98.66059229 98.66059229 131.95164457 134.10088283 134.10088283 137.42869576 150.66361859 150.66361859[], 'millielectron_volt'

From Euphonic: >>> idata.freqs <Quantity([[ 5.87706895 15.40460956 15.42495252 20.61991892 22.73012206 22.73608845 25.12365803 32.57168499 32.627177 47.7622533 49.76467354 51.98059593 51.98585986 55.97627188 55.98417621 70.61243832 70.61483279 96.79264426 97.54976619 98.66044511 98.66072156 131.95163212 134.10006038 134.10168194 137.42868326 150.66357259 150.66363726]], 'millielectron_volt')>

rebeccafair commented 4 years ago

This would have limited effect on the results and is currently not a priority

rebeccafair commented 3 years ago

Closing for now as there is no realistic need/time to work on this