Public Member Functions | Static Public Member Functions | 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 &)
 
bool applyForce (std::vector< double > &forces) override
 Retrieve the forces on the quantities in the vessel. More...
 
virtual double calcTransform (const double &val, double &df) const
 Do any transformations of the value that are required. More...
 
void calculate (const unsigned &current, MultiValue &myvals, std::vector< double > &buffer, std::vector< unsigned > &der_list) const override
 Do the calcualtion. More...
 
void checkRead ()
 Check that readin was fine. More...
 
std::string description () override
 Return a description of the vessel contents. More...
 
virtual double finalTransform (const double &val, double &dv)
 Finish with any transforms required. More...
 
void finish (const std::vector< double > &buffer) override
 Finish the calculation of the quantity. More...
 
ValuegetFinalValue () const
 
std::string getLabel () const
 Return the label. More...
 
std::string getName () const
 Return the name. More...
 
double getOutputValue () const
 
virtual void prepare ()
 Do something before the loop. More...
 
void resize () override
 This does the resizing of the buffer. More...
 
virtual void setBufferStart (unsigned &start)
 Set the start of the buffer. More...
 
virtual MultiValuetransformDerivatives (const unsigned &current, MultiValue &myvals, MultiValue &bvals)
 This is replaced in bridges so we can transform the derivatives. More...
 
virtual std::string value_descriptor ()=0
 

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...
 

Protected Member Functions

void error (const std::string &errmsg)
 Report an error. More...
 
ActionWithVesselgetAction () const
 Return a pointer to the action we are working in. More...
 
std::string getAllInput ()
 This returns the whole input line (it is used for less_than/more_than/between) More...
 
double getNLTolerance () const
 Return the value of the neighbor list tolerance. More...
 
int getNumericalLabel () const
 Return the numerical label. More...
 
unsigned getSizeOfBuffer () const
 Return the size of the buffer. More...
 
double getTolerance () const
 Return the value of the tolerance. More...
 
template<class T >
void parse (const std::string &key, T &t)
 Parse something from the input. More...
 
void parseFlag (const std::string &key, bool &t)
 Parse one keyword as boolean flag. More...
 
template<class T >
void parseVector (const std::string &key, std::vector< T > &t)
 Parse one keyword as std::vector. More...
 
void resizeBuffer (const unsigned &n)
 Set the size of the data buffer. More...
 
void setOutputValue (const double &val)
 Set the final value. More...
 

Protected Attributes

unsigned bufstart
 The start of this Vessel's buffer in buffer in the underlying ActionWithVessel. More...
 
bool diffweight
 Are the derivatives differentiable. More...
 
unsigned mycomp
 The component that is being averaged/accumulated whatever. More...
 
bool norm
 Are we normalising by the weight. More...
 
bool usetol
 Are we using the tolerance. 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

◆ FunctionVessel()

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

Member Function Documentation

◆ applyForce()

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

Retrieve the forces on the quantities in the vessel.

Implements PLMD::vesselbase::Vessel.

◆ calcTransform()

double PLMD::vesselbase::FunctionVessel::calcTransform ( const double &  val,
double &  df 
) const
virtual

◆ calculate()

void PLMD::vesselbase::FunctionVessel::calculate ( const unsigned &  current,
MultiValue myvals,
std::vector< double > &  buffer,
std::vector< unsigned > &  der_list 
) const
overridevirtual

Do the calcualtion.

Implements PLMD::vesselbase::Vessel.

◆ checkRead()

void PLMD::vesselbase::Vessel::checkRead ( )
inherited

Check that readin was fine.

◆ description()

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

Return a description of the vessel contents.

Implements PLMD::vesselbase::Vessel.

◆ error()

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

Report an error.

◆ finalTransform()

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::vesselbase::AltMin.

◆ finish()

void PLMD::vesselbase::FunctionVessel::finish ( const std::vector< double > &  buffer)
overridevirtual

Finish the calculation of the quantity.

Implements PLMD::vesselbase::Vessel.

◆ getAction()

ActionWithVessel * PLMD::vesselbase::Vessel::getAction ( ) const
inlineprotectedinherited

Return a pointer to the action we are working in.

◆ getAllInput()

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

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

◆ getFinalValue()

Value * PLMD::vesselbase::ValueVessel::getFinalValue ( ) const
inlineinherited

◆ getLabel()

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

Return the label.

◆ getName()

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

Return the name.

◆ getNLTolerance()

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

Return the value of the neighbor list tolerance.

◆ getNumericalLabel()

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

Return the numerical label.

◆ getOutputValue()

double PLMD::vesselbase::ValueVessel::getOutputValue ( ) const
inlineinherited

◆ getSizeOfBuffer()

unsigned PLMD::vesselbase::Vessel::getSizeOfBuffer ( ) const
inlineprotectedinherited

Return the size of the buffer.

◆ getTolerance()

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

Return the value of the tolerance.

◆ parse()

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

Parse something from the input.

◆ parseFlag()

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

Parse one keyword as boolean flag.

◆ parseVector()

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

Parse one keyword as std::vector.

◆ prepare()

virtual void PLMD::vesselbase::Vessel::prepare ( )
inlinevirtualinherited

Do something before the loop.

Reimplemented in PLMD::vesselbase::BridgeVessel, and PLMD::mapping::SpathVessel.

◆ registerKeywords()

void PLMD::vesselbase::FunctionVessel::registerKeywords ( Keywords keys)
static

◆ resize()

void PLMD::vesselbase::FunctionVessel::resize ( )
overridevirtual

This does the resizing of the buffer.

Implements PLMD::vesselbase::Vessel.

◆ resizeBuffer()

void PLMD::vesselbase::Vessel::resizeBuffer ( const unsigned &  n)
inlineprotectedinherited

Set the size of the data buffer.

◆ setBufferStart()

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

Set the start of the buffer.

Reimplemented in PLMD::vesselbase::BridgeVessel.

◆ setOutputValue()

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

Set the final value.

◆ transformDerivatives()

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.

◆ transformName()

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

Convert the name to the label of the component.

◆ value_descriptor()

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

Member Data Documentation

◆ bufstart

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

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

◆ diffweight

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

Are the derivatives differentiable.

◆ mycomp

unsigned PLMD::vesselbase::ValueVessel::mycomp
protectedinherited

The component that is being averaged/accumulated whatever.

◆ norm

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

Are we normalising by the weight.

◆ usetol

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

Are we using the tolerance.


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