LOOS  v2.3.2
ENM::UniformSpringFunction Class Referenceabstract

Spring functions that are uniform in all directions (ie return a single value) More...

#include <spring_functions.hpp>

Inheritance diagram for ENM::UniformSpringFunction:
Collaboration diagram for ENM::UniformSpringFunction:

Public Member Functions

loos::DoubleMatrix constant (const loos::GCoord &u, const loos::GCoord &v, const loos::GCoord &d)
 Actually compute the spring constant as a 3x3 matrix.
 
- Public Member Functions inherited from ENM::SpringFunction
virtual std::string name () const =0
 Name for this particular spring function.
 
virtual Params setParams (const Params &konst)=0
 Sets the internal constants, returning the unused ones.
 
virtual bool validParams () const =0
 Determines if the internal constants are "valid".
 
virtual uint paramSize () const =0
 How many internal constants there are.
 

Additional Inherited Members

- Public Types inherited from ENM::SpringFunction
typedef std::vector< double > Params
 
- Protected Member Functions inherited from ENM::SpringFunction
double checkConstant (double d)
 Check for negative spring-constants. More...
 

Detailed Description

Spring functions that are uniform in all directions (ie return a single value)

Many spring functions are actually uniform over the 3x3 matrix. The UniformSpringFunction uses the NVI idiom (http://www.gotw.ca/publications/mill18.htm) to allow subclasses to only return a double value, which then gets copied into all elements of the 3x3 matrix.

Note: this means you override the constantImpl() implementation function, NOT the public constant() function.

Definition at line 134 of file spring_functions.hpp.


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