29 #ifndef Rythmos_CUBIC_SPLINE_INTERPOLATOR_DECL_H 30 #define Rythmos_CUBIC_SPLINE_INTERPOLATOR_DECL_H 32 #include "Rythmos_InterpolatorBase.hpp" 33 #include "Rythmos_Types.hpp" 40 template<
class Scalar>
41 class CubicSplineCoeff {
44 Array<RCP<Thyra::VectorBase<Scalar> > > a;
45 Array<RCP<Thyra::VectorBase<Scalar> > > b;
46 Array<RCP<Thyra::VectorBase<Scalar> > > c;
47 Array<RCP<Thyra::VectorBase<Scalar> > > d;
54 template<
class Scalar>
66 bool supportsCloning()
const;
69 RCP<InterpolatorBase<Scalar> > cloneInterpolator()
const;
73 const RCP<
const typename DataStore<Scalar>::DataStoreVector_t> & nodes
78 const Array<Scalar> &t_values,
79 typename DataStore<Scalar>::DataStoreVector_t *data_out
86 std::string description()
const;
91 const Teuchos::EVerbosityLevel verbLevel
95 void setParameterList(RCP<ParameterList>
const& paramList);
98 RCP<ParameterList> getNonconstParameterList();
101 RCP<ParameterList> unsetParameterList();
104 RCP<const Teuchos::ParameterList> getValidParameters()
const;
109 RCP<const typename DataStore<Scalar>::DataStoreVector_t> nodes_;
110 #ifdef HAVE_RYTHMOS_DEBUG 111 RCP<typename DataStore<Scalar>::DataStoreVector_t> nodes_copy_;
112 #endif // HAVE_RYTHMOS_DEBUG 114 mutable CubicSplineCoeff<Scalar> splineCoeff_;
115 mutable bool splineCoeffComputed_;
118 RCP<ParameterList> parameterList_;
123 template<
class Scalar>
124 RCP<CubicSplineInterpolator<Scalar> > cubicSplineInterpolator();
132 template<
class Scalar>
133 void computeCubicSplineCoeff(
134 const typename DataStore<Scalar>::DataStoreVector_t & data,
135 const Ptr<CubicSplineCoeff<Scalar> > & coeffPtr
138 template<
class Scalar>
139 void validateCubicSplineCoeff(
const CubicSplineCoeff<Scalar>& coeff);
143 template<
class Scalar>
144 void evaluateCubicSpline(
145 const CubicSplineCoeff<Scalar>& coeff,
148 const Ptr<Thyra::VectorBase<Scalar> >& S,
149 const Ptr<Thyra::VectorBase<Scalar> >& Sp = Teuchos::null,
150 const Ptr<Thyra::VectorBase<Scalar> >& Spp = Teuchos::null
157 #endif // Rythmos_CUBIC_SPLINE_INTERPOLATOR_DECL_H Base strategy class for interpolation functionality.
~CubicSplineInterpolator()
Concrete implemenation of InterpolatorBase that implements cubic spline interpolation.