Example #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._mesh = mesh
     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(),
                           primitive.get_volume(),
                           phonon_plus.get_primitive().get_volume(),
                           phonon_minus.get_primitive().get_volume())
     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._eigenvalues = gruneisen.get_eigenvalues()
     self._frequencies = np.sqrt(
         abs(self._eigenvalues)) * np.sign(self._eigenvalues) * self._factor
Example #2
0
 def set_mesh(self, mesh):
     rec_lat = np.linalg.inv(self._primitive.get_cell())
     self._qpoints, self._weights = get_qpoints(
         mesh,
         rec_lat,
         is_gamma_center=True,
         rotations=self._point_group_opts)
Example #3
0
 def __init__(
     self,
     dynmat,
     dynmat_plus,
     dynmat_minus,
     mesh,
     delta_strain=None,
     shift=None,
     is_time_reversal=True,
     is_gamma_center=False,
     is_mesh_symmetry=True,
     rotations=None,  # Point group operations in real space
     factor=VaspToTHz,
 ):
     """Init method."""
     super().__init__(dynmat,
                      dynmat_plus,
                      dynmat_minus,
                      delta_strain=delta_strain)
     self._mesh = np.array(mesh, dtype="intc")
     self._factor = factor
     self._cell = dynmat.primitive
     self._qpoints, self._weights = get_qpoints(
         self._mesh,
         np.linalg.inv(self._cell.cell),
         q_mesh_shift=shift,
         is_time_reversal=is_time_reversal,
         is_gamma_center=is_gamma_center,
         rotations=rotations,
         is_mesh_symmetry=is_mesh_symmetry,
     )
     self.set_qpoints(self._qpoints)
     self._gamma = self._gruneisen
     self._frequencies = (np.sqrt(abs(self._eigenvalues)) *
                          np.sign(self._eigenvalues) * self._factor)
Example #4
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
Example #5
0
 def __init__(self,
              dynmat,
              dynmat_plus,
              dynmat_minus,
              mesh,
              delta_strain=None,
              shift=None,
              is_time_reversal=True,
              is_gamma_center=False,
              is_mesh_symmetry=True,
              rotations=None, # Point group operations in real space
              factor=VaspToTHz):
     GruneisenBase.__init__(self,
                            dynmat,
                            dynmat_plus,
                            dynmat_minus,
                            delta_strain=delta_strain)
     self._mesh = np.array(mesh, dtype='intc')
     self._factor = factor
     primitive = dynmat.get_primitive()
     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=rotations,
         is_mesh_symmetry=is_mesh_symmetry)
     self.set_qpoints(self._qpoints)
     self._gamma = self._gruneisen
     self._frequencies = np.sqrt(
         abs(self._eigenvalues)) * np.sign(self._eigenvalues) * self._factor
Example #6
0
 def set_sampling_mesh(self, mesh, shift=None, is_gamma_center=False):
     self._run_mode = 'mesh'
     self._mesh = mesh
     self._qpoints, self._weights = get_qpoints(
         self._mesh,
         np.linalg.inv(self._pcell.get_cell()),
         q_mesh_shift=shift,
         is_gamma_center=is_gamma_center)
Example #7
0
 def set_sampling_mesh(self,
                       mesh,
                       shift=None,
                       is_gamma_center=False):
     self._run_mode = 'mesh'
     self._mesh = mesh
     self._qpoints, self._weights = get_qpoints(
         self._mesh,
         np.linalg.inv(self._pcell.get_cell()),
         q_mesh_shift=shift,
         is_gamma_center=is_gamma_center)
Example #8
0
 def set_sampling_mesh(self,
                       mesh,
                       rotations=None,
                       shift=None,
                       is_gamma_center=False):
     self._run_mode = 'mesh'
     self._mesh = np.array(mesh, dtype='intc')
     self._qpoints, self._weights = get_qpoints(
         self._mesh,
         np.linalg.inv(self._pcell.get_cell()),
         q_mesh_shift=shift,
         is_gamma_center=is_gamma_center,
         rotations=rotations)
Example #9
0
 def set_sampling_mesh(
     self, mesh, rotations=None, shift=None, is_gamma_center=False
 ):
     """Set sampling mesh."""
     self._run_mode = "mesh"
     self._mesh = np.array(mesh, dtype="intc")
     self._qpoints, self._weights = get_qpoints(
         self._mesh,
         np.linalg.inv(self._pcell.cell),
         q_mesh_shift=shift,
         is_gamma_center=is_gamma_center,
         rotations=rotations,
     )
Example #10
0
 def set_mesh(self, mesh):
     rec_lat = np.linalg.inv(self._primitive.get_cell())
     self._qpoints, self._weights = get_qpoints(
         mesh, rec_lat, is_gamma_center=True, rotations=self._point_group_opts
     )