def get_triplets_at_q(grid_point, mesh, point_group, # real space point group of space group primitive_lattice, # column vectors is_time_reversal=True, stores_triplets_map=False): map_triplets, map_q, grid_address = spg.get_triplets_reciprocal_mesh_at_q( grid_point, mesh, point_group, is_time_reversal=is_time_reversal) bz_grid_address, bz_map = spg.relocate_BZ_grid_address(grid_address, mesh, primitive_lattice) # map_triplets = map_q.copy() # map_triplets = np.arange(np.prod(mesh), dtype='intc') triplets_at_q, weights = spg.get_BZ_triplets_at_q( grid_point, bz_grid_address, bz_map, map_triplets, mesh) assert np.prod(mesh) == weights.sum(), \ "Num grid points %d, sum of weight %d" % ( np.prod(mesh), weights.sum()) # These maps are required for collision matrix calculation. if not stores_triplets_map: map_triplets = None map_q = None return triplets_at_q, weights, bz_grid_address, bz_map, map_triplets, map_q
def get_triplets_at_q( grid_point, mesh, point_group, # real space point group of space group primitive_lattice, # column vectors is_time_reversal=True, stores_triplets_map=False): map_triplets, map_q, grid_address = spg.get_triplets_reciprocal_mesh_at_q( grid_point, mesh, point_group, is_time_reversal=is_time_reversal) bz_grid_address, bz_map = spg.relocate_BZ_grid_address( grid_address, mesh, primitive_lattice) triplets_at_q, weights = spg.get_BZ_triplets_at_q(grid_point, bz_grid_address, bz_map, map_triplets, mesh) assert np.prod(mesh) == weights.sum(), \ "Num grid points %d, sum of weight %d" % ( np.prod(mesh), weights.sum()) # These maps are required for collision matrix calculation. if not stores_triplets_map: map_triplets = None map_q = None return triplets_at_q, weights, bz_grid_address, bz_map, map_triplets, map_q
def get_triplets_third_q_list(grid_point, bz_grid_address, bz_map, mesh): triplets_at_q, weights = spg.get_BZ_triplets_at_q( grid_point, bz_grid_address, bz_map, np.arange(len(bz_grid_address), dtype='intc'), mesh) return np.array(triplets_at_q[:, 2], dtype='intc')
def get_BZ_triplets_at_q(grid_point, mesh, reciprocal_lattice, grid_address, map_q): bz_grid_address, bz_map = spg.relocate_BZ_grid_address( grid_address, mesh, reciprocal_lattice) triplets_at_q, weights = spg.get_BZ_triplets_at_q(grid_point, bz_grid_address, bz_map, map_q, mesh) assert np.prod(mesh) == weights.sum(), \ "Num grid points %d, sum of weight %d" % ( np.prod(mesh), weights.sum()) return triplets_at_q, weights, bz_grid_address, bz_map
def get_nosym_triplets_at_q(grid_point, mesh, primitive_lattice, stores_triplets_map=False): grid_address = get_grid_address(mesh) map_q = np.arange(len(grid_address), dtype='intc') bz_grid_address, bz_map = spg.relocate_BZ_grid_address( grid_address, mesh, primitive_lattice) triplets_at_q, weights = spg.get_BZ_triplets_at_q(grid_point, bz_grid_address, bz_map, map_q, mesh) if not stores_triplets_map: map_q = None return triplets_at_q, weights, bz_grid_address, bz_map, map_q
def get_nosym_triplets_at_q(grid_point, mesh, primitive_lattice, stores_triplets_map=False): grid_address = get_grid_address(mesh) map_q = np.arange(len(grid_address), dtype='intc') bz_grid_address, bz_map = spg.relocate_BZ_grid_address(grid_address, mesh, primitive_lattice) triplets_at_q, weights = spg.get_BZ_triplets_at_q( grid_point, bz_grid_address, bz_map, map_q, mesh) if not stores_triplets_map: map_q = None return triplets_at_q, weights, bz_grid_address, bz_map, map_q
def get_BZ_triplets_at_q(grid_point, mesh, reciprocal_lattice, grid_address, map_q): bz_grid_address, bz_map = spg.relocate_BZ_grid_address(grid_address, mesh, reciprocal_lattice) triplets_at_q, weights = spg.get_BZ_triplets_at_q( grid_point, bz_grid_address, bz_map, map_q, mesh) assert np.prod(mesh) == weights.sum(), \ "Num grid points %d, sum of weight %d" % ( np.prod(mesh), weights.sum()) return triplets_at_q, weights, bz_grid_address, bz_map