Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Static Public Member Functions | List of all members
Polynomials::HermiteInterpolation Class Reference

#include <deal.II/base/polynomial.h>

Inheritance diagram for Polynomials::HermiteInterpolation:
[legend]

Public Member Functions

 HermiteInterpolation (const unsigned int p)
 
- Public Member Functions inherited from Polynomials::Polynomial< double >
 Polynomial (const std::vector< double > &coefficients)
 
 Polynomial (const unsigned int n)
 
 Polynomial (const std::vector< Point< 1 >> &lagrange_support_points, const unsigned int evaluation_point)
 
 Polynomial ()
 
double value (const double x) const
 
void value (const double x, std::vector< double > &values) const
 
void value (const double x, const unsigned int n_derivatives, double *values) const
 
unsigned int degree () const
 
void scale (const double factor)
 
void shift (const number2 offset)
 
Polynomial< doublederivative () const
 
Polynomial< doubleprimitive () const
 
Polynomial< double > & operator*= (const double s)
 
Polynomial< double > & operator*= (const Polynomial< double > &p)
 
Polynomial< double > & operator+= (const Polynomial< double > &p)
 
Polynomial< double > & operator-= (const Polynomial< double > &p)
 
bool operator== (const Polynomial< double > &p) const
 
void print (std::ostream &out) const
 
void serialize (Archive &ar, const unsigned int version)
 
virtual std::size_t memory_consumption () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Static Public Member Functions

static std::vector< Polynomial< double > > generate_complete_basis (const unsigned int p)
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Additional Inherited Members

- Protected Member Functions inherited from Polynomials::Polynomial< double >
void transform_into_standard_form ()
 
- Static Protected Member Functions inherited from Polynomials::Polynomial< double >
static void scale (std::vector< double > &coefficients, const double factor)
 
static void shift (std::vector< double > &coefficients, const number2 shift)
 
static void multiply (std::vector< double > &coefficients, const double factor)
 
- Protected Attributes inherited from Polynomials::Polynomial< double >
std::vector< doublecoefficients
 
bool in_lagrange_product_form
 
std::vector< doublelagrange_support_points
 
double lagrange_weight
 

Detailed Description

Polynomials for Hermite interpolation condition.

This is the set of polynomials of degree at least three, such that the following interpolation conditions are met: the polynomials and their first derivatives vanish at the values x=0 and x=1, with the exceptions p0(0)=1, p1(1)=1, p'2(0)=1, p'3(1)=1.

For degree three, we obtain the standard four Hermitian interpolation polynomials, see for instance Wikipedia. For higher degrees, these are augmented first, by the polynomial of degree four with vanishing values and derivatives at x=0 and x=1, then by the product of this fourth order polynomial with Legendre polynomials of increasing order. The implementation is

\begin{align*} p_0(x) &= 2x^3-3x^2+1 \\ p_1(x) &= -2x^3+3x^2 \\ p_2(x) &= x^3-2x^2+x \\ p_3(x) &= x^3-x^2 \\ p_4(x) &= 16x^2(x-1)^2 \\ \ldots & \ldots \\ p_k(x) &= x^2(x-1)^2 L_{k-4}(x) \end{align*}

Author
Guido Kanschat
Date
2012

Definition at line 587 of file polynomial.h.

Constructor & Destructor Documentation

◆ HermiteInterpolation()

Polynomials::HermiteInterpolation::HermiteInterpolation ( const unsigned int  p)

Constructor for polynomial with index p. See the class documentation on the definition of the sequence of polynomials.

Definition at line 1189 of file polynomial.cc.

Member Function Documentation

◆ generate_complete_basis()

std::vector< Polynomial< double > > Polynomials::HermiteInterpolation::generate_complete_basis ( const unsigned int  p)
static

Return the polynomials with index 0 up to p+1 in a space of degree up to p. Here, p has to be at least 3.

Definition at line 1241 of file polynomial.cc.


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