All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
PLMD::vesselbase::FunctionVessel Class Referenceabstract

Objects that inherit from FunctionVessel can be used (in tandem with PLMD::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 &)
 
void resize ()
 This does the resizing of the buffer. More...
 
bool applyForce (std::vector< double > &forces)
 This applies all the forces. More...
 
std::string description ()
 The description for the log. More...
 
virtual std::string function_description ()=0
 The rest of the description of what we are calculating. More...
 
virtual unsigned getNumberOfTerms ()
 Return number of terms. 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...
 
void zero ()
 Set all the buffer elements to zero. More...
 
void addToBufferElement (const unsigned &i, const double &val)
 Add something to the ith element in the buffer. More...
 
virtual void prepare ()
 Do something before the loop. More...
 
virtual bool calculate ()=0
 Calculate the part of the vessel that is done in the loop. More...
 
virtual void finish ()=0
 Complete the calculation once the loop is finished. More...
 

Static Public Member Functions

static void registerKeywords (Keywords &keys)
 

Public Attributes

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

Protected Member Functions

bool addValueUsingTolerance (const unsigned &jval, const double &val)
 Add some value to the accumulator if it is greater than tolerance. More...
 
void addValueIgnoringTolerance (const unsigned &jval, const double &val)
 Add some value to the accumulator and ignore the tolerance. More...
 
void setOutputValue (const double &val)
 Set the final value. More...
 
double getFinalValue (const unsigned &j)
 Get the nth value in the distribution. More...
 
void mergeFinalDerivatives (const std::vector< double > &df)
 This does a combination of the product and chain rules. 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 ()
 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...
 
void setBufferElement (const unsigned &i, const double &val)
 Set the value of the ith element in the buffer. More...
 
double getBufferElement (const unsigned &i) const
 Get the value in the ith element of the buffer. More...
 
void stashBuffers ()
 Store everything that is the buffers. More...
 
void setBufferFromStash ()
 Add the contents of the stash to the buffer. More...
 

Protected Attributes

bool diffweight
 Are the derivatives differentiable. More...
 
Communicatorcomm
 A copy of the communicator. More...
 

Private Attributes

unsigned nderivatives
 The number of derivatives. More...
 
Valuefinal_value
 This is the pointer to the value we are creating. More...
 

Detailed Description

Objects that inherit from FunctionVessel can be used (in tandem with PLMD::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.

Definition at line 41 of file FunctionVessel.h.

Constructor & Destructor Documentation

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

Definition at line 33 of file FunctionVessel.cpp.

Member Function Documentation

void PLMD::vesselbase::Vessel::addToBufferElement ( const unsigned &  i,
const double &  val 
)
inlineinherited

Add something to the ith element in the buffer.

Definition at line 252 of file Vessel.h.

void PLMD::vesselbase::FunctionVessel::addValueIgnoringTolerance ( const unsigned &  jval,
const double &  val 
)
inlineprotected

Add some value to the accumulator and ignore the tolerance.

Definition at line 83 of file FunctionVessel.h.

bool PLMD::vesselbase::FunctionVessel::addValueUsingTolerance ( const unsigned &  jval,
const double &  val 
)
inlineprotected

Add some value to the accumulator if it is greater than tolerance.

Definition at line 76 of file FunctionVessel.h.

bool PLMD::vesselbase::FunctionVessel::applyForce ( std::vector< double > &  forces)
virtual

This applies all the forces.

Implements PLMD::vesselbase::Vessel.

Definition at line 70 of file FunctionVessel.cpp.

virtual bool PLMD::vesselbase::Vessel::calculate ( )
pure virtualinherited
void PLMD::vesselbase::Vessel::checkRead ( )
inherited

Check that readin was fine.

Definition at line 111 of file Vessel.cpp.

std::string PLMD::vesselbase::FunctionVessel::description ( )
virtual

The description for the log.

Implements PLMD::vesselbase::Vessel.

Definition at line 50 of file FunctionVessel.cpp.

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

Report an error.

Definition at line 122 of file Vessel.cpp.

virtual void PLMD::vesselbase::Vessel::finish ( )
pure virtualinherited
virtual std::string PLMD::vesselbase::FunctionVessel::function_description ( )
pure virtual
ActionWithVessel * PLMD::vesselbase::Vessel::getAction ( )
inlineprotectedinherited

Return a pointer to the action we are working in.

Definition at line 236 of file Vessel.h.

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

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

Definition at line 84 of file Vessel.cpp.

double PLMD::vesselbase::Vessel::getBufferElement ( const unsigned &  i) const
inlineprotectedinherited

Get the value in the ith element of the buffer.

Definition at line 258 of file Vessel.h.

double PLMD::vesselbase::FunctionVessel::getFinalValue ( const unsigned &  j)
inlineprotected

Get the nth value in the distribution.

Definition at line 88 of file FunctionVessel.h.

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

Return the label.

Definition at line 80 of file Vessel.cpp.

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

Return the name.

Definition at line 76 of file Vessel.cpp.

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

Return the value of the neighbor list tolerance.

Definition at line 231 of file Vessel.h.

virtual unsigned PLMD::vesselbase::FunctionVessel::getNumberOfTerms ( )
inlinevirtual

Return number of terms.

Implements PLMD::vesselbase::Vessel.

Definition at line 72 of file FunctionVessel.h.

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

Return the numerical label.

Definition at line 216 of file Vessel.h.

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

Return the value of the tolerance.

Definition at line 226 of file Vessel.h.

void PLMD::vesselbase::FunctionVessel::mergeFinalDerivatives ( const std::vector< double > &  df)
protected

This does a combination of the product and chain rules.

Definition at line 60 of file FunctionVessel.cpp.

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

Parse something from the input.

Definition at line 169 of file Vessel.h.

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

Parse one keyword as boolean flag.

Definition at line 93 of file Vessel.cpp.

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

Parse one keyword as std::vector.

Definition at line 184 of file Vessel.h.

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

Do something before the loop.

Reimplemented in PLMD::vesselbase::BridgeVessel.

Definition at line 155 of file Vessel.h.

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

Definition at line 28 of file FunctionVessel.cpp.

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

This does the resizing of the buffer.

Implements PLMD::vesselbase::Vessel.

Definition at line 54 of file FunctionVessel.cpp.

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

Set the size of the data buffer.

Definition at line 221 of file Vessel.h.

void PLMD::vesselbase::Vessel::setBufferElement ( const unsigned &  i,
const double &  val 
)
inlineprotectedinherited

Set the value of the ith element in the buffer.

Definition at line 246 of file Vessel.h.

void PLMD::vesselbase::Vessel::setBufferFromStash ( )
protectedinherited

Add the contents of the stash to the buffer.

Definition at line 133 of file Vessel.cpp.

void PLMD::vesselbase::FunctionVessel::setOutputValue ( const double &  val)
inlineprotected

Set the final value.

Definition at line 94 of file FunctionVessel.h.

void PLMD::vesselbase::Vessel::stashBuffers ( )
protectedinherited

Store everything that is the buffers.

Definition at line 128 of file Vessel.cpp.

void PLMD::vesselbase::Vessel::zero ( )
inlineinherited

Set all the buffer elements to zero.

Definition at line 241 of file Vessel.h.

Member Data Documentation

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

A copy of the communicator.

Definition at line 102 of file Vessel.h.

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

Are the derivatives differentiable.

Definition at line 49 of file FunctionVessel.h.

Value* PLMD::vesselbase::FunctionVessel::final_value
private

This is the pointer to the value we are creating.

Definition at line 46 of file FunctionVessel.h.

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

Reference to the log on which to output details.

Definition at line 135 of file Vessel.h.

unsigned PLMD::vesselbase::FunctionVessel::nderivatives
private

The number of derivatives.

Definition at line 44 of file FunctionVessel.h.


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