def test_supercell(simple_cubic, simple_cubic_2x1x1): matrix = [[2, 0, 0], [0, 1, 0], [0, 0, 1]] supercell = Supercell(input_structure=simple_cubic, matrix=matrix) assert supercell.structure == simple_cubic_2x1x1 average = (2 + 1 + 1) / 3 expected = (abs(2 - average) + abs(1 - average) * 2) / 3 / average assert supercell.isotropy == expected
def _generate_supercell(self, crystal_system): if self._matrix: self.supercell = Supercell(self.conv_structure, self._matrix) else: if crystal_system == "t": supercells = TetragonalSupercells(self.conv_structure, **self._supercell_kwargs) else: supercells = Supercells(self.conv_structure, **self._supercell_kwargs) self.supercell = supercells.most_isotropic_supercell
def test_supercell_average_angle(monoclinic): matrix = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] supercell = Supercell(input_structure=monoclinic, matrix=matrix) assert supercell.average_angle == (90 + 90 + 100) / 3
def test_supercell_species_order(complex_monoclinic): matrix = [[2, 0, 0], [0, 1, 0], [0, 0, 1]] supercell = Supercell(input_structure=complex_monoclinic, matrix=matrix) actual = [e.specie for e in supercell.structure] expected = [Element.H] * 2 + [Element.He] * 8 assert actual == expected