From 669f83d707b9520bda7109d0b32777ae3568956b Mon Sep 17 00:00:00 2001 From: LiuLiping <51574189+liuliping0315@users.noreply.github.com> Date: Thu, 15 Apr 2021 14:10:58 +0800 Subject: [PATCH 1/2] Fix the bug in PWmat-MOVEMENT converter --- dpdata/pwmat/movement.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dpdata/pwmat/movement.py b/dpdata/pwmat/movement.py index 34c9d8e02..ef79906a7 100644 --- a/dpdata/pwmat/movement.py +++ b/dpdata/pwmat/movement.py @@ -107,7 +107,7 @@ def analyze_block(lines, ntot, nelm) : sc_index = int(ii.split('SCF =')[1]) if sc_index >= nelm: is_converge = False - energy = float(ii.split('Etot,Ep,Ek (eV)')[1].split()[1]) + energy = float(ii.split('Etot,Ep,Ek (eV)')[1].split()[2]) # use Ep, not Etot=Ep+Ek elif '----------' in ii: assert((force is not None) and len(coord) > 0 and len(cell) > 0) # all_coords.append(coord) @@ -170,7 +170,7 @@ def analyze_block(lines, ntot, nelm) : min = jj lines[min], lines[kk] = lines[kk],lines[min] for gg in range(idx+1,idx+1+ntot): - info = [float(ss) for ss in lines[gg].split()] + info = [-float(ss) for ss in lines[gg].split()] # forces in MOVEMENT file are dE/dR, lacking a minus sign force.append(info[1:4]) # elif 'Atomic-Energy' in ii: # for jj in range(idx+1, idx+1+ntot) : From d9dfce2cd026fd20ecd7dd6d153438b45837dd23 Mon Sep 17 00:00:00 2001 From: liuliping Date: Sat, 17 Apr 2021 14:37:29 +0800 Subject: [PATCH 2/2] correct the test suit of PWMAT-MOVEMENT --- tests/pwmat/ref_force | 10 +++++----- tests/test_pwmat_movement.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/pwmat/ref_force b/tests/pwmat/ref_force index 0aafae564..9217ca2fd 100644 --- a/tests/pwmat/ref_force +++ b/tests/pwmat/ref_force @@ -1,5 +1,5 @@ - 0.046108800185045 -0.541030624050995 -0.582488361151274 - -0.557355742114270 -0.117761039586375 -0.114745145937041 - 0.336673769321572 0.649100915564952 0.057748752039102 - -0.123335960183960 0.122383035499940 -0.332495374793973 - 0.301171890086218 -0.108713996525315 0.974385263713461 + -0.046108800185045 0.541030624050995 0.582488361151274 + 0.557355742114270 0.117761039586375 0.114745145937041 + -0.336673769321572 -0.649100915564952 -0.057748752039102 + 0.123335960183960 -0.122383035499940 0.332495374793973 + -0.301171890086218 0.108713996525315 -0.974385263713461 diff --git a/tests/test_pwmat_movement.py b/tests/test_pwmat_movement.py index dab0bdb79..6cf2163cc 100644 --- a/tests/test_pwmat_movement.py +++ b/tests/test_pwmat_movement.py @@ -48,7 +48,7 @@ def test_force(self) : fp.close() def test_energy(self) : - ref_energy = -0.2193369388E+03 + ref_energy = -0.2196929065E+03 self.assertEqual(self.system.data['energies'][0], ref_energy)