From b626c02de3a0c5bc5cc7020375397bc3edac2d99 Mon Sep 17 00:00:00 2001
From: Giovanni Bussi <giovanni.bussi@gmail.com>
Date: Tue, 13 Sep 2016 11:20:28 +0200
Subject: [PATCH] Small fix to ensure virial is consistent with forces

---
 src/colvar/ERMSD.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/colvar/ERMSD.cpp b/src/colvar/ERMSD.cpp
index 4c7677599..88e257b30 100644
--- a/src/colvar/ERMSD.cpp
+++ b/src/colvar/ERMSD.cpp
@@ -171,8 +171,14 @@ void ERMSD::calculate(){
  for(unsigned i=0;i<derivs.size();++i) {derivs[i].zero();}
  double ermsdist;
  Tensor virial;
+// This is a trick to avoid explicit virial calculation
+// 1. we make the molecule whole
  makeWhole();
- ermsdist=ermsd.calculate(getPositions(),getPbc(),derivs,virial);
+// 2. we ignore pbcs
+ Pbc fake_pbc;
+// Notice that this might have problems when having 2 RNA molecules (hybridization).
+
+ ermsdist=ermsd.calculate(getPositions(),fake_pbc,derivs,virial);
  setValue(ermsdist);
 
  for(unsigned i=0;i<derivs.size();++i) {setAtomsDerivatives(i,derivs[i]);}
-- 
GitLab