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
def __init__(self, phonon, phonon_plus, phonon_minus, mesh, grid_shift=None, is_gamma_center=False, symprec=1e-5): self._mesh = mesh self._factor = phonon.get_unit_conversion_factor(), primitive = phonon.get_primitive() 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, primitive, grid_shift, is_gamma_center, symprec=symprec) 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
def __init__(self, phonon, phonon_plus, phonon_minus, paths, num_points): self._num_points = num_points primitive = phonon.get_primitive() gruneisen = Gruneisen(phonon.get_dynamical_matrix(), phonon_plus.get_dynamical_matrix(), phonon_minus.get_dynamical_matrix(), is_band_connection=True) rec_vectors = np.linalg.inv(primitive.get_cell()) factor = phonon.get_unit_conversion_factor(), distance_shift = 0.0 self._paths = [] for path in paths: qpoints, distances = _get_band_qpoints(path[0], path[1], rec_vectors, num_points=num_points) gruneisen.set_qpoints(qpoints) gamma = gruneisen.get_gruneisen() eigenvalues = gruneisen.get_eigenvalues() frequencies = np.sqrt( abs(eigenvalues)) * np.sign(eigenvalues) * factor distances_with_shift = distances + distance_shift self._paths.append([ qpoints, distances, gamma, eigenvalues, frequencies, distances_with_shift ]) distance_shift = distances_with_shift[-1]
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
def __init__(self, phonon, phonon_plus, phonon_minus, mesh, grid_shift=None, is_gamma_center=False, symprec=1e-5): self._mesh = mesh self._factor = phonon.get_unit_conversion_factor(), primitive = phonon.get_primitive() 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, primitive, grid_shift, is_gamma_center, symprec=symprec) 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
def __init__(self, phonon, phonon_plus, phonon_minus, paths, num_points): self._num_points = num_points primitive = phonon.get_primitive() 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(), is_band_connection=True) rec_vectors = np.linalg.inv(primitive.get_cell()) factor = phonon.get_unit_conversion_factor(), distance_shift = 0.0 self._paths = [] for path in paths: qpoints, distances = _get_band_qpoints(path[0], path[1], rec_vectors, num_points=num_points) gruneisen.set_qpoints(qpoints) gamma = gruneisen.get_gruneisen() eigenvalues = gruneisen.get_eigenvalues() frequencies = np.sqrt(abs(eigenvalues)) * np.sign(eigenvalues) * factor distances_with_shift = distances + distance_shift self._paths.append([qpoints, distances, gamma, eigenvalues, frequencies, distances_with_shift]) distance_shift = distances_with_shift[-1]