SpECTRE  v2024.09.29
intrp::CubicSpanInterpolator Class Reference

Performs a cubic interpolation; this class can be chosen via the options factory mechanism as a possible SpanInterpolator. More...

#include <CubicSpanInterpolator.hpp>

Public Types

using options = tmpl::list<>
 
- Public Types inherited from intrp::SpanInterpolator
using creatable_classes = tmpl::list< LinearSpanInterpolator, CubicSpanInterpolator, BarycentricRationalSpanInterpolator >
 

Public Member Functions

 CubicSpanInterpolator (const CubicSpanInterpolator &)=default
 
CubicSpanInterpolatoroperator= (const CubicSpanInterpolator &)=default
 
 CubicSpanInterpolator (CubicSpanInterpolator &&)=default
 
CubicSpanInterpolatoroperator= (CubicSpanInterpolator &&)=default
 
 CubicSpanInterpolator (CkMigrateMessage *)
 
 WRAPPED_PUPable_decl_template (CubicSpanInterpolator)
 
void pup (PUP::er &) override
 
std::unique_ptr< SpanInterpolatorget_clone () const override
 Produce a std::unique_ptr that points to a copy of *this`. More...
 
double interpolate (const gsl::span< const double > &source_points, const gsl::span< const double > &values, double target_point) const override
 Perform the interpolation of function represented by values at source_points to the requested target_point, returning the interpolation result. More...
 
std::complex< double > interpolate (const gsl::span< const double > &source_points, const gsl::span< const std::complex< double > > &values, double target_point) const
 
size_t required_number_of_points_before_and_after () const override
 The number of domain points that should be both before and after the requested target point for best interpolation. For instance, for a linear interpolator, this function would return 1 to request that the target is between the two domain points passed to source_points. More...
 
- Public Member Functions inherited from intrp::SpanInterpolator
 WRAPPED_PUPable_abstract (SpanInterpolator)
 
virtual std::unique_ptr< SpanInterpolatorget_clone () const =0
 Produce a std::unique_ptr that points to a copy of *this`. More...
 
virtual double interpolate (const gsl::span< const double > &source_points, const gsl::span< const double > &values, double target_point) const =0
 Perform the interpolation of function represented by values at source_points to the requested target_point, returning the interpolation result. More...
 
std::complex< double > interpolate (const gsl::span< const double > &source_points, const gsl::span< const std::complex< double > > &values, double target_point) const
 Perform the interpolation of function represented by complex values at source_points to the requested target_point, returning the (complex) interpolation result.
 
virtual size_t required_number_of_points_before_and_after () const =0
 The number of domain points that should be both before and after the requested target point for best interpolation. For instance, for a linear interpolator, this function would return 1 to request that the target is between the two domain points passed to source_points. More...
 

Static Public Attributes

static constexpr Options::String help = {"Cubic interpolator."}
 

Detailed Description

Performs a cubic interpolation; this class can be chosen via the options factory mechanism as a possible SpanInterpolator.

Details

This interpolator is hand-coded to be identical to the SpEC implementation used for SpEC CCE so that comparison results can be as close as possible for diagnostics.

Member Function Documentation

◆ get_clone()

std::unique_ptr< SpanInterpolator > intrp::CubicSpanInterpolator::get_clone ( ) const
inlineoverridevirtual

Produce a std::unique_ptr that points to a copy of *this`.

Implements intrp::SpanInterpolator.

◆ interpolate()

double intrp::CubicSpanInterpolator::interpolate ( const gsl::span< const double > &  source_points,
const gsl::span< const double > &  values,
double  target_point 
) const
overridevirtual

Perform the interpolation of function represented by values at source_points to the requested target_point, returning the interpolation result.

Implements intrp::SpanInterpolator.

◆ required_number_of_points_before_and_after()

size_t intrp::CubicSpanInterpolator::required_number_of_points_before_and_after ( ) const
inlineoverridevirtual

The number of domain points that should be both before and after the requested target point for best interpolation. For instance, for a linear interpolator, this function would return 1 to request that the target is between the two domain points passed to source_points.

Implements intrp::SpanInterpolator.


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