principia_materia.phonon_id.conductivity module
- class principia_materia.phonon_id.conductivity.Conductivity(structure, mesh, pg, tol=1e-06)
- Bases: - object- Calculate thermal conductivity - gamma_tetra(qpoint, temperature, frequencies, phonon_units='THz', units='THz', phonon_cutoff=None, tol=1e-06, high_temp_limit=False)
- Use the tetrahedron method to calculate the imaginary self energy (ISE). - This version is mostly implemented in fortran. - Parameters:
- qpoint (array of float or Fraction, shape(3, ); or coordinate_parse compatible format) – The Q-vector to calculate ISE. 
- temperature (float of array of float, shape(ntemp, )) – The temperature(s) to calculate ISE. 
- frequencies (array of float, shape(nbin, )) – The frequencies to evaluate ISE at. 
- phonon_units (str, default "THz", optional) – The unit of phonon frequencies. 
- units (str, default "THz", optional) – The unit of ISE. 
- phonon_cutoff (None or float, default None, optional) – The phonon cutoff frequencies, all frequencies below cutoff are replaced with the value of cutoff. If omitted, the value of tol is used. 
- tol (float, default 1.0E-6, optional) – The error tolerence. 
 
- Returns:
- gammas – The ISE of given q at all given temperatures at each frequencies. 
- Return type:
- array of float, shape(ntemp, nbin, self.structure.norbitals) 
 
 - gamma_tetra_at_phonon(qpoint, temperature, phonon_units='THz', units='THz', tol=1e-06, phonon_cutoff=None, high_temp_limit=False)
- Calculate imaginary self energy at the phonon frequencies at the given q. - Parameters:
- qpoint (array of float or Fraction, shape(3, ); or coordinate_parse compatible format) – The Q-vector to calculate ISE. 
- temperature (float of array of float, shape(ntemp, )) – The temperature(s) to calculate ISE. 
- phonon_units (str, default "THz", optional) – The unit of phonon frequencies. 
- units (str, default "THz", optional) – The unit of ISE. 
- phonon_cutoff (None or float, default None, optional) – The phonon cutoff frequencies, all frequencies below cutoff are replaced with the value of cutoff. If omitted, the value of tol is used. 
- tol (float, default 1.0E-6, optional) – The error tolerence. 
 
- Returns:
- gammas – The ISE of given q at all given temperatures. 
- Return type:
- array of float, shape(ntemp, self.structure.norbitals) 
 
 - gamma_tetra_grid(temperature, frequencies=None, grid_qvecs=None, phonon_units='THz', units='THz', debug=False, phonon_cutoff=None, tol=1e-06, return_phonon=False, return_eigenvectors=False)
- Use the tetrahedron method to calculate the imaginary self energy. - This version is set to take advantage of the grid and calculate ISE of the grid. - Parameters:
- temperature (float of array of float, shape(ntemp, )) – The temperature(s) to calculate ISE. 
- frequencies (array of float, shape(nbin, )) – The frequencies to evaluate ISE at. 
- grid_qves (array of float or Fraction, shape(3, ) or shape(N, 3); or coordinate_parse compatible format) – A subset of Q-vectors on the grid the calculate ISE at. 
- phonon_units (str, default "THz", optional) – The unit of phonon frequencies. 
- units (str, default "THz", optional) – The unit of ISE. 
- debug (bool, default False, optional) – A debug flag. 
- phonon_cutoff (None or float, default None, optional) – The phonon cutoff frequencies, all frequencies below cutoff are replaced with the value of cutoff. If omitted, the value of tol is used. 
- tol (float, default 1.0E-6, optional) – The error tolerence. 
- return_phonon (bool, defult False, optional) – Whether to return phonon frequencies. 
- return_eigenvectors (bool, default False, optional) – Whether to return phonon eigenvectors. 
 
- Returns:
- gammas (array of float) – (if frequencies is None: shape(N, ntemp, self.structure.norbitals)) - The ISE of given q at all given temperatures. - (if frequencies is not None: shape(N, ntemp, nbin, self.structure.norbitals)) - The ISE of given q at all given temperatures at each frequencies. 
- phonon_frequencies (array of float, shape(N, self.structure.norbitals)) – (if return_phonon == True) - The phonon frequencies of Q_vectors on the grid. If grid_qvecs is not None, the phonon frequencies of the grid_qvecs will be returned. 
- eigenvectors (array of complex, shape(N, self.structure.norbitals, self.structure.norbitals)) – (if return_eigenvectors == True) - The phonon eigenvectors of Q_vectors on the grid. If grid_qvecs is not None, the phonon eigenvectors of the grid_qvecs will be returned. 
 
 
 - has_Phi_order(orders)
 - scattering_rate_boundary(temperature, boundary, qpoints=None, phonon_cutoff=None, tol=0.0001)
 - set_Phi(Phi, order, tol=1e-05)
 - set_dipole(epsilon, q_direction=None)
 - thermal_conductivity_LBTE(temperature, phonon_cutoff=None, debug=False, tol=1e-06)
- The implementation follows paper by Chaput, Phys. Rev. Lett. 110, 265506 (2013). It is basically identical to the paper by Fugallo, et al. Phys. Rev. B 88, 045430 (2013), apart from the latter opting to use an iterative approach instead of solving it directly. - Returns:
- kappa 
- Return type:
- array of float, shape(len(qpoints), ntemp, norbitals, 3, 3) 
 
 - thermal_conductivity_RTA(temperature, qpoints=None, phonon_cutoff=None, tol=1e-06)
- Returns:
- mode_kappa (array of float, shape(ntemp, len(qpoints), norbitals, 3, 3)) 
- kappa (array of float, shape(ntemp, 3, 3)) 
 
 
 - two_phonon_dos(q, temperature, frequencies=None, include_phonons=False, units='THz', phonon_cutoff=None, tol=1e-06)
- Two-phonon density of states. - Parameters:
- q (array of float or Fraction, shape(3, ); or coordinate_parse compatible format) – The Q-vector to calculate ISE. 
- temperature (float of array of float, shape(ntemp, )) – The temperature(s). 
- frequencies (array of float, shape(nbin, )) – The frequencies to evaluate two-phonon DOS at. 
- include_phonons (bool, optinoal, default to False) – Whether or not include the product of phonon frequencies in the coefficients. 
- phonon_cutoff (None or float, default None, optional) – The phonon cutoff frequencies, all frequencies below cutoff are replaced with the value of cutoff. If omitted, the value of tol is used. This would also cutoff all imaginary phonons. 
- tol (float, default 1.0E-6, optional) – The error tolerence. 
 
- Returns:
- two_phonon_dos – Two-phonon density of states of the phonon q, in 2 parts. 
- Return type:
- array of float, shape(2, ntemp, len(frequencies)) 
 
 
- principia_materia.phonon_id.conductivity.bedist(freq, temperature, freq_units='THz', tol=0.0001)
- Bose-Einstein distribution - Parameters:
- freq (float of array of float, shape(N, )) – The frequencies to evaluate Bose-Einstein distribution. 
- freq_units (str, default "THz") – The unit of frequencies. 
- temperature (float or array of float, shape(ntemp, )) – Temperature(s) in unit of K. 
- tol (float) – The tolerence for low temperature limit. 
 
- Returns:
- bedist – The Bose-Einstein distribution 
- Return type:
- float or array of float, shape(ntemp, N) 
 
- principia_materia.phonon_id.conductivity.reciprocal(arr, tol=1e-06, fill_zero=0.0)