Coverage for gpaw/test/lcao/test_lcao_elpa_kpts.py: 94%
18 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-08 00:17 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-08 00:17 +0000
1import pytest
2from gpaw.utilities.elpa import LibElpa
3from ase.build import bulk
4from gpaw import GPAW
5from gpaw.mpi import world
7# Run single SCF iteration and compare total energy with elpa vs. scalapack
9pytestmark = pytest.mark.skipif(not LibElpa.have_elpa(),
10 reason='not LibElpa.have_elpa()')
13def test_lcao_lcao_elpa_kpts(gpaw_new):
14 if gpaw_new and world.size == 8:
15 pytest.skip('Not implementted')
17 energies = []
19 for elpasolver in [None, '1stage', '2stage']:
20 atoms = bulk('Al')
21 calc = GPAW(mode='lcao', basis='sz(dzp)',
22 kpts=[2, 2, 2],
23 parallel=dict(sl_auto=True,
24 use_elpa=elpasolver is not None,
25 band=2 if world.size > 4 else 1,
26 kpt=2 if world.size > 2 else 1,
27 elpasolver=elpasolver),
28 convergence={'maximum iterations': 2},
29 txt='-')
30 atoms.calc = calc
31 E = atoms.get_potential_energy()
32 energies.append(E)
34 err = abs(E - energies[0])
35 assert err < 1e-10, ' '.join(['err',
36 str(err), 'energies:', str(energies)])