Coverage for gpaw/test/lcao/test_lcao_elpa.py: 100%

17 statements  

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

1import pytest 

2from gpaw.utilities.elpa import LibElpa 

3from ase.build import molecule 

4from gpaw.mpi import world 

5from gpaw import GPAW, Mixer 

6 

7pytestmark = pytest.mark.skipif(not LibElpa.have_elpa(), 

8 reason='not LibElpa.have_elpa()') 

9 

10 

11def test_lcao_lcao_elpa(): 

12 size = (world.size // 2, 2) if world.size > 1 else (1, 1) 

13 

14 energies = [] 

15 for use_elpa in [1, 0]: 

16 atoms = molecule('CH3CH2OH', vacuum=2.5) 

17 calc = GPAW(mode='lcao', basis='dzp', 

18 h=0.25, 

19 parallel=dict(sl_default=(size[0], size[1], 3), 

20 use_elpa=use_elpa), 

21 mixer=Mixer(0.5, 5, 50.0)) 

22 atoms.calc = calc 

23 E = atoms.get_potential_energy() 

24 energies.append(E) 

25 err = abs(energies[1] - energies[0]) 

26 assert err < 1e-10, err