Ejemplo n.º 1
0
    def test_find_bases_with_1d_modulation(self):
        qs = np.array([
            [0, 0, .13],
        ])

        ndim, bases = indexing.find_bases(qs, tolerance=.02)

        self.assertEqual(ndim, 1)
        npt.assert_array_equal(bases[0], qs[0])
Ejemplo n.º 2
0
    def test_find_bases_with_1d_modulation(self):
        qs = np.array([
            [0, 0, .13],
        ])

        ndim, bases = indexing.find_bases(qs, tolerance=.02)

        self.assertEqual(ndim, 1)
        npt.assert_array_equal(bases[0], qs[0])
Ejemplo n.º 3
0
    def test_find_bases_with_4d_modulation(self):
        qs = np.array([
            [0, 0, .1],
            [0, .1, 0],
            [.1, 0, 0],
            [.15, 0, 0],
        ])

        ndim, bases = indexing.find_bases(qs, tolerance=.02)

        self.assertEqual(ndim, 4)
        npt.assert_array_equal(bases[0], qs[0])
        npt.assert_array_equal(bases[1], qs[1])
        npt.assert_array_equal(bases[2], qs[2])
Ejemplo n.º 4
0
    def test_find_bases_with_4d_modulation(self):
        qs = np.array([
            [0, 0, .1],
            [0, .1, 0],
            [.1, 0, 0],
            [.15, 0, 0],
        ])

        ndim, bases = indexing.find_bases(qs, tolerance=.02)

        self.assertEqual(ndim, 4)
        npt.assert_array_equal(bases[0], qs[0])
        npt.assert_array_equal(bases[1], qs[1])
        npt.assert_array_equal(bases[2], qs[2])
Ejemplo n.º 5
0
    def test_find_bases_with_2d_modulation_with_linear_combination(self):
        qs = np.array([
            [0, .1, .1],
            [0, 0, .1],
            [0, .1, 0],
            [0, 0, .15],
            [0, .1, .2],
        ])

        ndim, bases = indexing.find_bases(qs, tolerance=.02)

        self.assertEqual(ndim, 3)
        npt.assert_array_equal(bases[0], np.array([0, 0, .1]))
        npt.assert_array_equal(bases[1], np.array([0, .1, 0]))
        npt.assert_array_equal(bases[2], np.array([0, 0, .15]))
Ejemplo n.º 6
0
    def test_find_bases_with_2d_modulation_with_linear_combination(self):
        qs = np.array([
            [0, .1, .1],
            [0, 0, .1],
            [0, .1, 0],
            [0, 0, .15],
            [0, .1, .2],
        ])

        ndim, bases = indexing.find_bases(qs, tolerance=.02)

        self.assertEqual(ndim, 3)
        npt.assert_array_equal(bases[0], np.array([0, 0, .1]))
        npt.assert_array_equal(bases[1], np.array([0, .1, 0]))
        npt.assert_array_equal(bases[2], np.array([0, 0, .15]))
Ejemplo n.º 7
0
    def test_find_bases_with_non_orthogonal_cell(self):
        cell = UnitCell(1, 1, 1, 90, 95, 103)
        cart_cell = cell.getB()
        qs = np.array([
            [.5, 0, 0],
            [0, .5, 0],
            [0, 0, .5],
            [0, 0, .25],
        ])

        qs = np.dot(qs, cart_cell)

        ndim, bases = indexing.find_bases(qs, 1e-5)
        self.assertEqual(ndim, 3, "Number of dimensions must be 3")

        expected_bases = np.array([[0., 0., 0.25], [0., .5, 0.],
                                   [0.51521732, 0.11589868, 0.04490415]])

        npt.assert_almost_equal(bases,
                                expected_bases,
                                err_msg="Basis vectors do not match")
Ejemplo n.º 8
0
    def test_find_bases_with_non_orthogonal_cell(self):
        cell = UnitCell(1, 1, 1, 90, 95, 103)
        cart_cell = cell.getB()
        qs = np.array([
            [.5, 0, 0],
            [0, .5, 0],
            [0, 0, .5],
            [0, 0, .25],
        ])

        qs = np.dot(qs, cart_cell)

        ndim, bases = indexing.find_bases(qs, 1e-5)
        self.assertEqual(ndim, 3, "Number of dimensions must be 3")

        expected_bases = np.array([
            [0., 0., 0.25],
            [0., .5, 0.],
            [0.51521732, 0.11589868, 0.04490415]
        ])

        npt.assert_almost_equal(bases, expected_bases, err_msg="Basis vectors do not match")