22 #ifndef __PLUMED_multicolvar_StoreColvarVessel_h
23 #define __PLUMED_multicolvar_StoreColvarVessel_h
28 #include "vesselbase/Vessel.h"
29 #include "tools/DynamicList.h"
32 namespace multicolvar{
34 class MultiColvarBase;
48 double getValue(
const unsigned& )
const ;
50 double getWeight(
const unsigned& )
const ;
75 plumed_dbg_assert( ival<
start.size()-1 );
81 plumed_dbg_assert( ival<
start.size()-1 );
87 return start.size()-1;
virtual void performCalculationUsingAllValues()=0
Do the calculation.
A class for holding the value of a function together with its derivatives.
unsigned getNumberOfStoredColvars() const
Get the number of stored colvar values.
double getBufferElement(const unsigned &i) const
Get the value in the ith element of the buffer.
bool calculate()
This makes sure all values are stored.
virtual void local_resizing()=0
This makes sure things further down the chain are resized.
void resize()
This does the resizing of the buffer.
std::vector< DynamicList< unsigned > > active_atoms
void addDerivatives(const unsigned &ival, double &pref, Value *value_out)
Add the derivatives from the value.
double getValue(const unsigned &) const
Get the ith value in the vessel.
This class holds the keywords and their documentation.
static void registerKeywords(Keywords &keys)
void addWeightDerivatives(const unsigned &ival, double &pref, Value *value_out)
Add the derivatives from the weight of the value.
StoreColvarVessel(const vesselbase::VesselOptions &)
Constructor.
This class is used to pass the input to Vessels.
unsigned getNumberOfTerms()
Return the number of terms.
void finish()
Makes sure the dynamic lists are gathered.
bool diffweight
Are the weights differentiable.
double getWeight(const unsigned &) const
Get the weight of the ith quantity in the vessel.
std::vector< unsigned > start