From 96eb51c6d42dcf901fe16ed215bb5d7a0a34c841 Mon Sep 17 00:00:00 2001
From: Giovanni Bussi <giovanni.bussi@gmail.com>
Date: Tue, 11 Dec 2012 09:40:15 +0100
Subject: [PATCH] Fixed namespace for vesselbase

---
 src/core/ActionWithValue.h               | 4 ++--
 src/multicolvar/MultiColvar.cpp          | 2 +-
 src/multicolvar/MultiColvar.h            | 4 ++--
 src/multicolvar/VesselCVdens.cpp         | 6 +++---
 src/multicolvar/VesselMean.cpp           | 6 +++---
 src/multicolvar/VesselWithin.cpp         | 6 +++---
 src/vessel-base/ActionWithVessel.cpp     | 6 +++++-
 src/vessel-base/ActionWithVessel.h       | 5 ++++-
 src/vessel-base/NormedSumVessel.cpp      | 2 ++
 src/vessel-base/NormedSumVessel.h        | 2 ++
 src/vessel-base/SumVessel.cpp            | 2 ++
 src/vessel-base/SumVessel.h              | 2 ++
 src/vessel-base/Vessel.cpp               | 2 ++
 src/vessel-base/Vessel.h                 | 8 ++++++--
 src/vessel-base/VesselAccumulator.cpp    | 2 ++
 src/vessel-base/VesselAccumulator.h      | 2 ++
 src/vessel-base/VesselLessThan.cpp       | 2 ++
 src/vessel-base/VesselMin.cpp            | 2 ++
 src/vessel-base/VesselMoment.cpp         | 2 ++
 src/vessel-base/VesselMoreThan.cpp       | 2 ++
 src/vessel-base/VesselRegister.cpp       | 2 ++
 src/vessel-base/VesselRegister.h         | 8 +++++---
 src/vessel-base/VesselStoreAllValues.cpp | 2 ++
 src/vessel-base/VesselStoreAllValues.h   | 2 ++
 src/vessel-base/VesselSum.cpp            | 2 ++
 src/vessel-base/VesselValueAccess.cpp    | 2 ++
 src/vessel-base/VesselValueAccess.h      | 2 ++
 27 files changed, 68 insertions(+), 21 deletions(-)

diff --git a/src/core/ActionWithValue.h b/src/core/ActionWithValue.h
index 2bb744a9a..15c03f59e 100644
--- a/src/core/ActionWithValue.h
+++ b/src/core/ActionWithValue.h
@@ -65,8 +65,6 @@ PLMD::Action you should use <b> the routines with the word component in the name
 class ActionWithValue : 
   public virtual Action
 {
-friend class VesselAccumulator;
-friend class VesselMoment;
 private:
 /// An array containing the values for this action
   std::vector<Value*> values;
@@ -93,6 +91,7 @@ protected:
 
 // -------- The action has multiple components ---------- //
 
+public:
 /// Add a value with a name like label.name
   void addComponent( const std::string& name );
 /// Add a value with a name like label.name that has derivatives
@@ -101,6 +100,7 @@ protected:
   void componentIsNotPeriodic( const std::string& name );
 /// Set the value to be periodic with a particular domain
   void componentIsPeriodic( const std::string& name, const std::string& min, const std::string& max );
+protected:
 /// Return a pointer to the component by index
   Value* getPntrToComponent(int i);
 /// Return a pointer to the value by name
diff --git a/src/multicolvar/MultiColvar.cpp b/src/multicolvar/MultiColvar.cpp
index a8d11d5d2..9b83aa7fb 100644
--- a/src/multicolvar/MultiColvar.cpp
+++ b/src/multicolvar/MultiColvar.cpp
@@ -377,7 +377,7 @@ void MultiColvar::retrieveColvarWeight( const unsigned& j, Value& ww ){
   ww.clearDerivatives(); ww.set(1.0);
 }
 
-void MultiColvar::mergeDerivatives( const unsigned jcv, const Value& value_in, const double& df, const unsigned& vstart, Vessel* valout ){    
+void MultiColvar::mergeDerivatives( const unsigned jcv, const Value& value_in, const double& df, const unsigned& vstart, vesselbase::Vessel* valout ){    
   plumed_assert( value_in.getNumberOfDerivatives()==3*colvar_atoms[jcv].getNumberActive()+9);
 
   int thisatom, thispos, in=0; unsigned innat=colvar_atoms[jcv].getNumberActive();
diff --git a/src/multicolvar/MultiColvar.h b/src/multicolvar/MultiColvar.h
index eb9db602f..38e90252b 100644
--- a/src/multicolvar/MultiColvar.h
+++ b/src/multicolvar/MultiColvar.h
@@ -43,7 +43,7 @@ thereof, whtin it there is \ref AddingAMultiColvar "information" as to how to go
 class MultiColvar :
   public ActionAtomistic,
   public ActionWithValue,
-  public ActionWithVessel
+  public vesselbase::ActionWithVessel
   {
 private:
   bool usepbc;
@@ -113,7 +113,7 @@ public:
 /// Get the weight of the colvar
   virtual void retrieveColvarWeight( const unsigned& i, Value& ww );
 /// Merge the derivatives 
-  void mergeDerivatives( const unsigned j, const Value& value_in, const double& df, const unsigned& vstart, Vessel* valout );
+  void mergeDerivatives( const unsigned j, const Value& value_in, const double& df, const unsigned& vstart, vesselbase::Vessel* valout );
   void mergeDerivatives( const unsigned j, const Value& value_in, const double& df, Value* valout );
 /// Turn of atom requests when this colvar is deactivated cos its small
   void deactivateValue( const unsigned j );
diff --git a/src/multicolvar/VesselCVdens.cpp b/src/multicolvar/VesselCVdens.cpp
index d88d80a16..e9a5ecd91 100644
--- a/src/multicolvar/VesselCVdens.cpp
+++ b/src/multicolvar/VesselCVdens.cpp
@@ -88,7 +88,7 @@ DENSITY SPECIES=20-500 REGION={SIGMA=0.1 VOLUME=r2}
 //+ENDPLUMEDOC
 
 
-class VesselCVDens : public NormedSumVessel {
+class VesselCVDens : public vesselbase::NormedSumVessel {
 private:
   bool isDensity;
   Value tmpval, tmpweight;
@@ -99,7 +99,7 @@ private:
   HistogramBead bead;
 public:
   static void reserveKeyword( Keywords& keys );
-  VesselCVDens( const VesselOptions& da );
+  VesselCVDens( const vesselbase::VesselOptions& da );
   void getWeight( const unsigned& i, Value& weight );
   void compute( const unsigned& i, const unsigned& j, Value& theval );
 };
@@ -111,7 +111,7 @@ void VesselCVDens::reserveKeyword( Keywords& keys ){
                                     "For more details on how this quantity is calculated see \\ref region.");
 }
 
-VesselCVDens::VesselCVDens( const VesselOptions& da ) :
+VesselCVDens::VesselCVDens( const vesselbase::VesselOptions& da ) :
 NormedSumVessel(da),
 catom_pos(3),
 not_in(false)
diff --git a/src/multicolvar/VesselMean.cpp b/src/multicolvar/VesselMean.cpp
index de6088d61..06be7c78d 100644
--- a/src/multicolvar/VesselMean.cpp
+++ b/src/multicolvar/VesselMean.cpp
@@ -26,12 +26,12 @@
 namespace PLMD {
 namespace multicolvar {
 
-class VesselMean : public NormedSumVessel {
+class VesselMean : public vesselbase::NormedSumVessel {
 private:
   MultiColvar* mycolv;
 public:
   static void reserveKeyword( Keywords& keys );
-  VesselMean( const VesselOptions& da );
+  VesselMean( const vesselbase::VesselOptions& da );
   void getWeight( const unsigned& i, Value& weight );
   void compute( const unsigned& i, const unsigned& j, Value& theval );
 };
@@ -42,7 +42,7 @@ void VesselMean::reserveKeyword( Keywords& keys ){
   keys.reserveFlag("AVERAGE",false,"take the average value of these variables and store it in value called average.");
 }
 
-VesselMean::VesselMean( const VesselOptions& da ) :
+VesselMean::VesselMean( const vesselbase::VesselOptions& da ) :
 NormedSumVessel(da)
 {
   if( getAction()->isPeriodic() ) error("MEAN cannot be used with periodic variables");
diff --git a/src/multicolvar/VesselWithin.cpp b/src/multicolvar/VesselWithin.cpp
index 5558951c5..e864c7d2e 100644
--- a/src/multicolvar/VesselWithin.cpp
+++ b/src/multicolvar/VesselWithin.cpp
@@ -28,13 +28,13 @@
 namespace PLMD {
 namespace multicolvar {
 
-class VesselWithin : public NormedSumVessel {
+class VesselWithin : public vesselbase::NormedSumVessel {
 private:
   MultiColvar* mycolv;
   std::vector<HistogramBead> hist;
 public:
   static void reserveKeyword( Keywords& keys );
-  VesselWithin( const VesselOptions& da );
+  VesselWithin( const vesselbase::VesselOptions& da );
   void getWeight( const unsigned& i, Value& weight );
   void compute( const unsigned& i, const unsigned& j, Value& theval );
   void printKeywords();
@@ -49,7 +49,7 @@ void VesselWithin::reserveKeyword( Keywords& keys ){
                                     "\\ref histogrambead. The final values can be referenced using \\e label.between\\f$a\\f$&\\f$b\\f$."); 
 }
 
-VesselWithin::VesselWithin( const VesselOptions& da ) :
+VesselWithin::VesselWithin( const vesselbase::VesselOptions& da ) :
 NormedSumVessel(da)
 { 
 
diff --git a/src/vessel-base/ActionWithVessel.cpp b/src/vessel-base/ActionWithVessel.cpp
index 39636948a..48a3902d2 100644
--- a/src/vessel-base/ActionWithVessel.cpp
+++ b/src/vessel-base/ActionWithVessel.cpp
@@ -24,7 +24,8 @@
 #include "VesselRegister.h"
 
 using namespace std;
-using namespace PLMD;
+namespace PLMD{
+namespace vesselbase{
 
 void ActionWithVessel::registerKeywords(Keywords& keys){
   keys.add("optional","TOL","when accumulating sums quantities that contribute less than this will be ignored.");
@@ -206,3 +207,6 @@ void ActionWithVessel::calculateAllVessels( const int& stepn ){
 void ActionWithVessel::retrieveDomain( std::string& min, std::string& max ){
   plumed_massert(0, "If your function is periodic you need to add a retrieveDomain function so that ActionWithVessel can retrieve the domain");
 }
+
+}
+}
diff --git a/src/vessel-base/ActionWithVessel.h b/src/vessel-base/ActionWithVessel.h
index fcf19aa06..22adc0ea7 100644
--- a/src/vessel-base/ActionWithVessel.h
+++ b/src/vessel-base/ActionWithVessel.h
@@ -29,9 +29,11 @@
 #include <vector>
 
 namespace PLMD{
+class Value;
+
+namespace vesselbase{
 
 class Vessel;
-class Value;
 
 /**
 \ingroup MULTIINHERIT
@@ -169,4 +171,5 @@ Vessel* ActionWithVessel::getPntrToVessel( const unsigned& i ){
 }
 
 } 
+}
 #endif
diff --git a/src/vessel-base/NormedSumVessel.cpp b/src/vessel-base/NormedSumVessel.cpp
index ffe574994..66d100e54 100644
--- a/src/vessel-base/NormedSumVessel.cpp
+++ b/src/vessel-base/NormedSumVessel.cpp
@@ -23,6 +23,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 NormedSumVessel::NormedSumVessel( const VesselOptions& da ):
 VesselAccumulator(da),
@@ -95,3 +96,4 @@ void NormedSumVessel::finish( const double& tolerance ){
 }
 
 }
+}
diff --git a/src/vessel-base/NormedSumVessel.h b/src/vessel-base/NormedSumVessel.h
index 3af883a8d..c111d8ff8 100644
--- a/src/vessel-base/NormedSumVessel.h
+++ b/src/vessel-base/NormedSumVessel.h
@@ -28,6 +28,7 @@
 #include "VesselAccumulator.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class NormedSumVessel : public VesselAccumulator {
 private:
@@ -49,5 +50,6 @@ public:
   virtual void compute( const unsigned& , const unsigned& , Value& )=0;
 };
 
+}
 }
 #endif
diff --git a/src/vessel-base/SumVessel.cpp b/src/vessel-base/SumVessel.cpp
index ddffb2e02..70923af22 100644
--- a/src/vessel-base/SumVessel.cpp
+++ b/src/vessel-base/SumVessel.cpp
@@ -23,6 +23,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 SumVessel::SumVessel( const VesselOptions& da ):
 VesselAccumulator(da)
@@ -57,5 +58,6 @@ void SumVessel::finish( const double& tolerance ){
       copy( myvalue2, getPntrToOutput(i) );
   }
 }
+}
 
 }
diff --git a/src/vessel-base/SumVessel.h b/src/vessel-base/SumVessel.h
index e4b0306dc..feba6ed7e 100644
--- a/src/vessel-base/SumVessel.h
+++ b/src/vessel-base/SumVessel.h
@@ -28,6 +28,7 @@
 #include "VesselAccumulator.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class SumVessel : public VesselAccumulator {
 private:
@@ -44,5 +45,6 @@ public:
   virtual double final_computations( const unsigned& , const double& , double& );
 };
 
+}
 }
 #endif
diff --git a/src/vessel-base/Vessel.cpp b/src/vessel-base/Vessel.cpp
index 863a609a7..8721ef831 100644
--- a/src/vessel-base/Vessel.cpp
+++ b/src/vessel-base/Vessel.cpp
@@ -26,6 +26,7 @@
 #include "tools/Log.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 VesselOptions::VesselOptions(const std::string& thisname, const std::string& params, ActionWithVessel* aa ):
 myname(thisname),
@@ -63,3 +64,4 @@ void Vessel::error( const std::string& msg ){
 }
 
 }
+}
diff --git a/src/vessel-base/Vessel.h b/src/vessel-base/Vessel.h
index 1ab1ddeaf..3e10eed44 100644
--- a/src/vessel-base/Vessel.h
+++ b/src/vessel-base/Vessel.h
@@ -30,6 +30,11 @@
 
 namespace PLMD{
 
+class PlumedCommunicator;
+class Log;
+
+namespace vesselbase{
+
 /**
 \ingroup TOOLBOX
 Vessel is an abstract base class.  The classes that inherit
@@ -40,8 +45,6 @@ on.  This class is used in PLMD::ActionWithVessel.
 
 class ActionWithVessel;
 class Vessel;
-class Log;
-class PlumedCommunicator;
 
 /// This class is used to pass the input to Vessels 
 class VesselOptions {
@@ -146,5 +149,6 @@ double Vessel::getBufferElement( const unsigned& i ) const {
   return data_buffer[i];
 } 
 
+}
 }
 #endif
diff --git a/src/vessel-base/VesselAccumulator.cpp b/src/vessel-base/VesselAccumulator.cpp
index 951a13f75..8c9b0e59b 100644
--- a/src/vessel-base/VesselAccumulator.cpp
+++ b/src/vessel-base/VesselAccumulator.cpp
@@ -23,6 +23,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 VesselAccumulator::VesselAccumulator( const VesselOptions& da ):
 VesselValueAccess(da),
@@ -65,4 +66,5 @@ bool VesselAccumulator::applyForce( std::vector<double>& forces ){
 }
 
 }
+}
 
diff --git a/src/vessel-base/VesselAccumulator.h b/src/vessel-base/VesselAccumulator.h
index 465e8e498..9506d59da 100644
--- a/src/vessel-base/VesselAccumulator.h
+++ b/src/vessel-base/VesselAccumulator.h
@@ -28,6 +28,7 @@
 #include "VesselValueAccess.h"
 
 namespace PLMD {
+namespace vesselbase {
 
 class VesselAccumulator : public VesselValueAccess {
 private:
@@ -64,6 +65,7 @@ unsigned VesselAccumulator::getNumberOfValues() const {
 }
 
 
+}
 }
 #endif
 
diff --git a/src/vessel-base/VesselLessThan.cpp b/src/vessel-base/VesselLessThan.cpp
index 589305051..79a51c645 100644
--- a/src/vessel-base/VesselLessThan.cpp
+++ b/src/vessel-base/VesselLessThan.cpp
@@ -26,6 +26,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class VesselLessThan : public SumVessel {
 private:
@@ -69,3 +70,4 @@ double VesselLessThan::compute( const unsigned& i, const double& val, double& df
 }
 
 }
+}
diff --git a/src/vessel-base/VesselMin.cpp b/src/vessel-base/VesselMin.cpp
index ca12ce1fb..145f9cce7 100644
--- a/src/vessel-base/VesselMin.cpp
+++ b/src/vessel-base/VesselMin.cpp
@@ -24,6 +24,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class VesselMin : public SumVessel {
 private:
@@ -76,3 +77,4 @@ double VesselMin::final_computations( const unsigned& i, const double& valin, do
 }
 
 }
+}
diff --git a/src/vessel-base/VesselMoment.cpp b/src/vessel-base/VesselMoment.cpp
index 151d53b12..d7c846569 100644
--- a/src/vessel-base/VesselMoment.cpp
+++ b/src/vessel-base/VesselMoment.cpp
@@ -25,6 +25,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class VesselMoment : public VesselStoreAllValues {
 private:
@@ -131,3 +132,4 @@ bool VesselMoment::applyForce( std::vector<double>& forces ){
 }
 
 }
+}
diff --git a/src/vessel-base/VesselMoreThan.cpp b/src/vessel-base/VesselMoreThan.cpp
index 495c9806a..16b7ded5b 100644
--- a/src/vessel-base/VesselMoreThan.cpp
+++ b/src/vessel-base/VesselMoreThan.cpp
@@ -26,6 +26,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class VesselMoreThan : public SumVessel {
 private:
@@ -70,3 +71,4 @@ double VesselMoreThan::compute( const unsigned& i, const double& val, double& df
 }
 
 }
+}
diff --git a/src/vessel-base/VesselRegister.cpp b/src/vessel-base/VesselRegister.cpp
index eaa75759e..f57bfc055 100644
--- a/src/vessel-base/VesselRegister.cpp
+++ b/src/vessel-base/VesselRegister.cpp
@@ -23,6 +23,7 @@
 #include "VesselRegister.h"
 
 namespace PLMD{
+namespace vesselbase{
 
 VesselRegister::~VesselRegister(){
   if(m.size()>0){
@@ -68,3 +69,4 @@ Keywords VesselRegister::getKeywords(){
 }
 
 }
+}
diff --git a/src/vessel-base/VesselRegister.h b/src/vessel-base/VesselRegister.h
index 84a7aaaf4..c4f15d66b 100644
--- a/src/vessel-base/VesselRegister.h
+++ b/src/vessel-base/VesselRegister.h
@@ -30,6 +30,7 @@
 #include "Tools/Keywords.h"
 
 namespace PLMD{
+namespace vesselbase{
 
 class Vessel;
 class VesselOptions;
@@ -63,11 +64,12 @@ VesselRegister& vesselRegister();
 
 #define PLUMED_REGISTER_VESSEL(classname,keyword) \
   static class classname##RegisterMe{ \
-    static PLMD::Vessel * create(const PLMD::VesselOptions&da){return new classname(da);} \
+    static PLMD::vesselbase::Vessel * create(const PLMD::vesselbase::VesselOptions&da){return new classname(da);} \
   public: \
-    classname##RegisterMe(){PLMD::vesselRegister().add(keyword,create,classname::reserveKeyword);}; \
-    ~classname##RegisterMe(){PLMD::vesselRegister().remove(create);}; \
+    classname##RegisterMe(){PLMD::vesselbase::vesselRegister().add(keyword,create,classname::reserveKeyword);}; \
+    ~classname##RegisterMe(){PLMD::vesselbase::vesselRegister().remove(create);}; \
   } classname##RegisterMeObject;
 
+}
 }
 #endif
diff --git a/src/vessel-base/VesselStoreAllValues.cpp b/src/vessel-base/VesselStoreAllValues.cpp
index 14e7653e1..15428743e 100644
--- a/src/vessel-base/VesselStoreAllValues.cpp
+++ b/src/vessel-base/VesselStoreAllValues.cpp
@@ -23,6 +23,7 @@
 #include "VesselStoreAllValues.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 VesselStoreAllValues::VesselStoreAllValues( const VesselOptions& da ):
 VesselValueAccess(da)
@@ -48,4 +49,5 @@ bool VesselStoreAllValues::calculate( const unsigned& i, const double& tolerance
 
 }
 
+}
 
diff --git a/src/vessel-base/VesselStoreAllValues.h b/src/vessel-base/VesselStoreAllValues.h
index cd3bccc50..42f8844eb 100644
--- a/src/vessel-base/VesselStoreAllValues.h
+++ b/src/vessel-base/VesselStoreAllValues.h
@@ -28,6 +28,7 @@
 #include "VesselValueAccess.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class VesselStoreAllValues : public VesselValueAccess {
 public:
@@ -41,5 +42,6 @@ public:
   virtual void local_resizing()=0;
 };
 
+}
 }
 #endif
diff --git a/src/vessel-base/VesselSum.cpp b/src/vessel-base/VesselSum.cpp
index 537718903..1855f2de4 100644
--- a/src/vessel-base/VesselSum.cpp
+++ b/src/vessel-base/VesselSum.cpp
@@ -24,6 +24,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class VesselSum : public SumVessel {
 public:
@@ -51,3 +52,4 @@ double VesselSum::compute( const unsigned& i, const double& val, double& df ){
 }
 
 }
+}
diff --git a/src/vessel-base/VesselValueAccess.cpp b/src/vessel-base/VesselValueAccess.cpp
index ab3890878..78fb425e7 100644
--- a/src/vessel-base/VesselValueAccess.cpp
+++ b/src/vessel-base/VesselValueAccess.cpp
@@ -23,6 +23,7 @@
 #include "ActionWithVessel.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 VesselValueAccess::VesselValueAccess( const VesselOptions& da ) :
 Vessel(da)
@@ -42,3 +43,4 @@ void VesselValueAccess::setValueSizes( const std::vector<unsigned>& val_sizes ){
 }
 
 }
+}
diff --git a/src/vessel-base/VesselValueAccess.h b/src/vessel-base/VesselValueAccess.h
index a89a9983b..7efd2d444 100644
--- a/src/vessel-base/VesselValueAccess.h
+++ b/src/vessel-base/VesselValueAccess.h
@@ -29,6 +29,7 @@
 #include "core/Value.h"
 
 namespace PLMD {
+namespace vesselbase{
 
 class VesselValueAccess : public Vessel {
 private:
@@ -66,5 +67,6 @@ double VesselValueAccess::getValue( const unsigned& icv ) const {
    return getBufferElement( value_starts[icv] );
 }
 
+}
 }  
 #endif
-- 
GitLab