def get_ir_reciprocal_mesh(mesh, bulk, is_shift=np.zeros(3, dtype='intc'), is_time_reversal=True, symprec=1e-5): """ Return k-points mesh and k-point map to the irreducible k-points The symmetry is serched from the input cell. is_shift=[0, 0, 0] gives Gamma center mesh. """ mapping = np.zeros(np.prod(mesh), dtype='intc') mesh_points = np.zeros((np.prod(mesh), 3), dtype='intc') spg.ir_reciprocal_mesh( mesh_points, mapping, np.array(mesh, dtype='intc'), np.array(is_shift, dtype='intc'), is_time_reversal * 1, np.array(bulk.get_cell().T, dtype='double', order='C'), np.array(bulk.get_scaled_positions(), dtype='double', order='C'), np.array(bulk.get_atomic_numbers(), dtype='intc'), symprec) return mapping, mesh_points
def get_ir_reciprocal_mesh(mesh, cell, is_shift=np.zeros(3, dtype='intc'), is_time_reversal=True, symprec=1e-5): """ Return k-points mesh and k-point map to the irreducible k-points The symmetry is serched from the input cell. is_shift=[0, 0, 0] gives Gamma center mesh. """ lattice, positions, numbers, _ = _expand_cell(cell) mapping = np.zeros(np.prod(mesh), dtype='intc') mesh_points = np.zeros((np.prod(mesh), 3), dtype='intc') spg.ir_reciprocal_mesh( mesh_points, mapping, np.array(mesh, dtype='intc'), np.array(is_shift, dtype='intc'), is_time_reversal * 1, lattice, positions, numbers, symprec) return mapping, mesh_points
def get_ir_reciprocal_mesh(mesh, cell, is_shift=None, is_time_reversal=True, symprec=1e-5, is_dense=False): """Return k-points mesh and k-point map to the irreducible k-points. The symmetry is serched from the input cell. Parameters ---------- mesh : array_like Uniform sampling mesh numbers. dtype='intc', shape=(3,) cell : spglib cell tuple Crystal structure. is_shift : array_like, optional [0, 0, 0] gives Gamma center mesh and value 1 gives half mesh shift. Default is None which equals to [0, 0, 0]. dtype='intc', shape=(3,) is_time_reversal : bool, optional Whether time reversal symmetry is included or not. Default is True. symprec : float, optional Symmetry tolerance in distance. Default is 1e-5. is_dense : bool, optional grid_mapping_table is returned with dtype='uintp' if True. Otherwise its dtype='intc'. Default is False. Returns ------- grid_mapping_table : ndarray Grid point mapping table to ir-gird-points. dtype='intc' or 'uintp', shape=(prod(mesh),) grid_address : ndarray Address of all grid points. dtype='intc', shspe=(prod(mesh), 3) """ _set_no_error() lattice, positions, numbers, _ = _expand_cell(cell) if lattice is None: return None if is_dense: dtype = 'uintp' else: dtype = 'intc' grid_mapping_table = np.zeros(np.prod(mesh), dtype=dtype) grid_address = np.zeros((np.prod(mesh), 3), dtype='intc') if is_shift is None: is_shift = [0, 0, 0] if spg.ir_reciprocal_mesh( grid_address, grid_mapping_table, np.array(mesh, dtype='intc'), np.array(is_shift, dtype='intc'), is_time_reversal * 1, lattice, positions, numbers, symprec) > 0: return grid_mapping_table, grid_address else: return None
def get_ir_reciprocal_mesh(mesh, cell, is_shift=np.zeros(3, dtype='intc'), is_time_reversal=True, symprec=1e-5): """ Return k-points mesh and k-point map to the irreducible k-points The symmetry is serched from the input cell. is_shift=[0, 0, 0] gives Gamma center mesh. """ lattice, positions, numbers, _ = _expand_cell(cell) mapping = np.zeros(np.prod(mesh), dtype='intc') mesh_points = np.zeros((np.prod(mesh), 3), dtype='intc') spg.ir_reciprocal_mesh(mesh_points, mapping, np.array(mesh, dtype='intc'), np.array(is_shift, dtype='intc'), is_time_reversal * 1, lattice, positions, numbers, symprec) return mapping, mesh_points
def get_ir_reciprocal_mesh(mesh, cell, is_shift=None, is_time_reversal=True, symprec=1e-5): """Return k-points mesh and k-point map to the irreducible k-points. The symmetry is serched from the input cell. Args: mesh: int array (3,): Uniform sampling mesh numbers cell, symprec: See the docstring of get_symmetry. is_shift: int array (3,): [0, 0, 0] gives Gamma center mesh and value 1 gives half mesh shift. is_time_reversal: bool: Time reversal symmetry is included or not. Return: mapping_table: int array (N,): Grid point mapping table to ir-gird-points grid_address: int array (N, 3): Address of all grid points """ _set_no_error() lattice, positions, numbers, _ = _expand_cell(cell) if lattice is None: return None mapping = np.zeros(np.prod(mesh), dtype='intc') grid_address = np.zeros((np.prod(mesh), 3), dtype='intc') if is_shift is None: is_shift = [0, 0, 0] if spg.ir_reciprocal_mesh( grid_address, mapping, np.array(mesh, dtype='intc'), np.array(is_shift, dtype='intc'), is_time_reversal * 1, lattice, positions, numbers, symprec) > 0: return mapping, grid_address else: return None
def get_ir_reciprocal_mesh(mesh, cell, is_shift=None, is_time_reversal=True, symprec=1e-5): """Return k-points mesh and k-point map to the irreducible k-points. The symmetry is serched from the input cell. Args: mesh: int array (3,): Uniform sampling mesh numbers cell, symprec: See the docstring of get_symmetry. is_shift: int array (3,): [0, 0, 0] gives Gamma center mesh and value 1 gives half mesh shift. is_time_reversal: bool: Time reversal symmetry is included or not. Returns: mapping_table: int array (N,): Grid point mapping table to ir-gird-points grid_address: int array (N, 3): Address of all grid points """ _set_no_error() lattice, positions, numbers, _ = _expand_cell(cell) if lattice is None: return None mapping = np.zeros(np.prod(mesh), dtype='intc') grid_address = np.zeros((np.prod(mesh), 3), dtype='intc') if is_shift is None: is_shift = [0, 0, 0] if spg.ir_reciprocal_mesh( grid_address, mapping, np.array(mesh, dtype='intc'), np.array(is_shift, dtype='intc'), is_time_reversal * 1, lattice, positions, numbers, symprec) > 0: return mapping, grid_address else: return None