19 #ifdef DEAL_II_WITH_GSL 28 const std::vector<double> &y_)
29 : interpolation_points(x_)
30 , interpolation_values(y_)
46 acc = gsl_interp_accel_alloc();
48 cspline = gsl_spline_alloc(gsl_interp_cspline, n);
61 gsl_interp_accel_free(
acc);
76 std::lock_guard<std::mutex> lock(
acc_mutex);
78 const double x = p[0];
97 std::lock_guard<std::mutex> lock(
acc_mutex);
99 const double x = p[0];
106 const double deriv = gsl_spline_eval_deriv(
cspline, x,
acc);
121 std::lock_guard<std::mutex> lock(
acc_mutex);
123 const double x = p[0];
130 return gsl_spline_eval_deriv2(
cspline, x,
acc);
virtual SymmetricTensor< 2, dim > hessian(const Point< dim > &p, const unsigned int component=0) const override
virtual ~CSpline() override
virtual double laplacian(const Point< dim > &p, const unsigned int component=0) const override
virtual double value(const Point< dim > &point, const unsigned int component=0) const override
#define AssertThrow(cond, exc)
virtual Tensor< 1, dim > gradient(const Point< dim > &p, const unsigned int component=0) const override
static ::ExceptionBase & ExcCSplineEmpty(int arg1)
#define Assert(cond, exc)
#define DEAL_II_NAMESPACE_CLOSE
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)
#define DEAL_II_NAMESPACE_OPEN
static ::ExceptionBase & ExcCSplineSizeMismatch(int arg1, int arg2)
CSpline(const std::vector< double > &interpolation_points, const std::vector< double > &interpolation_values)
std::size_t memory_consumption() const