Coverage for gpaw/test/nlopt/test_adapter.py: 100%

17 statements  

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

1import pytest 

2 

3from gpaw.mpi import serial_comm, world 

4from gpaw.new.ase_interface import GPAW 

5from gpaw.nlopt.adapters import CollinearGSInfo 

6 

7 

8@pytest.mark.skipif(world.size > 1, reason='Serial only') 

9def test_adapter_pseudo_wfs(gpw_files): 

10 # Indices 

11 k = 2 

12 s = 0 

13 bands = slice(3, 4) 

14 

15 calc = GPAW(gpw_files['sic_pw'], communicator=serial_comm) 

16 

17 wfs_fromcalc = calc.dft.ibzwfs.wfs_qs[k][s] 

18 u_G_fromcalc = wfs_fromcalc.psit_nX[bands].data 

19 

20 gs = CollinearGSInfo(calc) 

21 wfs_s = gs.ibzwfs.wfs_qs[k] 

22 wfs = gs.get_wfs(wfs_s, s) 

23 _, u_G = gs.get_plane_wave_coefficients(wfs, bands=bands, spin=s) 

24 

25 # Test that adapter outputs expected pseudo-wf coefficients 

26 assert u_G == pytest.approx(u_G_fromcalc, 1e-10)