Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow for float ENCUTs in Wavecar class #2410

Merged
merged 21 commits into from
Feb 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
657b6e9
Allow for float ENCUTs in Wavecar class
Andrew-S-Rosen Feb 2, 2022
74883f2
Fix ENCUT type in Wavecar class (thanks @RyanNKHall)
Andrew-S-Rosen Feb 2, 2022
fa737b5
Change type in wavecar test for clarity
Andrew-S-Rosen Feb 2, 2022
1b41579
Add test for fractional ENCUT in WAVECAR
Andrew-S-Rosen Feb 4, 2022
6ff8026
Make sure type is float for ENCUT in WAVECAR
Andrew-S-Rosen Feb 4, 2022
0b1c940
Merge branch 'materialsproject:master' into rosen-gvec
Andrew-S-Rosen Feb 4, 2022
bb468f5
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 4, 2022
baf5254
Revert "[pre-commit.ci] auto fixes from pre-commit.com hooks"
pre-commit-ci[bot] Feb 4, 2022
812a0dd
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 4, 2022
d8b59b0
Merge branch 'materialsproject:master' into rosen-gvec
Andrew-S-Rosen Feb 4, 2022
a526957
Revert "[pre-commit.ci] auto fixes from pre-commit.com hooks"
pre-commit-ci[bot] Feb 4, 2022
206e803
Revert "Revert "[pre-commit.ci] auto fixes from pre-commit.com hooks""
pre-commit-ci[bot] Feb 4, 2022
5eb0f71
Revert "[pre-commit.ci] auto fixes from pre-commit.com hooks"
pre-commit-ci[bot] Feb 4, 2022
b6ca9bf
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 4, 2022
b75fddc
Fix test
Andrew-S-Rosen Feb 4, 2022
f62b34d
Merge remote-tracking branch 'origin/rosen-gvec' into rosen-gvec
Andrew-S-Rosen Feb 4, 2022
1707011
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 4, 2022
92173a4
Fix test
Andrew-S-Rosen Feb 4, 2022
083d697
Merge remote-tracking branch 'origin/rosen-gvec' into rosen-gvec
Andrew-S-Rosen Feb 4, 2022
2e9491f
Fix test
Andrew-S-Rosen Feb 4, 2022
a66ab85
revert CI changes
Andrew-S-Rosen Feb 7, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion pymatgen/io/vasp/outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -4849,7 +4849,8 @@ def __init__(self, filename="WAVECAR", verbose=False, precision="normal", vasp_t
np.fromfile(f, dtype=np.float64, count=(recl8 - 3))

# extract kpoint, bands, energy, and lattice information
self.nk, self.nb, self.encut = np.fromfile(f, dtype=np.float64, count=3).astype(int)
self.nk, self.nb = np.fromfile(f, dtype=np.float64, count=2).astype(int)
self.encut = np.fromfile(f, dtype=np.float64, count=1)[0]
self.a = np.fromfile(f, dtype=np.float64, count=9).reshape((3, 3))
self.efermi = np.fromfile(f, dtype=np.float64, count=1)[0]
if verbose:
Expand Down
9 changes: 7 additions & 2 deletions pymatgen/io/vasp/tests/test_outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -1785,6 +1785,7 @@ def setUp(self):
self.wH2 = Wavecar(self.TEST_FILES_DIR / "WAVECAR.H2_low_symm")
self.wH2_gamma = Wavecar(self.TEST_FILES_DIR / "WAVECAR.H2_low_symm.gamma")
self.w_ncl = Wavecar(self.TEST_FILES_DIR / "WAVECAR.H2.ncl")
self.w_frac_encut = Wavecar(self.TEST_FILES_DIR / "WAVECAR.frac_encut")

def test_standard(self):
w = self.w
Expand All @@ -1801,7 +1802,7 @@ def test_standard(self):

self.assertEqual(w.filename, self.TEST_FILES_DIR / "WAVECAR.N2")
self.assertAlmostEqual(w.efermi, -5.7232, places=4)
self.assertEqual(w.encut, 25)
self.assertEqual(w.encut, 25.0)
self.assertEqual(w.nb, 9)
self.assertEqual(w.nk, 1)
self.assertTrue(np.allclose(w.a, a))
Expand All @@ -1817,6 +1818,10 @@ def test_standard(self):
for b in range(w.nb):
self.assertEqual(len(w.coeffs[k][b]), len(w.Gpoints[k]))

# Test WAVECAR with fractional encut
self.assertEqual(self.w_frac_encut.encut, 100.5)

# Test malformed WAVECARs
with self.assertRaises(ValueError):
Wavecar(self.TEST_FILES_DIR / "WAVECAR.N2.malformed")

Expand Down Expand Up @@ -1845,7 +1850,7 @@ def test_n2_45210(self):
w = Wavecar(self.TEST_FILES_DIR / "WAVECAR.N2.45210")
self.assertEqual(w.filename, self.TEST_FILES_DIR / "WAVECAR.N2.45210")
self.assertAlmostEqual(w.efermi, -5.7232, places=4)
self.assertEqual(w.encut, 25)
self.assertEqual(w.encut, 25.0)
self.assertEqual(w.nb, 9)
self.assertEqual(w.nk, 1)
self.assertTrue(np.allclose(w.a, self.a))
Expand Down
Binary file added test_files/WAVECAR.frac_encut
Binary file not shown.