29 #ifndef Rythmos_INTERPOLATOR_BASE_H
30 #define Rythmos_INTERPOLATOR_BASE_H
32 #include "Rythmos_DataStore.hpp"
33 #include "Rythmos_InterpolationBufferHelpers.hpp"
43 template<
class Scalar>
45 :
virtual public Teuchos::Describable
46 ,
virtual public Teuchos::ParameterListAcceptor
47 ,
virtual public Teuchos::VerboseObject<InterpolatorBase<Scalar> >
93 const RCP<
const typename DataStore<Scalar>::DataStoreVector_t> & nodes
118 const Array<Scalar> &t_values,
119 typename DataStore<Scalar>::DataStoreVector_t *data_out
126 virtual int order()
const =0;
136 template<
class Scalar>
143 template<
class Scalar>
144 Teuchos::RCP<InterpolatorBase<Scalar> >
147 return Teuchos::null;
154 #endif //Rythmos_INTERPOLATOR_BASE_H
Base strategy class for interpolation functionality.
virtual int order() const =0
Return the order of the interpolation.
virtual Teuchos::RCP< InterpolatorBase< Scalar > > cloneInterpolator() const
Clone the interpolator object if supported.
virtual void setNodes(const RCP< const typename DataStore< Scalar >::DataStoreVector_t > &nodes)=0
Store pointer to interpolation nodes.
virtual void interpolate(const Array< Scalar > &t_values, typename DataStore< Scalar >::DataStoreVector_t *data_out) const =0
Perform an interpolation.
virtual bool supportsCloning() const
Return if this interpolator supports cloning or not.