Exemple #1
0
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
Exemple #2
0
    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
Exemple #3
0
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
Exemple #4
0
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