principia_materia.phonon_id.anharmonic_interpolation module

class principia_materia.phonon_id.anharmonic_interpolation.AnharmincInterpolation(structure, tol=1e-06)

Bases: object

Interpolation of anharmonic phonon interaction coefficients.

This class will store PhiN of arbitrary order together and perform interpolation to arbitrary Q. And generate phonon interaction tensors in desired conventen & basis.

analytic_derivative_dynamic_matrix(Qpoints)

Analytical derivatives of the dynamical matrices wrt Q-points.

The short range part is calculated as as following.

\[\frac{\partial\hat D_{\mathbf{K}}}{\partial K_\alpha} = \sum_{\mathbf{y}} \imag T_\alpha e^{\imag \mathbf{K} \cdot \mathbf{y}\hat a} \hat \Phi_{\mathbf{y}}\]
property existing_orders
fd_derivative_dynamic_matrix(qpoints, amplitute=1e-05)

Derivative dynamic matrix using central finite difference method.

get_Dq2(qpoints)

Get second order dynamic matrices of input q-points.

Parameters:

qpoints (array of float or Fraction, shape(dim, ) or (1, dim) or (N, 1, dim)) – q-points to to compute dynamic matrices. The hidden q-points will be prepended, and Fourier transform will be executed.

get_DqN(Qpoints, order)

Get the DqN tensor of a given q at a given order.

get_Phi(order)

Get the PhiN of a given order.

get_phonons(qpoints, return_eigenvectors=True, units='THz')
group_velocity(qpoints, fd=False, amplitute=1e-05, tol=1e-05, units='THz')

Compute group velocity using either the analytic derivative or CFD.

Parameters:
  • qpoints (array of floats, shape(N, 3) or coordinate parse compatible format.) – Qpoints to evaluate group velocity at.

  • amplitute (float) – Displacement amplitute on qpoints.

  • tol (float) – Tolerance.

  • units (str) – Unit of phonon frequencies.

Returns:

gv – Group velocity.

Return type:

array of float, shape(len(qpoints), norbitals, 3)

heat_capacity(qpoints, temperature, phonon_units='eV', phonon_cutoff=None, tol=0.0001)

Mode heat capacity at given q-points and temperature.

Parameters:
  • qpoints (array of float, shape(nqpoints, 3)) – q-points to evaulate the mode heat capacity

  • temperature (float or array of float, shape(ntemp)) – temperature to evaulate the mode heat capacity

Returns:

cv – Mode heat capacity in units of eV/K.

Return type:

array of float, shape(nqpoints, ntemp, norbitals)

set_Phi(Phi, order)

Add a Phi of a given order.

set_dipole(epsilon, q_direction=None)
set_q_direction(q_direction=None)
principia_materia.phonon_id.anharmonic_interpolation.mode_heat_capacuty(frequencies, temperature, phonon_units='THz', phonon_cutoff=None, tol=0.0001)

Compute mode heat capacity from phonon freuqencies.

Parameters:
  • frequencies (array of float, shape(nqpoints, norbitals))

  • temperature (float or array of float, shape(ntemp))

Returns:

cv

Return type:

array of float, shape(nqpoints, ntemp, norbitals)