Reference documentation for deal.II version 9.1.1
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
Public Member Functions | Private Attributes | List of all members
Functions::Polynomial< dim > Class Template Reference

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

Inheritance diagram for Functions::Polynomial< dim >:
[legend]

Public Member Functions

 Polynomial (const Table< 2, double > &exponents, const std::vector< double > &coefficients)
 
virtual double value (const Point< dim > &p, const unsigned int component=0) const override
 
virtual void value_list (const std::vector< Point< dim >> &points, std::vector< double > &values, const unsigned int component=0) const override
 
virtual Tensor< 1, dim > gradient (const Point< dim > &p, const unsigned int component=0) const override
 
- Public Member Functions inherited from Function< dim >
 Function (const unsigned int n_components=1, const time_type initial_time=0.0)
 
virtual ~Function () override=0
 
Functionoperator= (const Function &f)
 
virtual void vector_value (const Point< dim > &p, Vector< double > &values) const
 
virtual void vector_value_list (const std::vector< Point< dim >> &points, std::vector< Vector< double >> &values) const
 
virtual void vector_values (const std::vector< Point< dim >> &points, std::vector< std::vector< double >> &values) const
 
virtual void vector_gradient (const Point< dim > &p, std::vector< Tensor< 1, dim, double >> &gradients) const
 
virtual void gradient_list (const std::vector< Point< dim >> &points, std::vector< Tensor< 1, dim, double >> &gradients, const unsigned int component=0) const
 
virtual void vector_gradients (const std::vector< Point< dim >> &points, std::vector< std::vector< Tensor< 1, dim, double >>> &gradients) const
 
virtual void vector_gradient_list (const std::vector< Point< dim >> &points, std::vector< std::vector< Tensor< 1, dim, double >>> &gradients) const
 
virtual double laplacian (const Point< dim > &p, const unsigned int component=0) const
 
virtual void vector_laplacian (const Point< dim > &p, Vector< double > &values) const
 
virtual void laplacian_list (const std::vector< Point< dim >> &points, std::vector< double > &values, const unsigned int component=0) const
 
virtual void vector_laplacian_list (const std::vector< Point< dim >> &points, std::vector< Vector< double >> &values) const
 
virtual SymmetricTensor< 2, dim, double > hessian (const Point< dim > &p, const unsigned int component=0) const
 
virtual void vector_hessian (const Point< dim > &p, std::vector< SymmetricTensor< 2, dim, double >> &values) const
 
virtual void hessian_list (const std::vector< Point< dim >> &points, std::vector< SymmetricTensor< 2, dim, double >> &values, const unsigned int component=0) const
 
virtual void vector_hessian_list (const std::vector< Point< dim >> &points, std::vector< std::vector< SymmetricTensor< 2, dim, double >>> &values) const
 
std::size_t memory_consumption () const
 
- Public Member Functions inherited from FunctionTime< Number >
 FunctionTime (const Number initial_time=Number(0.0))
 
virtual ~FunctionTime ()=default
 
Number get_time () const
 
virtual void set_time (const Number new_time)
 
virtual void advance_time (const Number delta_t)
 
- 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)
 

Private Attributes

const Table< 2, double > exponents
 
const std::vector< double > coefficients
 

Additional Inherited Members

- Public Types inherited from Function< dim >
using time_type = typename FunctionTime< typename numbers::NumberTraits< double >::real_type >::time_type
 
- Public Types inherited from FunctionTime< Number >
using time_type = Number
 
- 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)
 
- Public Attributes inherited from Function< dim >
const unsigned int n_components
 
- Static Public Attributes inherited from Function< dim >
static const unsigned int dimension
 

Detailed Description

template<int dim>
class Functions::Polynomial< dim >

A class that represents a function object for a polynomial. A polynomial is composed by the summation of multiple monomials. If the polynomial has n monomials and the dimension is equal to dim, the polynomial can be written as \(\sum_{i=1}^{n} a_{i}(\prod_{d=1}^{dim} x_{d}^{\alpha_{i,d}})\), where \(a_{i}\) are the coefficients of the monomials and \(\alpha_{i,d}\) are their exponents. The class's constructor takes a Table<2,double> to describe the set of exponents and a Vector<double> to describe the set of coefficients.

Author
Ángel Rodríguez, 2015

Definition at line 1597 of file function_lib.h.

Constructor & Destructor Documentation

◆ Polynomial()

template<int dim>
Functions::Polynomial< dim >::Polynomial ( const Table< 2, double > &  exponents,
const std::vector< double > &  coefficients 
)

Constructor. The coefficients and the exponents of the polynomial are passed as arguments. The Table<2, double> exponents has a number of rows equal to the number of monomials of the polynomial and a number of columns equal to dim. The i-th row of the exponents table contains the \({\alpha_{i,d}}\) exponents of the i-th monomial \(a_{i}\prod_{d=1}^{dim} x_{d}^{\alpha_{i,d}}\). The i-th element of the coefficients vector contains the coefficient \(a_{i}\) for the i-th monomial.

Definition at line 2678 of file function_lib.cc.

Member Function Documentation

◆ value()

template<int dim>
double Functions::Polynomial< dim >::value ( const Point< dim > &  p,
const unsigned int  component = 0 
) const
overridevirtual

Function value at one point.

Reimplemented from Function< dim >.

Definition at line 2694 of file function_lib.cc.

◆ value_list()

template<int dim>
void Functions::Polynomial< dim >::value_list ( const std::vector< Point< dim >> &  points,
std::vector< double > &  values,
const unsigned int  component = 0 
) const
overridevirtual

Function values at multiple points.

Reimplemented from Function< dim >.

Definition at line 2721 of file function_lib.cc.

◆ gradient()

template<int dim>
Tensor< 1, dim > Functions::Polynomial< dim >::gradient ( const Point< dim > &  p,
const unsigned int  component = 0 
) const
overridevirtual

Function gradient at one point.

Reimplemented from Function< dim >.

Definition at line 2736 of file function_lib.cc.

Member Data Documentation

◆ exponents

template<int dim>
const Table<2, double> Functions::Polynomial< dim >::exponents
private

The set of exponents.

Definition at line 1638 of file function_lib.h.

◆ coefficients

template<int dim>
const std::vector<double> Functions::Polynomial< dim >::coefficients
private

The set of coefficients.

Definition at line 1643 of file function_lib.h.


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