Coverage for gpaw/test/generic/test_Cu.py: 100%
24 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
1from ase import Atoms
2from ase.units import Hartree
3from gpaw import GPAW
4from gpaw.test import gen
5import pytest
6import gpaw.mpi as mpi
8# Generate non-scalar-relativistic setup for Cu:
11def test_generic_Cu(in_tmp_dir):
12 setup = gen('Cu', scalarrel=False)
14 a = 8.0
15 c = a / 2
16 Cu = Atoms('Cu', [(c, c, c)], magmoms=[1],
17 cell=(a, a, a), pbc=0)
19 calc = GPAW(mode='fd',
20 h=0.2,
21 setups={'Cu': setup})
22 Cu.calc = calc
23 e = Cu.get_potential_energy()
24 niter = calc.get_number_of_iterations()
26 e_4s_major = calc.get_eigenvalues(spin=0)[5] / Hartree
27 e_3d_minor = calc.get_eigenvalues(spin=1)[4] / Hartree
28 print(mpi.rank, e_4s_major, e_3d_minor)
30 #
31 # The reference values are from:
32 #
33 # https://physics.nist.gov/PhysRefData/DFTdata/Tables/29Cu.html
34 #
35 if mpi.rank == 0:
36 print(e_4s_major - e_3d_minor, -0.184013 - -0.197109)
37 assert abs(e_4s_major - e_3d_minor - (-0.184013 - -0.197109)) < 0.001
39 print(e, niter)
40 energy_tolerance = 0.0005
41 assert e == pytest.approx(-0.271504, abs=energy_tolerance)