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

1from gpaw.densities import add 

2from gpaw.spline import Spline 

3from gpaw.core import UGDesc 

4import numpy as np 

5 

6 

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