16 #ifndef dealii_function_cspline_h 17 #define dealii_function_cspline_h 19 #include <deal.II/base/config.h> 21 #ifdef DEAL_II_WITH_GSL 22 #include <deal.II/base/function.h> 23 #include <deal.II/base/point.h> 24 #include <deal.II/base/thread_management.h> 25 #include <gsl/gsl_spline.h> 27 DEAL_II_NAMESPACE_OPEN
33 <<
"Interpolation points vector size can not be <"<<arg1<<
">." 39 <<
"The size of interpolation points <"<<arg1<<
"> is different from the size of interpolation values <" << arg2 <<
">." 47 <<
"The input interpolation points are not strictly ordered : " << std::endl <<
"x[" << arg1 <<
"] = "<< arg2 <<
" >= x["<<(arg1+1)<<
"] = "<<arg3 <<
"." 54 <<
"Spline function can not be evaluated outside of the interpolation range: "<< std::endl << arg1 <<
" is not in ["<< arg2<<
";"<<arg3<<
"]." 86 const unsigned int component = 0)
const;
89 const unsigned int component = 0)
const;
92 const unsigned int component = 0)
const;
95 const unsigned int component = 0)
const;
97 std::size_t memory_consumption ()
const;
127 DEAL_II_NAMESPACE_CLOSE
virtual SymmetricTensor< 2, dim > hessian(const Point< dim > &p, const unsigned int component=0) const
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const
#define DeclException2(Exception2, type1, type2, outsequence)
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const
#define DeclException1(Exception1, type1, outsequence)
static ::ExceptionBase & ExcCSplineEmpty(int arg1)
virtual double value(const Point< dim > &point, const unsigned int component=0) const
const std::vector< double > interpolation_points
static ::ExceptionBase & ExcCSplineOrder(int arg1, double arg2, double arg3)
const std::vector< double > interpolation_values
static ::ExceptionBase & ExcCSplineRange(double arg1, double arg2, double arg3)
static ::ExceptionBase & ExcCSplineSizeMismatch(int arg1, int arg2)
#define DeclException3(Exception3, type1, type2, type3, outsequence)
CSpline(const std::vector< double > &interpolation_points, const std::vector< double > &interpolation_values)