def _set_triplets(self): if self._is_nosym: if self._log_level: print "Triplets at q without considering symmetry" sys.stdout.flush() (self._triplets_at_q, self._weights_at_q, self._grid_address, self._bz_map, map_triplets, map_q) = get_nosym_triplets_at_q( self._grid_point, self._mesh, self._reciprocal_lattice, with_bz_map=True) else: (self._triplets_at_q, self._weights_at_q, self._grid_address, self._bz_map, map_triplets, map_q) = get_triplets_at_q( self._grid_point, self._mesh, self._symmetry.get_pointgroup_operations(), self._reciprocal_lattice)
def _set_triplets(self): primitive_lattice = self._primitive.get_cell() if self._is_nosym: if self._log_level: print "Triplets at q without considering symmetry" sys.stdout.flush() (self._triplets_at_q, self._weights_at_q, self._grid_address, self._bz_map, map_triplets, map_q) = get_nosym_triplets_at_q( self._grid_point, self._mesh, primitive_lattice) else: (self._triplets_at_q, self._weights_at_q, self._grid_address, self._bz_map, map_q) = get_triplets_at_q( self._grid_point, self._mesh, self._symmetry.get_pointgroup_operations(), primitive_lattice)
def _set_triplets(self): if not self._is_mesh_symmetry: if self._log_level: print("Triplets at q without considering symmetry") sys.stdout.flush() (self._triplets_at_q, self._weights_at_q, self._grid_address, self._bz_map, map_triplets, map_q) = get_nosym_triplets_at_q( self._grid_point, self._mesh, self._reciprocal_lattice, with_bz_map=True) else: (self._triplets_at_q, self._weights_at_q, self._grid_address, self._bz_map, map_triplets, map_q) = get_triplets_at_q( self._grid_point, self._mesh, self._symmetry.get_pointgroup_operations(), self._reciprocal_lattice)
def set_grid_point(self, grid_point, stores_triplets_map=False): reciprocal_lattice = np.linalg.inv(self._primitive.get_cell()) if not self._is_mesh_symmetry: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q) = get_nosym_triplets_at_q( grid_point, self._mesh, reciprocal_lattice, stores_triplets_map=stores_triplets_map) else: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q)= get_triplets_at_q( grid_point, self._mesh, self._symmetry.get_pointgroup_operations(), reciprocal_lattice, stores_triplets_map=stores_triplets_map) for triplet in triplets_at_q: sum_q = (grid_address[triplet]).sum(axis=0) if (sum_q % self._mesh != 0).any(): print("============= Warning ==================") print("%s" % triplet) for tp in triplet: print("%s %s" % (grid_address[tp], np.linalg.norm( np.dot(reciprocal_lattice, grid_address[tp] / self._mesh.astype('double'))))) print("%s" % sum_q) print("============= Warning ==================") self._grid_point = grid_point self._triplets_at_q = triplets_at_q self._weights_at_q = weights_at_q self._triplets_map_at_q = triplets_map_at_q self._grid_address = grid_address self._bz_map = bz_map self._ir_map_at_q = ir_map_at_q self.set_phonons(self._triplets_at_q.ravel())
def set_grid_point(self, grid_point, stores_triplets_map=False): reciprocal_lattice = np.linalg.inv(self._primitive.get_cell()) if self._is_nosym: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q) = get_nosym_triplets_at_q( grid_point, self._mesh, reciprocal_lattice, stores_triplets_map=stores_triplets_map) else: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q)= get_triplets_at_q( grid_point, self._mesh, self._symmetry.get_pointgroup_operations(), reciprocal_lattice, stores_triplets_map=stores_triplets_map) for triplet in triplets_at_q: sum_q = (grid_address[triplet]).sum(axis=0) if (sum_q % self._mesh != 0).any(): print "============= Warning ==================" print triplet for tp in triplet: print grid_address[tp], print np.linalg.norm( np.dot(reciprocal_lattice, grid_address[tp] / self._mesh)) print sum_q print "============= Warning ==================" self._triplets_at_q = triplets_at_q self._weights_at_q = weights_at_q self._triplets_map_at_q = triplets_map_at_q self._grid_address = grid_address self._bz_map = bz_map self._ir_map_at_q = ir_map_at_q
def set_grid_point(self, grid_point, stores_triplets_map=False): reciprocal_lattice = np.linalg.inv(self._primitive.get_cell()) if not self._is_mesh_symmetry: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q) = get_nosym_triplets_at_q( grid_point, self._mesh, reciprocal_lattice, stores_triplets_map=stores_triplets_map) else: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q) = get_triplets_at_q( grid_point, self._mesh, self._symmetry.get_pointgroup_operations(), reciprocal_lattice, stores_triplets_map=stores_triplets_map) for triplet in triplets_at_q: sum_q = (grid_address[triplet]).sum(axis=0) if (sum_q % self._mesh != 0).any(): print("============= Warning ==================") print("%s" % triplet) for tp in triplet: print("%s %s" % (grid_address[tp], np.linalg.norm( np.dot( reciprocal_lattice, grid_address[tp] / self._mesh.astype('double'))))) print("%s" % sum_q) print("============= Warning ==================") self._grid_point = grid_point self._triplets_at_q = triplets_at_q self._weights_at_q = weights_at_q self._triplets_map_at_q = triplets_map_at_q self._grid_address = grid_address self._bz_map = bz_map self._ir_map_at_q = ir_map_at_q self.set_phonons(self._triplets_at_q.ravel())
def set_grid_point(self, grid_point, stores_triplets_map=False): reciprocal_lattice = np.linalg.inv(self._primitive.get_cell()) if self._is_nosym: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q) = get_nosym_triplets_at_q( grid_point, self._mesh, reciprocal_lattice, stores_triplets_map=stores_triplets_map) else: (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q)= get_triplets_at_q( grid_point, self._mesh, self._symmetry.get_pointgroup_operations(), reciprocal_lattice, stores_triplets_map=stores_triplets_map) for triplet in triplets_at_q: sum_q = (grid_address[triplet]).sum(axis=0) if (sum_q % self._mesh != 0).any(): print "============= Warning ==================" print triplet print grid_address[triplet] print sum_q print "============= Warning ==================" self._triplets_at_q = triplets_at_q self._weights_at_q = weights_at_q self._triplets_map_at_q = triplets_map_at_q self._grid_address = grid_address self._bz_map = bz_map self._ir_map_at_q = ir_map_at_q
import numpy as np cell = read_vasp("POSCAR-unitcell") symmetry = Symmetry(cell, 1e-2) print symmetry.get_international_table() reciprocal_lattice = np.linalg.inv(cell.get_cell()) mesh = [7, 7, 7] print reciprocal_lattice (triplets_at_q, weights_at_q, grid_address, bz_map, triplets_map_at_q, ir_map_at_q)= get_triplets_at_q(74, mesh, symmetry.get_pointgroup_operations(), reciprocal_lattice, stores_triplets_map=True) for triplet in triplets_at_q: sum_q = (grid_address[triplet]).sum(axis=0) if (sum_q % mesh != 0).any(): print "============= Warning ==================" print triplet for tp in triplet: print grid_address[tp], np.linalg.norm(np.dot(reciprocal_lattice, grid_address[tp] / mesh)) print sum_q print "============= Warning =================="