Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
PLMD::vesselbase::FunctionVessel Class Referenceabstract

Objects that inherit from FunctionVessel can be used (in tandem with PLMD::vesselbase::ActionWithVessel) to calculate functions of the form \(\prod_k H_k[ \sum_j \prod_i g_i(x) ]\). More...

#include <FunctionVessel.h>

Inheritance diagram for PLMD::vesselbase::FunctionVessel:
Inheritance graph
[legend]

Public Member Functions

 FunctionVessel (const VesselOptions &)
 
virtual void resize ()
 This does the resizing of the buffer. More...
 
virtual bool calculate (const unsigned &current, MultiValue &myvals, std::vector< double > &buffer, std::vector< unsigned > &der_list) const
 Do the calcualtion. More...
 
virtual double calcTransform (const double &val, double &df) const
 Do any transformations of the value that are required. More...
 
virtual void finish (const std::vector< double > &buffer)
 Finish the calculation of the quantity. More...
 
virtual double finalTransform (const double &val, double &dv)
 Finish with any transforms required. More...
 
std::string description ()
 Return a description of the vessel contents. More...
 
virtual std::string value_descriptor ()=0
 
bool applyForce (std::vector< double > &forces)
 Retrieve the forces on the quantities in the vessel. 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 MultiValuetransformDerivatives (const unsigned &current, 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

Loglog
 Reference to the log on which to output details. More...
 

Protected Member Functions

ValuegetFinalValue () const
 
void setOutputValue (const double &val)
 Set the final 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...
 
ActionWithVesselgetAction () 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 diffweight
 Are the derivatives differentiable. More...
 
bool norm
 Are we normalising by the weight. More...
 
bool usetol
 Are we using the tolerance. More...
 
unsigned bufstart
 The start of this Vessel's buffer in buffer in the underlying ActionWithVessel. More...
 
Communicatorcomm
 A copy of the communicator. More...
 

Detailed Description

Objects that inherit from FunctionVessel can be used (in tandem with PLMD::vesselbase::ActionWithVessel) to calculate functions of the form \(\prod_k H_k[ \sum_j \prod_i g_i(x) ]\).

They should take in a series of values and return one single value.

Constructor & Destructor Documentation

PLMD::vesselbase::FunctionVessel::FunctionVessel ( const VesselOptions da)
explicit

Member Function Documentation

bool PLMD::vesselbase::ValueVessel::applyForce ( std::vector< double > &  forces)
virtualinherited

Retrieve the forces on the quantities in the vessel.

Implements PLMD::vesselbase::Vessel.

double PLMD::vesselbase::FunctionVessel::calcTransform ( const double &  val,
double &  df 
) const
virtual
bool PLMD::vesselbase::FunctionVessel::calculate ( const unsigned &  current,
MultiValue myvals,
std::vector< double > &  buffer,
std::vector< unsigned > &  der_list 
) const
virtual
void PLMD::vesselbase::Vessel::checkRead ( )
inherited

Check that readin was fine.

std::string PLMD::vesselbase::ValueVessel::description ( )
virtualinherited

Return a description of the vessel contents.

Implements PLMD::vesselbase::Vessel.

void PLMD::vesselbase::Vessel::error ( const std::string &  errmsg)
protectedinherited

Report an error.

double PLMD::vesselbase::FunctionVessel::finalTransform ( const double &  val,
double &  dv 
)
virtual

Finish with any transforms required.

Reimplemented in PLMD::mapping::ZpathVessel, PLMD::vesselbase::Max, PLMD::vesselbase::Min, and PLMD::mapping::AltMin.

void PLMD::vesselbase::FunctionVessel::finish ( const std::vector< double > &  buffer)
virtual
ActionWithVessel * PLMD::vesselbase::Vessel::getAction ( ) const
inlineprotectedinherited

Return a pointer to the action we are working in.

std::string PLMD::vesselbase::Vessel::getAllInput ( )
protectedinherited

This returns the whole input line (it is used for less_than/more_than/between)

Value * PLMD::vesselbase::ValueVessel::getFinalValue ( ) const
inlineprotectedinherited
std::string PLMD::vesselbase::Vessel::getLabel ( ) const
inherited

Return the label.

std::string PLMD::vesselbase::Vessel::getName ( ) const
inherited

Return the name.

double PLMD::vesselbase::Vessel::getNLTolerance ( ) const
inlineprotectedinherited

Return the value of the neighbor list tolerance.

int PLMD::vesselbase::Vessel::getNumericalLabel ( ) const
inlineprotectedinherited

Return the numerical label.

double PLMD::vesselbase::Vessel::getTolerance ( ) const
inlineprotectedinherited

Return the value of the tolerance.

template<class T >
void PLMD::vesselbase::Vessel::parse ( const std::string &  key,
T &  t 
)
protectedinherited

Parse something from the input.

void PLMD::vesselbase::Vessel::parseFlag ( const std::string &  key,
bool &  t 
)
protectedinherited

Parse one keyword as boolean flag.

template<class T >
void PLMD::vesselbase::Vessel::parseVector ( const std::string &  key,
std::vector< T > &  t 
)
protectedinherited

Parse one keyword as std::vector.

virtual void PLMD::vesselbase::Vessel::prepare ( )
inlinevirtualinherited
void PLMD::vesselbase::FunctionVessel::registerKeywords ( Keywords keys)
static
void PLMD::vesselbase::FunctionVessel::resize ( )
virtual
void PLMD::vesselbase::Vessel::resizeBuffer ( const unsigned &  n)
inlineprotectedinherited

Set the size of the data buffer.

void PLMD::vesselbase::Vessel::setBufferStart ( unsigned &  start)
inlinevirtualinherited

Set the start of the buffer.

Reimplemented in PLMD::vesselbase::BridgeVessel, and PLMD::multicolvar::AdjacencyMatrixVessel.

void PLMD::vesselbase::ValueVessel::setOutputValue ( const double &  val)
inlineprotectedinherited

Set the final value.

MultiValue & PLMD::vesselbase::Vessel::transformDerivatives ( const unsigned &  current,
MultiValue myvals,
MultiValue bvals 
)
inlinevirtualinherited

This is replaced in bridges so we can transform the derivatives.

Reimplemented in PLMD::vesselbase::BridgeVessel.

std::string PLMD::vesselbase::Vessel::transformName ( const std::string &  name)
staticinherited

Convert the name to the label of the component.

virtual std::string PLMD::vesselbase::ValueVessel::value_descriptor ( )
pure virtualinherited

Member Data Documentation

unsigned PLMD::vesselbase::Vessel::bufstart
protectedinherited

The start of this Vessel's buffer in buffer in the underlying ActionWithVessel.

Communicator& PLMD::vesselbase::Vessel::comm
protectedinherited

A copy of the communicator.

bool PLMD::vesselbase::FunctionVessel::diffweight
protected

Are the derivatives differentiable.

Log& PLMD::vesselbase::Vessel::log
inherited

Reference to the log on which to output details.

bool PLMD::vesselbase::FunctionVessel::norm
protected

Are we normalising by the weight.

bool PLMD::vesselbase::FunctionVessel::usetol
protected

Are we using the tolerance.


The documentation for this class was generated from the following files: