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 &) | |
| virtual void | activateIndices (ActionWithVessel *) |
| Activate indexes (this is used at end of chain rule). | |
| void | addActionThatUses (ActionWithVessel *actionThatUses) |
| Add an action that uses this data. | |
| bool | applyForce (std::vector< double > &) override |
| Forces on vectors should always be applied elsewhere. | |
| void | calculate (const unsigned ¤t, MultiValue &myvals, std::vector< double > &buffer, std::vector< unsigned > &der_index) const override |
| This stores the data when not using lowmem. | |
| void | checkRead () |
| Check that readin was fine. | |
| std::string | description () override |
| Return a description of the vessel contents. | |
| void | finish (const std::vector< double > &buffer) override |
| Final step in gathering data. | |
| ActionWithVessel * | getDataUser (const unsigned &) |
| Get one of the ith data user. | |
| std::string | getLabel () const |
| Return the label. | |
| std::string | getName () const |
| Return the name. | |
| unsigned | getNumberOfComponents () const |
| Return the number of components in the vector. | |
| unsigned | getNumberOfDataUsers () const |
| Get the number of data users. | |
| unsigned | getNumberOfDerivatives (const unsigned &) |
| Get the number of derivatives for the ith value. | |
| virtual unsigned | getNumberOfStoredValues () const |
| Get the number of values that have been stored. | |
| unsigned | getSizeOfDerivativeList () const |
| Get the size of the derivative list. | |
| unsigned | getStoreIndex (const unsigned &) const |
| Get the index to store a particular index inside. | |
| MultiValue & | getTemporyMultiValue (const unsigned &ind) |
| Return a tempory multi value - we do this so as to avoid vector resizing. | |
| unsigned | getTrueIndex (const unsigned &) const |
| Get the true index of a quantity from the index it is stored in. | |
| virtual void | prepare () |
| Do something before the loop. | |
| void | recalculateStoredQuantity (const unsigned &myelm, MultiValue &myvals) |
| Recalculate one of the base quantities. | |
| void | resize () override |
| Do all resizing of data. | |
| void | resizeTemporyMultiValues (const unsigned &nvals) |
| Set the number of tempory multivalues we need. | |
| void | retrieveDerivatives (const unsigned &myelem, const bool &normed, MultiValue &myvals) |
| Get the derivatives for one of the components in the vector. | |
| void | retrieveSequentialValue (const unsigned &myelem, const bool &normed, std::vector< double > &values) const |
| Get the values of all the components in the vector. | |
| void | retrieveValueWithIndex (const unsigned &myelem, const bool &normed, std::vector< double > &values) const |
| double | retrieveWeightWithIndex (const unsigned &myelem) const |
| void | setActiveValsAndDerivatives (const std::vector< unsigned > &der_index) |
| Set the active values. | |
| virtual void | setBufferStart (unsigned &start) |
| Set the start of the buffer. | |
| void | setHardCutoffOnWeight (const double &mytol) |
| Set a hard cutoff on the weight of an element. | |
| bool | storedValueIsActive (const unsigned &iatom) const |
| Is a particular stored value active at the present time. | |
| virtual MultiValue & | transformDerivatives (const unsigned ¤t, MultiValue &myvals, MultiValue &bvals) |
| This is replaced in bridges so we can transform the derivatives. | |
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. | |
Protected Member Functions | |
| void | completeSetup (const unsigned &, const unsigned &) |
| Finish the setup of the storage object by setting how much data has to be stored. | |
| void | error (const std::string &errmsg) |
| Report an error. | |
| ActionWithVessel * | getAction () const |
| Return a pointer to the action we are working in. | |
| std::string | getAllInput () |
| This returns the whole input line (it is used for less_than/more_than/between). | |
| double | getLocalDerivative (const unsigned &ibuf) |
| Get the ibuf'th local derivative value. | |
| double | getNLTolerance () const |
| Return the value of the neighbor list tolerance. | |
| unsigned | getNumberOfDerivativeSpacesPerComponent () const |
| Return value of nspace. | |
| int | getNumericalLabel () const |
| Return the numerical label. | |
| unsigned | getSizeOfBuffer () const |
| Return the size of the buffer. | |
| double | getTolerance () const |
| Return the value of the tolerance. | |
| template<class T> | |
| void | parse (const std::string &key, T &t) |
| Parse something from the input. | |
| void | parseFlag (const std::string &key, bool &t) |
| Parse one keyword as boolean flag. | |
| template<class T> | |
| void | parseVector (const std::string &key, std::vector< T > &t) |
| Parse one keyword as std::vector. | |
| void | resizeBuffer (const unsigned &n) |
| Set the size of the data buffer. | |
| void | setLocalDerivative (const unsigned &ibuf, const double &val) |
| Set the ibuf'th local derivative value. | |
| void | storeDerivatives (const unsigned &, MultiValue &myvals, std::vector< double > &, std::vector< unsigned > &) const |
| This stores the data we get from the calculation. | |
| void | storeValues (const unsigned &, MultiValue &, std::vector< double > &) const |
| Retrieve the values from the underlying ActionWithVessel. | |
| bool | usingLowMem () |
| Are we using low mem option. | |
| bool | weightHasDerivatives () |
| Is the weight differentiable. | |
Protected Attributes | |
| unsigned | bufstart |
| The start of this Vessel's buffer in buffer in the underlying ActionWithVessel. | |
Private Attributes | |
| ActionWithVessel * | action |
| The action that this vessel is created within. | |
| std::vector< unsigned > | active_der |
| The currently active values. | |
| unsigned | bufsize |
| The number of elements in this vessel's buffered data. | |
| bool | finished_read |
| This just checks we have done checkRead. | |
| bool | hasderiv |
| Do the quantities being stored in here need derivatives. | |
| const PLMD::Keywords & | keywords |
| The keywords. | |
| std::vector< std::string > | line |
| Directive line. | |
| std::vector< double > | local_buffer |
| The buffer. | |
| unsigned | max_lowmem_stash |
| What is the maximum number of vectors we are going to have to store when using lowmem option. | |
| std::vector< MultiValue > | my_tmp_vals |
| std::string | mylabel |
| The label for the vessel for referencing. | |
| std::string | myname |
| The keyword for the vessel in the input file. | |
| std::size_t | nspace |
| The amount of data per vector element. | |
| const int | numlab |
| The numerical label for this object. | |
| unsigned | tmp_index |
| We create a vector of tempory MultiValues here so as to avoid lots of vector resizing. | |
| std::vector< ActionWithVessel * > | userActions |
| The actions that are going to use the stored data. | |
| std::size_t | vecsize |
| The size of the vector we are computing. | |
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).
| void PLMD::vesselbase::StoreDataVessel::addActionThatUses | ( | ActionWithVessel * | actionThatUses | ) |
Add an action that uses this data.
|
inlineoverridevirtual |
Forces on vectors should always be applied elsewhere.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::mapping::TrigonometricPathVessel.
|
overridevirtual |
This stores the data when not using lowmem.
Implements PLMD::vesselbase::Vessel.
|
inherited |
Check that readin was fine.
|
protected |
Finish the setup of the storage object by setting how much data has to be stored.
|
inlineoverridevirtual |
Return a description of the vessel contents.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::mapping::TrigonometricPathVessel.
|
protectedinherited |
Report an error.
|
overridevirtual |
Final step in gathering data.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::mapping::TrigonometricPathVessel.
|
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).
|
inline |
Get one of the ith data user.
|
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.
|
inline |
Get the number of data users.
| unsigned PLMD::vesselbase::StoreDataVessel::getNumberOfDerivatives | ( | const unsigned & | ) |
Get the number of derivatives for the ith value.
|
inlineprotected |
Return value of nspace.
|
inlinevirtual |
Get the number of values that have been stored.
|
inlineprotectedinherited |
Return the numerical label.
|
inlineprotectedinherited |
Return the size of the buffer.
|
inline |
Get the size of the derivative list.
|
inline |
Get the index to store a particular index inside.
| MultiValue & PLMD::vesselbase::StoreDataVessel::getTemporyMultiValue | ( | const unsigned & | ind | ) |
Return a tempory multi value - we do this so as to avoid vector resizing.
|
inlineprotectedinherited |
Return the value of the tolerance.
|
inline |
Get the true index of a quantity from the index it is stored in.
|
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::mapping::SpathVessel, and PLMD::vesselbase::BridgeVessel.
|
inline |
Recalculate one of the base quantities.
|
static |
|
overridevirtual |
Do all resizing of data.
Implements PLMD::vesselbase::Vessel.
Reimplemented in PLMD::mapping::TrigonometricPathVessel.
|
inlineprotectedinherited |
Set the size of the data buffer.
| void PLMD::vesselbase::StoreDataVessel::resizeTemporyMultiValues | ( | const unsigned & | nvals | ) |
Set the number of tempory multivalues we need.
| 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::retrieveSequentialValue | ( | 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::retrieveValueWithIndex | ( | const unsigned & | myelem, |
| const bool & | normed, | ||
| std::vector< double > & | values ) const |
| double PLMD::vesselbase::StoreDataVessel::retrieveWeightWithIndex | ( | const unsigned & | myelem | ) | const |
| 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.
| 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.
|
inlineprotected |
Is the weight differentiable.
|
friend |
|
privateinherited |
The action that this vessel is created within.
|
private |
The currently active values.
The active derivative elements
|
privateinherited |
The number of elements in this vessel's buffered data.
|
protectedinherited |
The start of this Vessel's buffer in buffer in the underlying ActionWithVessel.
|
privateinherited |
This just checks we have done checkRead.
|
private |
Do the quantities being stored in here need derivatives.
|
privateinherited |
The keywords.
|
privateinherited |
Directive line.
This line is progressively erased during vessel construction so as to check if all the present keywords are correct.
|
private |
The buffer.
|
private |
What is the maximum number of vectors we are going to have to store when using lowmem option.
|
private |
|
privateinherited |
The label for the vessel for referencing.
|
privateinherited |
The keyword for the vessel in the input file.
|
private |
The amount of data per vector element.
|
privateinherited |
The numerical label for this object.
|
private |
We create a vector of tempory MultiValues here so as to avoid lots of vector resizing.
|
private |
The actions that are going to use the stored data.
|
private |
The size of the vector we are computing.
Hosted by GitHub
|
1.17.0
|