Reference documentation for deal.II version Git 7e76c9f1da 2019-09-19 09:07:25 +0200
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Member Functions | Static Public Member Functions | Static Private Member Functions | List of all members
Polynomials::LagrangeEquidistant Class Reference

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

Inheritance diagram for Polynomials::LagrangeEquidistant:
[legend]

Public Member Functions

 LagrangeEquidistant (const unsigned int n, const unsigned int support_point)
 
- 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< double > derivative () const
 
Polynomial< double > primitive () 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)
 
- 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 degree)
 
- 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)
 

Static Private Member Functions

static void compute_coefficients (const unsigned int n, const unsigned int support_point, std::vector< double > &a)
 

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< double > coefficients
 
bool in_lagrange_product_form
 
std::vector< double > lagrange_support_points
 
double lagrange_weight
 

Detailed Description

Lagrange polynomials with equidistant interpolation points in [0,1]. The polynomial of degree n has got n+1 interpolation points. The interpolation points are sorted in ascending order. This order gives an index to each interpolation point. A Lagrangian polynomial equals to 1 at its `support point', and 0 at all other interpolation points. For example, if the degree is 3, and the support point is 1, then the polynomial represented by this object is cubic and its value is 1 at the point x=1/3, and zero at the point x=0, x=2/3, and x=1. All the polynomials have polynomial degree equal to degree, but together they span the entire space of polynomials of degree less than or equal degree.

The Lagrange polynomials are implemented up to degree 10.

Author
Ralf Hartmann, 2000

Definition at line 337 of file polynomial.h.

Constructor & Destructor Documentation

◆ LagrangeEquidistant()

Polynomials::LagrangeEquidistant::LagrangeEquidistant ( const unsigned int  n,
const unsigned int  support_point 
)

Constructor. Takes the degree n of the Lagrangian polynomial and the index support_point of the support point. Fills the coefficients of the base class Polynomial.

Definition at line 717 of file polynomial.cc.

Member Function Documentation

◆ generate_complete_basis()

std::vector< Polynomial< double > > Polynomials::LagrangeEquidistant::generate_complete_basis ( const unsigned int  degree)
static

Return a vector of polynomial objects of degree degree, which then spans the full space of polynomials up to the given degree. The polynomials are generated by calling the constructor of this class with the same degree but support point running from zero to degree. This function may be used to initialize the TensorProductPolynomials and PolynomialSpace classes.

Definition at line 800 of file polynomial.cc.

◆ compute_coefficients()

void Polynomials::LagrangeEquidistant::compute_coefficients ( const unsigned int  n,
const unsigned int  support_point,
std::vector< double > &  a 
)
staticprivate

Compute the coefficients of the base class Polynomial. This function is static to allow to be called in the constructor.

Definition at line 741 of file polynomial.cc.


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