def test_structure_symmetrizer_sc_irreducible_kpoints(): lattice = [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]] coords = [[0.0, 0.0, 0.0]] structure = Structure(lattice=lattice, species=["H"], coords=coords) symmetrizer = StructureSymmetrizer(structure) num_kpt_list = [2, 2, 2] kpt_shift = [0.5, 0.5, 0.5] actual = symmetrizer.irreducible_kpoints(num_kpt_list, kpt_shift) expected = [([0.25, 0.25, 0.25], 8)] assert actual == expected
def _set_kpoints(self): # symmetrizer must be recreated since the fractional coordinates are # different in different lattices. # Symmetrized structure doesn't need the symprec and angle_tolerance symmetrizer = StructureSymmetrizer(self._structure) irreducible_kpoints = symmetrizer.irreducible_kpoints( self._num_kpt_list, self._kpt_shift) self.comment = "" if self._kpt_mode is KpointsMode.band: self._add_weighted_kpts(irreducible_kpoints) self._add_band_path_kpts() self._num_kpts = len(self._kpoints.kpts) else: self._kpoints = Kpoints(comment=self.comment, kpts=(self._num_kpt_list, ), kpts_shift=self._kpt_shift) self._num_kpts = len(irreducible_kpoints) self.kpoints.comment += f"Num irrep kpoints: {self._num_kpts}"