Coverage for gpaw/test/solvation/test_pbc.py: 100%

24 statements  

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

1import warnings 

2 

3import pytest 

4from ase.build import molecule 

5 

6from gpaw.solvation import (EffectivePotentialCavity, LinearDielectric, 

7 Power12Potential, SolvationGPAW) 

8from gpaw.solvation.poisson import ADM12PoissonSolver 

9from gpaw.utilities.adjust_cell import adjust_cell 

10 

11h = 0.3 

12vac = 3.0 

13u0 = 0.180 

14epsinf = 80.0 

15T = 298.15 

16atomic_radii = {'H': 1.09} 

17 

18 

19convergence = { 

20 'energy': 0.05 / 8, 

21 'density': 10.0, 

22 'eigenstates': 10.0} 

23 

24 

25@pytest.mark.old_gpaw_only 

26def test_solvation_pbc(): 

27 atoms = molecule('H2O') 

28 adjust_cell(atoms, vac, h) 

29 atoms.pbc = True 

30 

31 with warnings.catch_warnings(): 

32 # Ignore production code warning for ADM12PoissonSolver 

33 warnings.simplefilter('ignore') 

34 psolver = ADM12PoissonSolver(eps=1e-7) 

35 

36 atoms.calc = SolvationGPAW( 

37 mode='fd', 

38 xc='LDA', 

39 h=h, 

40 convergence=convergence, 

41 cavity=EffectivePotentialCavity( 

42 effective_potential=Power12Potential( 

43 atomic_radii=atomic_radii, u0=u0), 

44 temperature=T), 

45 dielectric=LinearDielectric(epsinf=epsinf), 

46 poissonsolver=psolver) 

47 atoms.get_potential_energy() 

48 atoms.get_forces()