Beispiel #1
0
 def __init__(self,
              phonon,
              phonon_plus,
              phonon_minus,
              mesh,
              shift=None,
              is_time_reversal=True,
              is_gamma_center=False,
              is_mesh_symmetry=True):
     self._phonon = phonon
     self._mesh = np.array(mesh, dtype='intc')
     self._factor = phonon.get_unit_conversion_factor(),
     primitive = phonon.get_primitive()
     primitive_symmetry = phonon.get_primitive_symmetry()
     gruneisen = Gruneisen(phonon.get_dynamical_matrix(),
                           phonon_plus.get_dynamical_matrix(),
                           phonon_minus.get_dynamical_matrix())
     self._qpoints, self._weights = get_qpoints(
         self._mesh,
         np.linalg.inv(primitive.get_cell()),
         q_mesh_shift=shift,
         is_time_reversal=is_time_reversal,
         is_gamma_center=is_gamma_center,
         rotations=primitive_symmetry.get_pointgroup_operations(),
         is_mesh_symmetry=is_mesh_symmetry)
     gruneisen.set_qpoints(self._qpoints)
     self._gamma = gruneisen.get_gruneisen()
     self._gamma_prime = gruneisen.get_gamma_prime()
     self._eigenvalues = gruneisen.get_eigenvalues()
     self._frequencies = np.sqrt(
         abs(self._eigenvalues)) * np.sign(self._eigenvalues) * self._factor