示例#1
0
    def test_pair_correlation_neighbor_list_species(self, dim, dtype, format):
        if format is partition.OrderedSparse:
            self.skipTest('OrderedSparse not supported for pair correlation '
                          'function.')

        N = 100
        L = 10.
        displacement, _ = space.periodic(L)
        R = random.uniform(random.PRNGKey(0), (N, dim), dtype=dtype)
        species = np.where(np.arange(N) < N // 2, 0, 1)
        rs = np.linspace(0, 2, 60, dtype=dtype)
        g = quantity.pair_correlation(displacement, rs, f32(0.1), species)
        nbr_fn, g_neigh = quantity.pair_correlation_neighbor_list(
            displacement, L, rs, f32(0.1), species, format=format)
        nbrs = nbr_fn.allocate(R)

        g_0, g_1 = g(R)
        g_0 = np.mean(g_0, axis=0)
        g_1 = np.mean(g_1, axis=0)

        g_0_neigh, g_1_neigh = g_neigh(R, neighbor=nbrs)
        g_0_neigh = np.mean(g_0_neigh, axis=0)
        g_1_neigh = np.mean(g_1_neigh, axis=0)
        self.assertAllClose(g_0, g_0_neigh)
        self.assertAllClose(g_1, g_1_neigh)
示例#2
0
    def test_pair_correlation_neighbor_list(self, dim, dtype):
        N = 100
        L = 10.
        displacement, _ = space.periodic(L)
        R = random.uniform(random.PRNGKey(0), (N, dim), dtype=dtype)
        rs = np.linspace(0, 2, 60, dtype=dtype)
        g = quantity.pair_correlation(displacement, rs, f32(0.1))
        nbr_fn, g_neigh = quantity.pair_correlation_neighbor_list(
            displacement, L, rs, f32(0.1))
        nbrs = nbr_fn(R)

        g_0 = g(R)
        g_0 = np.mean(g_0, axis=0)

        g_0_neigh = g_neigh(R, neighbor=nbrs)
        g_0_neigh = np.mean(g_0_neigh, axis=0)

        self.assertAllClose(g_0, g_0_neigh)