def test_list3d(self): particle_positions = np.array([[9, 6, 4]]) box_space = np.array([8, 6, 4]) cutoff = 2 s1 = Neighbourlist(particle_positions, box_space, cutoff) print(s1.calculate_index(np.array([1, 0, 0]))) lol = s1.cell_neighbour_list_3D() print(lol)
def test_determine_box_shift(self): EC = EnergyCalculator(box=np.array([2, 3, 2]), cutoff_radius=1, es_sigma=1, charges=np.array([1]), lj_sigmas=np.array([1]), lj_epsilons=np.array([1]), k_vector=np.array([[1]])) vector1 = np.array([3, 4, 1]) NL = Neighbourlist(Box=np.array([2, 3, 2]), particles=np.array([[3, 4, 1]]), rc=1) cell_nl = NL.cell_neighbour_list_3D() EC.cell_neighbour_list = cell_nl calc_shift = EC._determine_box_shift(0, 2) reference_shift = np.array([-2, 0, 0]) self.assertTrue(np.array_equal(calc_shift, reference_shift))
def test_cnlist3d_2(self): particle_positions = np.array([[9, 6, 4], [4, 5, 6], [1, 3, 6]]) box_space = np.array([12, 10, 10]) cutoff = 3 s1 = Neighbourlist(particle_positions, box_space, cutoff) reference_CnList = np.array( [[ 31, 32, 30, 34, 35, 33, 28, 29, 27, 4, 5, 3, 7, 8, 6, 1, 2, 0, 13, 14, 12, 16, 17, 15, 10, 11, 9, 22, 23, 21, 25, 26, 24, 19, 20, 18 ], [ 4, 5, 3, 7, 8, 6, 1, 2, 0, 13, 14, 12, 16, 17, 15, 10, 11, 9, 22, 23, 21, 25, 26, 24, 19, 20, 18, 31, 32, 30, 34, 35, 33, 28, 29, 27 ], [ 13, 14, 12, 16, 17, 15, 10, 11, 9, 22, 23, 21, 25, 26, 24, 19, 20, 18, 31, 32, 30, 34, 35, 33, 28, 29, 27, 4, 5, 3, 7, 8, 6, 1, 2, 0 ], [ 28, 29, 27, 31, 32, 30, 34, 35, 33, 1, 2, 0, 4, 5, 3, 7, 8, 6, 10, 11, 9, 13, 14, 12, 16, 17, 15, 19, 20, 18, 22, 23, 21, 25, 26, 24 ], [ 1, 2, 0, 4, 5, 3, 7, 8, 6, 10, 11, 9, 13, 14, 12, 16, 17, 15, 19, 20, 18, 22, 23, 21, 25, 26, 24, 28, 29, 27, 31, 32, 30, 34, 35, 33 ], [ 10, 11, 9, 13, 14, 12, 16, 17, 15, 19, 20, 18, 22, 23, 21, 25, 26, 24, 28, 29, 27, 31, 32, 30, 34, 35, 33, 1, 2, 0, 4, 5, 3, 7, 8, 6 ], [ 34, 35, 33, 28, 29, 27, 31, 32, 30, 7, 8, 6, 1, 2, 0, 4, 5, 3, 16, 17, 15, 10, 11, 9, 13, 14, 12, 25, 26, 24, 19, 20, 18, 22, 23, 21 ], [ 7, 8, 6, 1, 2, 0, 4, 5, 3, 16, 17, 15, 10, 11, 9, 13, 14, 12, 25, 26, 24, 19, 20, 18, 22, 23, 21, 34, 35, 33, 28, 29, 27, 31, 32, 30 ], [ 16, 17, 15, 10, 11, 9, 13, 14, 12, 25, 26, 24, 19, 20, 18, 22, 23, 21, 34, 35, 33, 28, 29, 27, 31, 32, 30, 7, 8, 6, 1, 2, 0, 4, 5, 3 ], [ 30, 31, 32, 33, 34, 35, 27, 28, 29, 3, 4, 5, 6, 7, 8, 0, 1, 2, 12, 13, 14, 15, 16, 17, 9, 10, 11, 21, 22, 23, 24, 25, 26, 18, 19, 20 ], [ 3, 4, 5, 6, 7, 8, 0, 1, 2, 12, 13, 14, 15, 16, 17, 9, 10, 11, 21, 22, 23, 24, 25, 26, 18, 19, 20, 30, 31, 32, 33, 34, 35, 27, 28, 29 ], [ 12, 13, 14, 15, 16, 17, 9, 10, 11, 21, 22, 23, 24, 25, 26, 18, 19, 20, 30, 31, 32, 33, 34, 35, 27, 28, 29, 3, 4, 5, 6, 7, 8, 0, 1, 2 ], [ 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 ], [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 ], [ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 1, 2, 3, 4, 5, 6, 7, 8 ], [ 33, 34, 35, 27, 28, 29, 30, 31, 32, 6, 7, 8, 0, 1, 2, 3, 4, 5, 15, 16, 17, 9, 10, 11, 12, 13, 14, 24, 25, 26, 18, 19, 20, 21, 22, 23 ], [ 6, 7, 8, 0, 1, 2, 3, 4, 5, 15, 16, 17, 9, 10, 11, 12, 13, 14, 24, 25, 26, 18, 19, 20, 21, 22, 23, 33, 34, 35, 27, 28, 29, 30, 31, 32 ], [ 15, 16, 17, 9, 10, 11, 12, 13, 14, 24, 25, 26, 18, 19, 20, 21, 22, 23, 33, 34, 35, 27, 28, 29, 30, 31, 32, 6, 7, 8, 0, 1, 2, 3, 4, 5 ], [ 32, 30, 31, 35, 33, 34, 29, 27, 28, 5, 3, 4, 8, 6, 7, 2, 0, 1, 14, 12, 13, 17, 15, 16, 11, 9, 10, 23, 21, 22, 26, 24, 25, 20, 18, 19 ], [ 5, 3, 4, 8, 6, 7, 2, 0, 1, 14, 12, 13, 17, 15, 16, 11, 9, 10, 23, 21, 22, 26, 24, 25, 20, 18, 19, 32, 30, 31, 35, 33, 34, 29, 27, 28 ], [ 14, 12, 13, 17, 15, 16, 11, 9, 10, 23, 21, 22, 26, 24, 25, 20, 18, 19, 32, 30, 31, 35, 33, 34, 29, 27, 28, 5, 3, 4, 8, 6, 7, 2, 0, 1 ], [ 29, 27, 28, 32, 30, 31, 35, 33, 34, 2, 0, 1, 5, 3, 4, 8, 6, 7, 11, 9, 10, 14, 12, 13, 17, 15, 16, 20, 18, 19, 23, 21, 22, 26, 24, 25 ], [ 2, 0, 1, 5, 3, 4, 8, 6, 7, 11, 9, 10, 14, 12, 13, 17, 15, 16, 20, 18, 19, 23, 21, 22, 26, 24, 25, 29, 27, 28, 32, 30, 31, 35, 33, 34 ], [ 11, 9, 10, 14, 12, 13, 17, 15, 16, 20, 18, 19, 23, 21, 22, 26, 24, 25, 29, 27, 28, 32, 30, 31, 35, 33, 34, 2, 0, 1, 5, 3, 4, 8, 6, 7 ], [ 35, 33, 34, 29, 27, 28, 32, 30, 31, 8, 6, 7, 2, 0, 1, 5, 3, 4, 17, 15, 16, 11, 9, 10, 14, 12, 13, 26, 24, 25, 20, 18, 19, 23, 21, 22 ], [ 8, 6, 7, 2, 0, 1, 5, 3, 4, 17, 15, 16, 11, 9, 10, 14, 12, 13, 26, 24, 25, 20, 18, 19, 23, 21, 22, 35, 33, 34, 29, 27, 28, 32, 30, 31 ], [ 17, 15, 16, 11, 9, 10, 14, 12, 13, 26, 24, 25, 20, 18, 19, 23, 21, 22, 35, 33, 34, 29, 27, 28, 32, 30, 31, 8, 6, 7, 2, 0, 1, 5, 3, 4 ]]) cnlist = s1.cell_neighbour_list_3D() print(cnlist) sorted_referenceCnList = np.sort(reference_CnList, axis=0) sorted_outputCnList = np.sort(cnlist[:, :, 0], axis=0) npt.assert_equal(sorted_referenceCnList, sorted_outputCnList, 'Failed', verbose=True)