From 62196b0c55ee28890a17a00729c9cdc640d98057 Mon Sep 17 00:00:00 2001
From: Giovanni Bussi <giovanni.bussi@gmail.com>
Date: Mon, 9 Dec 2013 21:17:45 +0100
Subject: [PATCH] Using faster switching functions in coordination and dhenergy

Coordination is now faster by approx 15% when using even
NN, even MM and d0=0
---
 src/colvar/Coordination.cpp     | 2 +-
 src/colvar/CoordinationBase.cpp | 2 +-
 src/colvar/DHEnergy.cpp         | 3 ++-
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/colvar/Coordination.cpp b/src/colvar/Coordination.cpp
index ffc9b28bc..8de701f19 100644
--- a/src/colvar/Coordination.cpp
+++ b/src/colvar/Coordination.cpp
@@ -106,7 +106,7 @@ CoordinationBase(ao)
 double Coordination::pairing(double distance,double&dfunc,unsigned i,unsigned j)const{
   (void) i; // avoid warnings
   (void) j; // avoid warnings
-  return switchingFunction.calculate(distance,dfunc);
+  return switchingFunction.calculateSqr(distance,dfunc);
 }
 
 }
diff --git a/src/colvar/CoordinationBase.cpp b/src/colvar/CoordinationBase.cpp
index b16dbcb3b..0b9b6546b 100644
--- a/src/colvar/CoordinationBase.cpp
+++ b/src/colvar/CoordinationBase.cpp
@@ -156,7 +156,7 @@ void CoordinationBase::calculate()
   }
 
   double dfunc=0.;
-  ncoord += pairing(distance.modulo(), dfunc,i0,i1);
+  ncoord += pairing(distance.modulo2(), dfunc,i0,i1);
 
   deriv[i0] = deriv[i0] + (-dfunc)*distance ;
   deriv[i1] = deriv[i1] + dfunc*distance ;
diff --git a/src/colvar/DHEnergy.cpp b/src/colvar/DHEnergy.cpp
index 9dac10453..204540566 100644
--- a/src/colvar/DHEnergy.cpp
+++ b/src/colvar/DHEnergy.cpp
@@ -118,7 +118,8 @@ constant(0.0)
   log<<"  Bibliography "<<plumed.cite("Do, Carloni, Varani and Bussi, J. Chem. Theory Comput. 9, 1720 (2013)")<<" \n";
 }
 
-double DHEnergy::pairing(double distance,double&dfunc,unsigned i,unsigned j)const{
+double DHEnergy::pairing(double distance2,double&dfunc,unsigned i,unsigned j)const{
+  double distance=std::sqrt(distance2);
   if(getAbsoluteIndex(i)==getAbsoluteIndex(j)){
     dfunc=0.0;
     return 0.0;
-- 
GitLab