Reference documentation for deal.II version Git cd5f69ed86 2019-12-07 22:13:35 -0500
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
PolynomialsP< dim > Class Template Reference

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

Inheritance diagram for PolynomialsP< dim >:
[legend]

Public Member Functions

 PolynomialsP (const unsigned int p)
 
unsigned int degree () const
 
std::array< unsigned int, dim > directional_degrees (unsigned int n) const
 
- Public Member Functions inherited from PolynomialSpace< dim >
template<class Pol >
 PolynomialSpace (const std::vector< Pol > &pols)
 
template<class StreamType >
void output_indices (StreamType &out) const
 
void set_numbering (const std::vector< unsigned int > &renumber)
 
void evaluate (const Point< dim > &unit_point, std::vector< double > &values, std::vector< Tensor< 1, dim >> &grads, std::vector< Tensor< 2, dim >> &grad_grads, std::vector< Tensor< 3, dim >> &third_derivatives, std::vector< Tensor< 4, dim >> &fourth_derivatives) const override
 
double compute_value (const unsigned int i, const Point< dim > &p) const
 
template<int order>
Tensor< order, dim > compute_derivative (const unsigned int i, const Point< dim > &p) const
 
Tensor< 1, dim > compute_grad (const unsigned int i, const Point< dim > &p) const
 
Tensor< 2, dim > compute_grad_grad (const unsigned int i, const Point< dim > &p) const
 
std::string name () const override
 
virtual std::unique_ptr< ScalarPolynomialsBase< dim > > clone () const override
 
- Public Member Functions inherited from ScalarPolynomialsBase< dim >
 ScalarPolynomialsBase (const unsigned int deg, const unsigned int n_polynomials)
 
 ScalarPolynomialsBase (ScalarPolynomialsBase< dim > &&)=default
 
 ScalarPolynomialsBase (const ScalarPolynomialsBase< dim > &)=default
 
virtual ~ScalarPolynomialsBase ()=default
 
unsigned int n () const
 
unsigned int degree () const
 

Static Public Attributes

static const unsigned int dimension = dim
 
- Static Public Attributes inherited from PolynomialSpace< dim >
static const unsigned int dimension = dim
 

Private Member Functions

void create_polynomial_ordering (std::vector< unsigned int > &index_map) const
 

Private Attributes

const unsigned int p
 

Additional Inherited Members

- Static Public Member Functions inherited from PolynomialSpace< dim >
static unsigned int n_polynomials (const unsigned int n)
 
- Protected Member Functions inherited from PolynomialSpace< dim >
std::array< unsigned int, dim > compute_index (const unsigned int n) const
 

Detailed Description

template<int dim>
class PolynomialsP< dim >

This class implements the polynomial space of degree p based on the monomials \({1,x,x^2,...}\). I.e. in d dimensions it constructs all polynomials of the form \(\prod_{i=1}^d x_i^{n_i}\), where \(\sum_i n_i\leq p\). The base polynomials are given a specific ordering, e.g. in 2 dimensions: \({1,x,y,xy,x^2,y^2,x^2y,xy^2,x^3,y^3,...}\). The ordering of the monomials in \(P_k1\) matches the ordering of the monomials in \(P_k2\) for \(k2>k1\).

Author
Ralf Hartmann, 2004

Definition at line 48 of file polynomials_p.h.

Constructor & Destructor Documentation

◆ PolynomialsP()

template<int dim>
PolynomialsP< dim >::PolynomialsP ( const unsigned int  p)

Constructor. Creates all basis functions of \(P_p\).

  • p: the degree of the polynomial space

Definition at line 23 of file polynomials_p.cc.

Member Function Documentation

◆ degree()

template<int dim>
unsigned int PolynomialsP< dim >::degree ( ) const
inline

Return the degree p of the polynomial space P_p.

Note, that this number is PolynomialSpace::degree()-1, compare definition in PolynomialSpace.

Definition at line 99 of file polynomials_p.h.

◆ directional_degrees()

template<int dim>
std::array< unsigned int, dim > PolynomialsP< dim >::directional_degrees ( unsigned int  n) const
inline

For the nth polynomial \(p_n(x,y,z)=x^i y^j z^k\) this function gives the degrees i,j,k in the x,y,z directions.

In 1d and 2d, obviously only i and i,j are returned.

Definition at line 107 of file polynomials_p.h.

◆ create_polynomial_ordering()

template<int dim>
void PolynomialsP< dim >::create_polynomial_ordering ( std::vector< unsigned int > &  index_map) const
private

Fills the index_map.

Member Data Documentation

◆ dimension

template<int dim>
const unsigned int PolynomialsP< dim >::dimension = dim
static

Access to the dimension of this object, for checking and automatic setting of dimension in other classes.

Definition at line 55 of file polynomials_p.h.

◆ p

template<int dim>
const unsigned int PolynomialsP< dim >::p
private

Degree p of the polynomial space \(P_p\), i.e. the number p which was given to the constructor.

Definition at line 92 of file polynomials_p.h.


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