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