Gyselalib++
 
Loading...
Searching...
No Matches
TriangularBernsteinPolynomialBasis< X, Y, Corner1Tag, Corner2Tag, Corner3Tag, D > Class Template Reference

A class which evaluates the triangular Bernstein polynomials. More...

Classes

class  Impl
 The Impl class holds the implementation of the TriangularBernsteinPolynomialBasis. More...
 

Public Types

using discrete_dimension_type = TriangularBernsteinPolynomialBasis
 A tag for DDC to recognise the discrete dimension type.
 

Static Public Member Functions

static constexpr std::size_t rank ()
 The rank of the system of equations.
 
static constexpr std::size_t degree () noexcept
 The degree of the triangular Bernstein polynomials.
 
static constexpr std::size_t nbasis ()
 The number of basis elements.
 

Detailed Description

template<class X, class Y, class Corner1Tag, class Corner2Tag, class Corner3Tag, std::size_t D>
class TriangularBernsteinPolynomialBasis< X, Y, Corner1Tag, Corner2Tag, Corner3Tag, D >

A class which evaluates the triangular Bernstein polynomials.

Triangular Bernstein polynomials of degree \( D \) are defined as: \( T_{i_1,i_2,i_3}(x,y) = \binom{D}{i_1\,i_2\,i_3} \lambda_1^{i_1} \lambda_2^{i_2} \lambda_3^{i_3}, \quad i_1 +i_2+i_3 =D \)

Where \( \lambda_1 \), \( \lambda_2 \), and \( \lambda_3 \) are the barycentric coordinates of \( (x,y) \)

c.f. Toshniwal et al. 2017 Multi-degree smooth polar splines: A framework for geometric modeling and isogeometric analysis https://doi.org/10.1016/j.cma.2016.11.009

Template Parameters
XThe first dimension of the cartesian coordinate system.
YThe second dimension of the cartesian coordinate system.
Corner1TagA class to identify the first corner.
Corner2TagA class to identify the second corner.
Corner3TagA class to identify the third corner.
DThe degree of the polynomial.

Member Function Documentation

◆ rank()

template<class X , class Y , class Corner1Tag , class Corner2Tag , class Corner3Tag , std::size_t D>
static constexpr std::size_t TriangularBernsteinPolynomialBasis< X, Y, Corner1Tag, Corner2Tag, Corner3Tag, D >::rank ( )
inlinestaticconstexpr

The rank of the system of equations.

This is equal to the number of dimensions in the coordinates on which the polynomials are evaluated.

Returns
The rank of the system.

◆ degree()

template<class X , class Y , class Corner1Tag , class Corner2Tag , class Corner3Tag , std::size_t D>
static constexpr std::size_t TriangularBernsteinPolynomialBasis< X, Y, Corner1Tag, Corner2Tag, Corner3Tag, D >::degree ( )
inlinestaticconstexprnoexcept

The degree of the triangular Bernstein polynomials.

Returns
The degree of the triangular Bernstein polynomials.

◆ nbasis()

template<class X , class Y , class Corner1Tag , class Corner2Tag , class Corner3Tag , std::size_t D>
static constexpr std::size_t TriangularBernsteinPolynomialBasis< X, Y, Corner1Tag, Corner2Tag, Corner3Tag, D >::nbasis ( )
inlinestaticconstexpr

The number of basis elements.

Returns
The number of basis elements.

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