예제 #1
0
 def test_get_vector_along_lattice_directions(self):
    lattice_mat = np.array([[0.5, 0., 0.],
                            [0.5, np.sqrt(3) / 2., 0.],
                            [0., 0., 1.0]])
    lattice = Lattice(lattice_mat)
    cart_coord = np.array([0.5, np.sqrt(3)/4., 0.5])
    latt_coord = np.array([0.25, 0.5, 0.5])
    from_direct = lattice.get_fractional_coords(cart_coord) * lattice.lengths_and_angles[0]
    self.assertArrayAlmostEqual(lattice.get_vector_along_lattice_directions(cart_coord), from_direct)
    self.assertArrayAlmostEqual(lattice.get_vector_along_lattice_directions(cart_coord), latt_coord)
    self.assertArrayEqual(lattice.get_vector_along_lattice_directions(cart_coord).shape, [3,])
    self.assertArrayEqual(lattice.get_vector_along_lattice_directions(cart_coord.reshape([1,3])).shape, [1,3])
예제 #2
0
 def test_get_vector_along_lattice_directions(self):
     lattice_mat = np.array(
         [[0.5, 0.0, 0.0], [0.5, np.sqrt(3) / 2.0, 0.0], [0.0, 0.0, 1.0]]
     )
     lattice = Lattice(lattice_mat)
     cart_coord = np.array([0.5, np.sqrt(3) / 4.0, 0.5])
     latt_coord = np.array([0.25, 0.5, 0.5])
     from_direct = lattice.get_fractional_coords(cart_coord) * lattice.lengths
     self.assertArrayAlmostEqual(
         lattice.get_vector_along_lattice_directions(cart_coord), from_direct
     )
     self.assertArrayAlmostEqual(
         lattice.get_vector_along_lattice_directions(cart_coord), latt_coord
     )
     self.assertArrayEqual(
         lattice.get_vector_along_lattice_directions(cart_coord).shape, [3,]
     )
     self.assertArrayEqual(
         lattice.get_vector_along_lattice_directions(
             cart_coord.reshape([1, 3])
         ).shape,
         [1, 3],
     )