Objects that inherit from FunctionVessel can be used (in tandem with PLMD::vesselbase::ActionWithVessel) to store values and derivatives for a set of scalars or vectors that are calculated by a PLMD::vesselbase::ActionWithVessel. More...
#include <StoreDataVessel.h>
Public Member Functions | |
StoreDataVessel (const VesselOptions &) | |
unsigned | getNumberOfStoredValues () const |
Get the number of values that have been stored. More... | |
void | setHardCutoffOnWeight (const double &mytol) |
Set a hard cutoff on the weight of an element. More... | |
bool | weightCutoffIsOn () const |
Is the hard weight cutoff on. More... | |
unsigned | getNumberOfComponents () const |
Return the number of components in the vector. More... | |
void | retrieveValue (const unsigned &myelem, const bool &normed, std::vector< double > &values) const |
Get the values of all the components in the vector. More... | |
void | retrieveDerivatives (const unsigned &myelem, const bool &normed, MultiValue &myvals) |
Get the derivatives for one of the components in the vector. More... | |
virtual void | resize () |
Do all resizing of data. More... | |
virtual std::string | description () |
Clear certain data before start of main loop. More... | |
unsigned | getNumberOfDerivatives (const unsigned &) |
Get the number of derivatives for the ith value. More... | |
unsigned | getSizeOfDerivativeList () const |
Get the size of the derivative list. More... | |
virtual bool | calculate (const unsigned ¤t, MultiValue &myvals, std::vector< double > &buffer, std::vector< unsigned > &der_index) const |
This stores the data when not using lowmem. More... | |
virtual void | finish (const std::vector< double > &buffer) |
Build index stores. More... | |
bool | storedValueIsActive (const unsigned &iatom) |
Is a particular stored value active at the present time. More... | |
void | setActiveValsAndDerivatives (const std::vector< unsigned > &der_index) |
Set the active values. More... | |
virtual void | activateIndices (ActionWithVessel *) |
Activate indexes (this is used at end of chain rule) More... | |
virtual bool | applyForce (std::vector< double > &) |
Forces on vectors should always be applied elsewhere. More... | |
std::string | getName () const |
Return the name. More... | |
std::string | getLabel () const |
Return the label. More... | |
void | checkRead () |
Check that readin was fine. More... | |
virtual void | setBufferStart (unsigned &start) |
Set the start of the buffer. More... | |
virtual void | prepare () |
Do something before the loop. More... | |
virtual MultiValue & | transformDerivatives (const unsigned ¤t, MultiValue &myvals, MultiValue &bvals) |
This is replaced in bridges so we can transform the derivatives. More... | |
Static Public Member Functions | |
static void | registerKeywords (Keywords &keys) |
static std::string | transformName (const std::string &name) |
Convert the name to the label of the component. More... | |
Public Attributes | |
Log & | log |
Reference to the log on which to output details. More... | |
Protected Member Functions | |
bool | weightHasDerivatives () |
Is the weight differentiable. More... | |
bool | usingLowMem () |
Are we using low mem option. More... | |
void | completeSetup (const unsigned &, const unsigned &) |
Finish the setup of the storage object by setting how much data has to be stored. More... | |
unsigned | getNumberOfDerivativeSpacesPerComponent () const |
Return value of nspace. More... | |
void | storeValues (const unsigned &, MultiValue &, std::vector< double > &) const |
Retrieve the values from the underlying ActionWithVessel. More... | |
void | storeDerivatives (const unsigned &, MultiValue &myvals, std::vector< double > &, std::vector< unsigned > &) const |
This stores the data we get from the calculation. More... | |
double | getLocalDerivative (const unsigned &ibuf) |
Get the ibuf'th local derivative value. More... | |
void | setLocalDerivative (const unsigned &ibuf, const double &val) |
Set the ibuf'th local derivative value. More... | |
int | getNumericalLabel () const |
Return the numerical label. More... | |
void | error (const std::string &errmsg) |
Report an error. More... | |
template<class T > | |
void | parse (const std::string &key, T &t) |
Parse something from the input. More... | |
template<class T > | |
void | parseVector (const std::string &key, std::vector< T > &t) |
Parse one keyword as std::vector. More... | |
void | parseFlag (const std::string &key, bool &t) |
Parse one keyword as boolean flag. More... | |
std::string | getAllInput () |
This returns the whole input line (it is used for less_than/more_than/between) More... | |
ActionWithVessel * | getAction () const |
Return a pointer to the action we are working in. More... | |
double | getTolerance () const |
Return the value of the tolerance. More... | |
double | getNLTolerance () const |
Return the value of the neighbor list tolerance. More... | |
void | resizeBuffer (const unsigned &n) |
Set the size of the data buffer. More... | |
Protected Attributes | |
bool | hard_cut |
Apply a hard cutoff on the weight. More... | |
double | wtol |
The value of the cutoff on the weight. More... | |
unsigned | bufstart |
The start of this Vessel's buffer in buffer in the underlying ActionWithVessel. More... | |
Communicator & | comm |
A copy of the communicator. More... | |
Private Attributes | |
bool | hasderiv |
Do the quantities being stored in here need derivatives. More... | |
unsigned | max_lowmem_stash |
What is the maximum number of vectors we are going to have to store when using lowmem option. More... | |
unsigned | vecsize |
The size of the vector we are computing. More... | |
unsigned | nspace |
The amount of data per vector element. More... | |
std::vector< unsigned > | active_der |
The currently active values. More... | |
std::vector< double > | local_buffer |
The buffer. More... | |
Friends | |
class | Moments |
Objects that inherit from FunctionVessel can be used (in tandem with PLMD::vesselbase::ActionWithVessel) to store values and derivatives for a set of scalars or vectors that are calculated by a PLMD::vesselbase::ActionWithVessel.
Functions of these stored quantities can then be calculated in a second step.
|
explicit |
|
inlinevirtual |
Activate indexes (this is used at end of chain rule)
|
inlinevirtual |
Forces on vectors should always be applied elsewhere.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::vesselbase::Moments.
|
virtual |
This stores the data when not using lowmem.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::multicolvar::AdjacencyMatrixVessel.
|
inherited |
Check that readin was fine.
|
protected |
Finish the setup of the storage object by setting how much data has to be stored.
|
inlinevirtual |
Clear certain data before start of main loop.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::vesselbase::Moments.
|
protectedinherited |
Report an error.
|
virtual |
Build index stores.
Final step in gathering data
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::multicolvar::AdjacencyMatrixVessel, and PLMD::vesselbase::Moments.
|
inlineprotectedinherited |
Return a pointer to the action we are working in.
|
protectedinherited |
This returns the whole input line (it is used for less_than/more_than/between)
|
inherited |
Return the label.
|
protected |
Get the ibuf'th local derivative value.
|
inherited |
Return the name.
|
inlineprotectedinherited |
Return the value of the neighbor list tolerance.
|
inline |
Return the number of components in the vector.
unsigned PLMD::vesselbase::StoreDataVessel::getNumberOfDerivatives | ( | const unsigned & | ) |
Get the number of derivatives for the ith value.
|
inlineprotected |
Return value of nspace.
|
inline |
Get the number of values that have been stored.
|
inlineprotectedinherited |
Return the numerical label.
|
inline |
Get the size of the derivative list.
|
inlineprotectedinherited |
Return the value of the tolerance.
|
protectedinherited |
Parse something from the input.
|
protectedinherited |
Parse one keyword as boolean flag.
|
protectedinherited |
Parse one keyword as std::vector.
|
inlinevirtualinherited |
Do something before the loop.
Reimplemented in PLMD::vesselbase::BridgeVessel, PLMD::multicolvar::AdjacencyMatrixVessel, and PLMD::mapping::SpathVessel.
|
static |
|
virtual |
Do all resizing of data.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::vesselbase::Moments.
|
inlineprotectedinherited |
Set the size of the data buffer.
void PLMD::vesselbase::StoreDataVessel::retrieveDerivatives | ( | const unsigned & | myelem, |
const bool & | normed, | ||
MultiValue & | myvals | ||
) |
Get the derivatives for one of the components in the vector.
void PLMD::vesselbase::StoreDataVessel::retrieveValue | ( | const unsigned & | myelem, |
const bool & | normed, | ||
std::vector< double > & | values | ||
) | const |
Get the values of all the components in the vector.
void PLMD::vesselbase::StoreDataVessel::setActiveValsAndDerivatives | ( | const std::vector< unsigned > & | der_index | ) |
Set the active values.
|
inlinevirtualinherited |
Set the start of the buffer.
Reimplemented in PLMD::vesselbase::BridgeVessel, and PLMD::multicolvar::AdjacencyMatrixVessel.
void PLMD::vesselbase::StoreDataVessel::setHardCutoffOnWeight | ( | const double & | mytol | ) |
Set a hard cutoff on the weight of an element.
|
protected |
Set the ibuf'th local derivative value.
|
protected |
This stores the data we get from the calculation.
|
inline |
Is a particular stored value active at the present time.
|
protected |
Retrieve the values from the underlying ActionWithVessel.
|
inlinevirtualinherited |
This is replaced in bridges so we can transform the derivatives.
Reimplemented in PLMD::vesselbase::BridgeVessel.
|
staticinherited |
Convert the name to the label of the component.
|
inlineprotected |
Are we using low mem option.
bool PLMD::vesselbase::StoreDataVessel::weightCutoffIsOn | ( | ) | const |
Is the hard weight cutoff on.
|
inlineprotected |
Is the weight differentiable.
|
friend |
|
private |
The currently active values.
The active derivative elements
|
protectedinherited |
The start of this Vessel's buffer in buffer in the underlying ActionWithVessel.
|
protectedinherited |
A copy of the communicator.
|
protected |
Apply a hard cutoff on the weight.
|
private |
Do the quantities being stored in here need derivatives.
|
private |
The buffer.
|
inherited |
Reference to the log on which to output details.
|
private |
What is the maximum number of vectors we are going to have to store when using lowmem option.
|
private |
The amount of data per vector element.
|
private |
The size of the vector we are computing.
|
protected |
The value of the cutoff on the weight.
Hosted by GitHub | 1.8.10 |