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
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-14 00:18 +0000
1import pytest
3from gpaw.mpi import serial_comm, world
4from gpaw.new.ase_interface import GPAW
5from gpaw.nlopt.adapters import CollinearGSInfo
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)
15 calc = GPAW(gpw_files['sic_pw'], communicator=serial_comm)
17 wfs_fromcalc = calc.dft.ibzwfs.wfs_qs[k][s]
18 u_G_fromcalc = wfs_fromcalc.psit_nX[bands].data
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)
25 # Test that adapter outputs expected pseudo-wf coefficients
26 assert u_G == pytest.approx(u_G_fromcalc, 1e-10)