Coverage for gpaw/test/test_dipole_new.py: 95%

19 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-07-08 00:17 +0000

1import numpy as np 

2import pytest 

3from gpaw import GPAW 

4from gpaw.core import UGDesc 

5from gpaw.mpi import world 

6 

7 

8def test_ug_moment(): 

9 ug = UGDesc.from_cell_and_grid_spacing( 

10 [1.0, 2.0, 3.0, 80, 90, 70], 

11 0.1, 

12 comm=world, 

13 pbc=False) 

14 a = ug.zeros() 

15 if world.rank == 0: 

16 a.data[3, 4, 5] = 1.0 

17 mom1_v = ug.xyz()[3, 4, 5] * ug.dv 

18 else: 

19 mom1_v = np.empty(3) 

20 world.broadcast(mom1_v, 0) 

21 mom2_v = a.moment() 

22 assert mom1_v == pytest.approx(mom2_v) 

23 

24 

25def test_dipole(gpw_files): 

26 calc = GPAW(gpw_files['co_lcao']) 

27 d_v = calc.get_atoms().get_dipole_moment() 

28 print(d_v)