Phonons

Building the phonons object is the intermediate step between finishing your Finite Difference object, and initializing the Conductivity object.

API Reference

Methods

Phonons.pdos

Calculate the atom projected phonon density of states.

Attributes

Phonons.physical_mode

Calculate physical modes.

Phonons.participation_ratio

Calculates the participation ratio of each normal mode.

Phonons.bandwidth

Calculate the phonons bandwidth, the inverse of the lifetime, for each k point in k_points and each mode.

Phonons.isotopic_bandwidth

Calculate the isotopic bandwidth with Tamura perturbative formula.

Phonons.anharmonic_bandwidth

Calculate the phonons bandwidth, the inverse of the lifetime, for each k point in k_points and each mode.

Phonons.frequency

Calculate phonons frequency

Phonons.omega

Calculates the angular frequencies from the diagonalized dynamical matrix.

Phonons.velocity

Calculates the velocity using Hellmann-Feynman theorem.

Phonons.heat_capacity

Calculate the heat capacity for each k point in k_points and each mode. If classical, it returns the Boltzmann constant in J/K. If quantum it returns the derivative of the Bose-Einstein weighted by each phonons energy. .. math::.

Phonons.heat_capacity_2d

Calculate the generalized 2d heat capacity for each k point in k_points and each mode.

Phonons.population

Calculate the phonons population for each k point in k_points and each mode.

Phonons.phase_space

Calculate the 3-phonons-processes phase_space, for each k point in k_points and each mode.

Phonons.eigenvalues

Calculates the eigenvalues of the dynamical matrix in Thz^2.

Phonons.eigenvectors

Calculates the eigenvectors of the dynamical matrix.

class kaldo.phonons.Phonons(**kwargs)[source]

The Phonons object exposes all the phononic properties of a system by manipulation of the quantities passed into the ForceConstant object. The arguments passed in here reflect assumptions to be made about the macroscopic system e.g. the temperature, or whether the system is amorphous or a nanowire. The ForceConstants, and temperature are the only two required parameters, though we highly recommend the switch controlling whether to use quantum/classical statistics (is_classic) and the number of k-points to consider (kpts). For most users, you will not need to access any Phonon object functions directly , but only reference an attribute (e.g. Phonons.frequency). Please check out the examples for details on our recommendations for retrieving, and plotting data.

Parameters:
  • forceconstants (ForceConstants) – Contains all the information about the system and the derivatives of the potential energy.

  • temperature (float) – Defines the temperature of the simulation Units: K

  • is_classic (bool) – Specifies if the system is treated with classical or quantum statistics. Default: False

  • kpts ((int, int, int)) – Defines the number of k points to use to create the k mesh Default: (1, 1, 1)

  • min_frequency (float) – Ignores all phonons with frequency below min_frequency Units: Thz Default: None

  • max_frequency (float) – Ignores all phonons with frequency above max_frequency Units: THz Default: None

  • third_bandwidth (float) – Defines the width of the energy conservation smearing in the phonons scattering calculation. If None the width is calculated dynamically. Otherwise the input value corresponds to the width. Units: THz Default: None

  • broadening_shape (string) – Defines the algorithm to use for line-broadening when enforcing energy conservation rules for three-phonon scattering. Options: gauss, lorentz and triangle. Default: gauss

  • folder (string) – Specifies where to store the data files. Default: output.

  • storage (string) – Defines the strategy used to store observables. The default strategy stores formatted text files for most harmonic properties but relies on numpy arrays for large arrays like the gamma tensor. The memory option doesn’t generate any output except what is printed in your script. Options: default, formatted, numpy, memory, hdf5 Default: ‘formatted’

  • grid_type (string) – Specifies whether the atoms in the replicated system were repeated using a C-like index ordering which changes the last axis the fastest or FORTRAN-like index ordering which changes the first index fastest. Options: ‘C’, ‘F’ Default: ‘C’

  • is_balanced (bool) – Enforce detailed balance when calculating anharmonic properties. Useful for simulations where it may be difficult to get a sufficiently dense k-point grid. Default: False

  • is_unfolding (bool) – If the second order force constants need to be unfolded like in P. B. Allen et al., Phys. Rev. B 87, 085322 (2013) set this to True. Default: False

  • g_factor ((n_atoms) array , optional) – It contains the isotopic g factor for each atom of the unit cell Default: None

  • include_isotopes (bool, optional.) – Defines if you want to include isotopic scattering bandwidths. Default is False.

  • iso_speed_up (bool, optional.) – Defines if you want to truncate the energy-conservation delta in the isotopic scattering computation. Default is True.

Return type:

Phonons Object

Attributes:
anharmonic_bandwidth

Calculate the phonons bandwidth, the inverse of the lifetime, for each k point in k_points and each mode.

bandwidth

Calculate the phonons bandwidth, the inverse of the lifetime, for each k point in k_points and each mode.

eigenvalues

Calculates the eigenvalues of the dynamical matrix in Thz^2.

eigenvectors

Calculates the eigenvectors of the dynamical matrix.

frequency

Calculate phonons frequency

heat_capacity

Calculate the heat capacity for each k point in k_points and each mode.

heat_capacity_2d

Calculate the generalized 2d heat capacity for each k point in k_points and each mode.

isotopic_bandwidth

Calculate the isotopic bandwidth with Tamura perturbative formula.

omega

Calculates the angular frequencies from the diagonalized dynamical matrix.

participation_ratio

Calculates the participation ratio of each normal mode.

phase_space

Calculate the 3-phonons-processes phase_space, for each k point in k_points and each mode.

physical_mode

Calculate physical modes.

population

Calculate the phonons population for each k point in k_points and each mode.

velocity

Calculates the velocity using Hellmann-Feynman theorem.

Methods

pdos([p_atoms, direction, bandwidth, n_points])

Calculate the atom projected phonon density of states.