Skip to content

Commit 482775f

Browse files
wanghan-iapcmHan Wangpre-commit-ci[bot]
authored
Fix: qe/pw/scf unit conversion is not consistent with dpdata (#725)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a configuration file for sodium SCF calculations, enhancing quantum mechanical simulations. - Added a new test class to verify properties of sodium systems, improving test coverage. - **Bug Fixes** - Improved logic for block extraction and stress block handling to enhance robustness. - **Tests** - Updated energy validation method to use relative comparisons for more accurate results. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Han Wang <[email protected]> Co-authored-by: Han Wang <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 2648d50 commit 482775f

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

dpdata/qe/scf.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,13 @@
77

88
from dpdata.utils import open_file
99

10-
ry2ev = 13.605693009
11-
bohr2ang = 0.52917721067
12-
kbar2evperang3 = 1e3 / 1.602176621e6
10+
from .traj import (
11+
kbar2evperang3,
12+
ry2ev,
13+
)
14+
from .traj import (
15+
length_convert as bohr2ang,
16+
)
1317

1418
_QE_BLOCK_KEYWORDS = [
1519
"ATOMIC_SPECIES",

tests/test_qe_pw_scf.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,11 @@ def test_virial(self):
161161

162162
def test_energy(self):
163163
ref_energy = -219.74425946528794
164-
self.assertAlmostEqual(self.system_ch4.data["energies"][0], ref_energy)
164+
self.assertAlmostEqual(self.system_ch4.data["energies"][0] / ref_energy, 1.0)
165165
ref_energy = -30007.651851226798
166-
self.assertAlmostEqual(self.system_h2o.data["energies"][0], ref_energy)
166+
self.assertAlmostEqual(self.system_h2o.data["energies"][0] / ref_energy, 1.0)
167167
ref_energy = -219.7153691367526562
168-
self.assertAlmostEqual(self.system_ch4_2.data["energies"][0], ref_energy)
168+
self.assertAlmostEqual(self.system_ch4_2.data["energies"][0] / ref_energy, 1.0)
169169

170170

171171
class TestPWSCFLabeledOutput(unittest.TestCase, TestPWSCFSinglePointEnergy):

tests/test_qe_pw_scf_energy_bug.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class TestPWSCFSinglePointEnergy:
99
def test_energy(self):
1010
ref_energy = -296.08379065679094669
11-
self.assertAlmostEqual(self.system_al.data["energies"][0], ref_energy)
11+
self.assertAlmostEqual(self.system_al.data["energies"][0] / ref_energy, 1.0)
1212

1313

1414
class TestPWSCFLabeledOutput(unittest.TestCase, TestPWSCFSinglePointEnergy):

0 commit comments

Comments
 (0)