Coverage for gpaw/test/fd_ops/test_non_periodic.py: 100%
24 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-14 00:18 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-14 00:18 +0000
1from gpaw.transformers import Transformer
2import numpy.random as ra
3from gpaw.grid_descriptor import GridDescriptor
6def test_fd_ops_non_periodic():
7 p = 0
8 n = 20
9 gd1 = GridDescriptor((n, n, n), (8.0, 8.0, 8.0), pbc_c=p)
10 a1 = gd1.zeros()
11 rng = ra.default_rng(8)
12 a1[:] = rng.random(a1.shape)
13 gd2 = gd1.refine()
14 a2 = gd2.zeros()
15 i = Transformer(gd1, gd2).apply
16 i(a1, a2)
17 assert abs(gd1.integrate(a1) - gd2.integrate(a2)) < 1e-10
18 r = Transformer(gd2, gd1).apply
19 a2[0] = 0.0
20 a2[:, 0] = 0.0
21 a2[:, :, 0] = 0.0
22 a2[-1] = 0.0
23 a2[:, -1] = 0.0
24 a2[:, :, -1] = 0.0
25 r(a2, a1)
26 assert abs(gd1.integrate(a1) - gd2.integrate(a2)) < 1e-10