From 25ae27aeed9dcbd72b4c7958dae9de5b051f4c18 Mon Sep 17 00:00:00 2001
From: Giovanni Bussi <giovanni.bussi@gmail.com>
Date: Thu, 16 Jul 2015 19:38:57 +0200
Subject: [PATCH] Fixed masses and charges in NAMD

There was an error in passing masses from NAMD to PLUMED.

Found by Glen Hocky.

Fixes #162
---
 patches/namd-2.8.diff | 6 +++---
 patches/namd-2.9.diff | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/patches/namd-2.8.diff b/patches/namd-2.8.diff
index 4fabe2f25..5612e7920 100644
--- a/patches/namd-2.8.diff
+++ b/patches/namd-2.8.diff
@@ -128,8 +128,8 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 +      positions[3*i+0]=coord.x;
 +      positions[3*i+1]=coord.y;
 +      positions[3*i+2]=coord.z;
-+      masses[i]=Node::Object()->molecule->atommass(i);
-+      charges[i]=Node::Object()->molecule->atommass(i);
++      masses[i]=Node::Object()->molecule->atommass(index[i]);
++      charges[i]=Node::Object()->molecule->atomcharge(index[i]);
 +    };
 +
 +    if(spar->lattice.volume()>0.0){
@@ -141,7 +141,7 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 +
 +    for(int i=0;i<forces.size();i++) forces[i]=0.0;
 +
-+    cmd("setMasses",&masses[0]);
++    cmd("setMasses",&masses[0]); cmd("setCharges",&charges[0]);
 +    cmd("setPositions",&positions[0]);
 +    cmd("setForces",&forces[0]);
 +
diff --git a/patches/namd-2.9.diff b/patches/namd-2.9.diff
index d4d242cac..73590a2ef 100644
--- a/patches/namd-2.9.diff
+++ b/patches/namd-2.9.diff
@@ -127,8 +127,8 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 +      positions[3*i+0]=coord.x;
 +      positions[3*i+1]=coord.y;
 +      positions[3*i+2]=coord.z;
-+      masses[i]=Node::Object()->molecule->atommass(i);
-+      charges[i]=Node::Object()->molecule->atommass(i);
++      masses[i]=Node::Object()->molecule->atommass(index[i]);
++      charges[i]=Node::Object()->molecule->atomcharge(index[i]);
 +    };
 +
 +    if(spar->lattice.volume()>0.0){
@@ -140,7 +140,7 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 +
 +    for(int i=0;i<forces.size();i++) forces[i]=0.0;
 +
-+    cmd("setMasses",&masses[0]);
++    cmd("setMasses",&masses[0]); cmd("setCharges",&charges[0]);
 +    cmd("setPositions",&positions[0]);
 +    cmd("setForces",&forces[0]);
 +
-- 
GitLab