Coverage for gpaw/test/densities/test_ae.py: 100%
22 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-20 00:19 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-20 00:19 +0000
1from gpaw.densities import add
2from gpaw.spline import Spline
3from gpaw.core import UGDesc
4import numpy as np
7def test_ae_density():
8 n = 10
9 n_sR = UGDesc(cell=[1, 1, 1], size=[n, n, n], pbc=True).zeros(1)
10 D_sii = np.zeros((1, 4, 4))
11 D_sii[0, 0, 0] = 1.0
12 D_sii[0, 1, 1] = 1.0
13 rc = 0.5
14 phi0 = Spline.from_data(0, rc, [1, 0])
15 phit0 = Spline.from_data(0, rc, [2, 0])
16 phi1 = Spline.from_data(1, rc, [1, 0])
17 phit1 = Spline.from_data(1, rc, [2, 0])
18 nc = Spline.from_data(0, rc, [0, 0])
19 add([0.5, 0.5, 0.5],
20 n_sR,
21 [phi0, phi1], [phit0, phit1],
22 nc, nc,
23 rc, D_sii)
24 y, v = n_sR.xy(0, 5, ..., 5)
25 v *= 4 * np.pi
26 y = abs(y - 0.5)
27 v0 = -9 * phi1.map(y)**2 * y**2 - 3 * phi0.map(y)**2
28 assert abs(v - v0).max() < 1e-14