Skip to content

Commit ec9eb7c

Browse files
authored
Merge pull request #2501 from jmmshn/no_complex
Remove complex numbers from the definition of WSWQ
2 parents dcc4576 + 3fef4d0 commit ec9eb7c

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

pymatgen/io/vasp/outputs.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5652,12 +5652,19 @@ class WSWQ(MSONable):
56525652
The indices of WSWQ.data are:
56535653
[spin][kpoint][band_i][band_j]
56545654
5655+
Attributes:
5656+
nspin: Number of spin channels
5657+
nkpoints: Number of k-points
5658+
nbands: Number of bands
5659+
me_real: Real part of the overlap matrix elements
5660+
me_imag: Imaginary part of the overlap matrix elements
56555661
"""
56565662

56575663
nspin: int
56585664
nkpoints: int
56595665
nbands: int
5660-
data: np.ndarray
5666+
me_real: np.ndarray
5667+
me_imag: np.ndarray
56615668

56625669
@classmethod
56635670
def from_file(cls, filename):
@@ -5694,7 +5701,7 @@ def from_file(cls, filename):
56945701
# NOTE: loop order (slow->fast) spin -> kpoint -> j -> i
56955702
data = data.reshape((nspin, nkpoints, nbands, nbands))
56965703
data = np.swapaxes(data, 2, 3) # swap i and j
5697-
return cls(nspin=nspin, nkpoints=nkpoints, nbands=nbands, data=data)
5704+
return cls(nspin=nspin, nkpoints=nkpoints, nbands=nbands, me_real=np.real(data), me_imag=np.imag(data))
56985705

56995706

57005707
class UnconvergedVASPWarning(Warning):

pymatgen/io/vasp/tests/test_outputs.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2162,10 +2162,16 @@ def setUp(self):
21622162

21632163
def test_consistency(self):
21642164
self.assertEqual(True, True)
2165-
self.assertEqual(self.wswq.nbands, 288)
2166-
self.assertEqual(self.wswq.nkpoints, 2)
2165+
self.assertEqual(self.wswq.nbands, 18)
2166+
self.assertEqual(self.wswq.nkpoints, 20)
21672167
self.assertEqual(self.wswq.nspin, 2)
2168-
self.assertEqual(self.wswq.data.shape, (2, 2, 288, 288))
2168+
self.assertEqual(self.wswq.me_real.shape, (2, 20, 18, 18))
2169+
self.assertEqual(self.wswq.me_imag.shape, (2, 20, 18, 18))
2170+
for itr, (r, i) in enumerate(zip(self.wswq.me_real[0][0][4], self.wswq.me_imag[0][0][4])):
2171+
if itr == 4:
2172+
assert np.linalg.norm([r, i]) > 0.999
2173+
else:
2174+
assert np.linalg.norm([r, i]) < 0.001
21692175

21702176

21712177
if __name__ == "__main__":

test_files/WSWQ.gz

-2.37 MB
Binary file not shown.

0 commit comments

Comments
 (0)