You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We acknowledge "reviewer 2" for this feature request. The wording is our own.
Moving beyond harmonic lattice dynamics, there is significant research interest in the effect of finite phonon lifetimes, which can be described by third-order force constants within Boltzmann transport theory. These limit thermal lattice conductivity, an important property for thermoelectric materials [where low k_latt is preferred] and power electronics [where high k_latt is preferred]. They also lead to Lorentzian line broadening which can be observed in neutron scattering spectra separately from the instrumental resolution limits.
The phonon linewidth is a property that varies along each phonon band. Currently Euphonic allows per-mode broadening parameters to be supplied when creating density-of-states spectra from QpointPhononModes, for adaptive broadening purposes. An equivalent feature does not exist for creating spectra from StructureFactor, which would be the natural place to implement Lorentzian lifetime broadening. By providing similar broadening parameters here it would be possible to create linewidth-broadened spectra through the Python API.
Some practical issues would remain in how the data is actually collected. As far as I can tell, Phono3py prefers to calculate this property on Monkhorst-Pack meshes and e.g. the thermoplotter package interpolates per-band data from this mesh. That could lead to ambiguities regarding degenerate and crossing bands? A very nice solution would be to use Brille for interpolation, but this relies on a special mesh of input q-points which may not be possible using Phono3py. Perhaps with further investigation there might be a way of doing it within the Phono3py API...
So there are two packages of work to implement this:
Support rendering of phonon linewidths in core Euphonic API by adding Lorentzian broadening options to StructureFactor.calculate_sqw_map and StructureFactor.calculate_1d_average.
Explore practical workflows for extracting this information from appropriate codes (most likely Phono3py or ShenBTE)
The text was updated successfully, but these errors were encountered:
We acknowledge "reviewer 2" for this feature request. The wording is our own.
Moving beyond harmonic lattice dynamics, there is significant research interest in the effect of finite phonon lifetimes, which can be described by third-order force constants within Boltzmann transport theory. These limit thermal lattice conductivity, an important property for thermoelectric materials [where low k_latt is preferred] and power electronics [where high k_latt is preferred]. They also lead to Lorentzian line broadening which can be observed in neutron scattering spectra separately from the instrumental resolution limits.
The phonon linewidth is a property that varies along each phonon band. Currently Euphonic allows per-mode broadening parameters to be supplied when creating density-of-states spectra from QpointPhononModes, for adaptive broadening purposes. An equivalent feature does not exist for creating spectra from StructureFactor, which would be the natural place to implement Lorentzian lifetime broadening. By providing similar broadening parameters here it would be possible to create linewidth-broadened spectra through the Python API.
Some practical issues would remain in how the data is actually collected. As far as I can tell, Phono3py prefers to calculate this property on Monkhorst-Pack meshes and e.g. the thermoplotter package interpolates per-band data from this mesh. That could lead to ambiguities regarding degenerate and crossing bands? A very nice solution would be to use Brille for interpolation, but this relies on a special mesh of input q-points which may not be possible using Phono3py. Perhaps with further investigation there might be a way of doing it within the Phono3py API...
So there are two packages of work to implement this:
StructureFactor.calculate_sqw_map
andStructureFactor.calculate_1d_average
.The text was updated successfully, but these errors were encountered: