diff --git a/src/core/ActionWithValue.h b/src/core/ActionWithValue.h index 2bb744a9a81557e4ede0a1677a6a53f71954c2e9..15c03f59e888cfd404fc41f595263aae06a59b56 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 a8d11d5d2021ba7d6bac1fd7a0ee918e4b60e354..9b83aa7fb17cc39c84532aaa7884397d50345bd5 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 eb9db602fdff1e84f3863426b7c67f2c6a472e98..38e90252b6ba15ec6c85b7c0b0d195cb430eba66 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 d88d80a168ef65be44473873c1ad98a5d16c81bf..e9a5ecd91e9771bc66a2a54e32f6d49605e8b224 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 de6088d619d094483cbbb8e3bd6589aa1ffc799e..06be7c78da97217bda5012952ff69f0cc12cfeaf 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 5558951c597f9aa29fca59285a109a146074b1c8..e864c7d2e6754902761b9d6424249a1a3391868c 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 39636948ae469698a9b05a47238d0eff916f7473..48a3902d2137e295d13301262b167d2cd1b6ef95 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 fcf19aa061280164e117b725f9077004974e1584..22adc0ea7fab11b92a6eeda8981320818ca0ab82 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 ffe57499408510b35eec89bbff5b9638b77f689c..66d100e5449a59db6375ebda34400b122ef45c26 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 3af883a8d9dbd4ac3b37aa54cae8ae42d3c0943a..c111d8ff8b7458704d603a922f9f8bcc24dfdfb1 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 ddffb2e02f24ef3d5cfdfeaf0166bbde31f6599c..70923af22250fac479c0d07b14dc679c2c842294 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 e4b0306dc44d313f7d6161c425bfd36205e12110..feba6ed7ec75ab7877a94690376813a3ac8a05d7 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 863a609a7b09587a71eb3f85e332d5650f0702cf..8721ef831915b61605716e7e7eaaa50053f8555b 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 1ab1ddeafbde78f8b6328ff81181fbf71ec61849..3e10eed44e8b6e88f71c0ac786a8b4c1b77a03a7 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 951a13f75ba331b01a5866e1be2c42c1bc310a9f..8c9b0e59b7be1abcfe1abd6ed6b833762493f436 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 465e8e4983ee2fe6872e8e3e37a52ad85abbf274..9506d59dae3ca9c0b8c9342fa7fcf3e07331676b 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 58930505117167f15a805f20008e01c788d91e76..79a51c645bdf1a8c6583bf4642c45d18e55cd244 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 ca12ce1fb072f59dce111c5a4e61ee714d07eb62..145f9cce74c3222fc2d114d021b8f790d4421d13 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 151d53b12fea4058ba6aa40c9c4e159b2b0d6445..d7c846569556122574c46c20bf204f0095a4a9e5 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 495c9806a22e68d7906985acb4271115108c771b..16b7ded5b921cc22956af5ecdc97f9c590257444 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 eaa75759ee745cafbd1c361573bc84ef38746dd7..f57bfc05529018ab7d1ff4897c2cb56a8a247deb 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 84a7aaaf4d394f32454a72bd6da5b18014331247..c4f15d66be25f0e3ad5a60baba5edc50f24130ca 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 14e7653e14c6c048fcc809bde13b02968917ba7f..15428743e4aff4f76c37365c7f4ba2f5a48e5a47 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 cd3bccc50c352e3904c271015ba14e9f99d9b90f..42f8844eb54d88f0b1a9b0bce9fe50131c13ffc2 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 537718903297ea1839ed2416931b8a01997ed7ac..1855f2de4b3ccfc853de3e350a8e3ace026fbaa1 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 ab38908782d502e8f227dbf104617b6e5debf43b..78fb425e77aef1f9752f05b1d5c4e95fe5b87202 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 a89a9983b5b77240952fd27c9af52e3781cc603b..7efd2d444e82e63301ad71d76e630499d9ea03ca 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