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)
예제 #2
0
 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))
예제 #3
0
 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)