Skip to content

Commit 30e6929

Browse files
authored
Merge pull request #138 from liuliping0315/devel
Fix the bug in PWmat-MOVEMENT converter
2 parents 3443aec + d9dfce2 commit 30e6929

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

dpdata/pwmat/movement.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def analyze_block(lines, ntot, nelm) :
107107
sc_index = int(ii.split('SCF =')[1])
108108
if sc_index >= nelm:
109109
is_converge = False
110-
energy = float(ii.split('Etot,Ep,Ek (eV)')[1].split()[1])
110+
energy = float(ii.split('Etot,Ep,Ek (eV)')[1].split()[2]) # use Ep, not Etot=Ep+Ek
111111
elif '----------' in ii:
112112
assert((force is not None) and len(coord) > 0 and len(cell) > 0)
113113
# all_coords.append(coord)
@@ -170,7 +170,7 @@ def analyze_block(lines, ntot, nelm) :
170170
min = jj
171171
lines[min], lines[kk] = lines[kk],lines[min]
172172
for gg in range(idx+1,idx+1+ntot):
173-
info = [float(ss) for ss in lines[gg].split()]
173+
info = [-float(ss) for ss in lines[gg].split()] # forces in MOVEMENT file are dE/dR, lacking a minus sign
174174
force.append(info[1:4])
175175
# elif 'Atomic-Energy' in ii:
176176
# for jj in range(idx+1, idx+1+ntot) :

tests/pwmat/ref_force

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
0.046108800185045 -0.541030624050995 -0.582488361151274
2-
-0.557355742114270 -0.117761039586375 -0.114745145937041
3-
0.336673769321572 0.649100915564952 0.057748752039102
4-
-0.123335960183960 0.122383035499940 -0.332495374793973
5-
0.301171890086218 -0.108713996525315 0.974385263713461
1+
-0.046108800185045 0.541030624050995 0.582488361151274
2+
0.557355742114270 0.117761039586375 0.114745145937041
3+
-0.336673769321572 -0.649100915564952 -0.057748752039102
4+
0.123335960183960 -0.122383035499940 0.332495374793973
5+
-0.301171890086218 0.108713996525315 -0.974385263713461

tests/test_pwmat_movement.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def test_force(self) :
4848
fp.close()
4949

5050
def test_energy(self) :
51-
ref_energy = -0.2193369388E+03
51+
ref_energy = -0.2196929065E+03
5252
self.assertEqual(self.system.data['energies'][0], ref_energy)
5353

5454

0 commit comments

Comments
 (0)