Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Tempus::Interpolator< Scalar > Class Template Referenceabstract

Base strategy class for interpolation functionality. More...

#include <Tempus_Interpolator.hpp>

Inheritance diagram for Tempus::Interpolator< Scalar >:
Tempus::InterpolatorLagrange< Scalar >

Public Member Functions

virtual void setNodes (const Teuchos::RCP< const std::vector< Teuchos::RCP< SolutionState< Scalar > > > > &nodes)=0
 Store pointer to interpolation nodes. More...
 
virtual void interpolate (const Scalar &t, SolutionState< Scalar > *state_out) const =0
 Perform an interpolation. More...
 
virtual int order () const =0
 Return the order of the interpolation. More...
 

Detailed Description

template<class Scalar>
class Tempus::Interpolator< Scalar >

Base strategy class for interpolation functionality.

Definition at line 29 of file Tempus_Interpolator.hpp.

Member Function Documentation

template<class Scalar>
virtual void Tempus::Interpolator< Scalar >::interpolate ( const Scalar &  t,
SolutionState< Scalar > *  state_out 
) const
pure virtual

Perform an interpolation.

Implemented in Tempus::InterpolatorLagrange< Scalar >.

template<class Scalar>
virtual int Tempus::Interpolator< Scalar >::order ( ) const
pure virtual

Return the order of the interpolation.

Implemented in Tempus::InterpolatorLagrange< Scalar >.

template<class Scalar>
virtual void Tempus::Interpolator< Scalar >::setNodes ( const Teuchos::RCP< const std::vector< Teuchos::RCP< SolutionState< Scalar > > > > &  nodes)
pure virtual

Store pointer to interpolation nodes.

This function represent a persisting relationship between the interpolation nodes and the interpolator. For simple interpolators like linear and Hermite, this is not needed, but for interpolators like cubic splines where there is some computational work in assembling the interpolant, this is important.

Preconditions:

  • nodes must have unique time values and be sorted in ascending time order

Postconditions:

  • If this function is called twice and nodes is a different pointer than was previously called, then it is possible that the interpolant will be recomputed when interpolate is next called.

Implemented in Tempus::InterpolatorLagrange< Scalar >.


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