Coverage for gpaw/test/nlopt/test_mme.py: 100%
20 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
3import numpy as np
5from gpaw.nlopt.matrixel import make_nlodata
8@pytest.mark.serial
9def test_mme_Ni(gpw_files):
11 # Collinear calculation
12 nlodata = make_nlodata(gpw_files['fcc_Ni_col'], ni=0, nf=3).distribute()
14 data1 = nlodata[34] # k = (0.5, 0.5, 0.25), s = 0
15 E1_col_n = data1[2]
16 p1_col_vnn = np.abs(data1[3])
18 data2 = nlodata[70] # k = (0.5, 0.5, 0.25), s = 1
19 E2_col_n = data2[2]
20 p2_col_vnn = np.abs(data2[3])
22 # Noncollinear calculation
23 nlodata = make_nlodata(gpw_files['fcc_Ni_ncol'], ni=0, nf=6).distribute()
25 data = nlodata[62] # k = (0.5, 0.5, 0.25), s = 0
26 E_ncol_n = data[2]
27 p_ncol_vnn = np.abs(data[3])
29 assert E_ncol_n[0:3] == pytest.approx(E1_col_n, abs=3.0e-6)
30 assert E_ncol_n[3:6] == pytest.approx(E2_col_n, abs=5.0e-6)
31 assert p_ncol_vnn[:, 0:3, 0:3] == pytest.approx(p1_col_vnn, abs=2.0e-6)
32 assert p_ncol_vnn[:, 3:6, 3:6] == pytest.approx(p2_col_vnn, abs=2.0e-6)