Open CASCADE Technology: PLib_JacobiPolynomial Class Reference

Open CASCADE Technology 6.8.0

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Public Member Functions
PLib_JacobiPolynomial Class Reference

This class provides method to work with Jacobi Polynomials relativly to an order of constraint q = myWorkDegree-2*(myNivConstr+1) Jk(t) for k=0,q compose the Jacobi Polynomial base relativly to the weigth W(t) iorder is the integer value for the constraints: iorder = 0 <=> ConstraintOrder = GeomAbs_C0 iorder = 1 <=> ConstraintOrder = GeomAbs_C1 iorder = 2 <=> ConstraintOrder = GeomAbs_C2 P(t) = R(t) + W(t) * Q(t) Where W(t) = (1-t**2)**(2*iordre+2) the coefficients JacCoeff represents P(t) JacCoeff are stored as follow: More...

`#include <PLib_JacobiPolynomial.hxx>`

Inheritance diagram for PLib_JacobiPolynomial:
[legend]

## Public Member Functions
| PLib_JacobiPolynomial (const Standard_Integer WorkDegree, const GeomAbs_Shape ConstraintOrder)
| Initialize the polynomial class Degree has to be <= 30 ConstraintOrder has to be GeomAbs_C0 GeomAbs_C1 GeomAbs_C2. More...
void | Points (const Standard_Integer NbGaussPoints, TColStd_Array1OfReal &TabPoints) const
| returns the Jacobi Points for Gauss integration ie the positive values of the Legendre roots by increasing values NbGaussPoints is the number of points choosen for the integral computation. TabPoints (0,NbGaussPoints/2) TabPoints (0) is loaded only for the odd values of NbGaussPoints The possible values for NbGaussPoints are : 8, 10, 15, 20, 25, 30, 35, 40, 50, 61 NbGaussPoints must be greater than Degree More...
void | Weights (const Standard_Integer NbGaussPoints, TColStd_Array2OfReal &TabWeights) const
| returns the Jacobi weigths for Gauss integration only for the positive values of the Legendre roots in the order they are given by the method Points NbGaussPoints is the number of points choosen for the integral computation. TabWeights (0,NbGaussPoints/2,0,Degree) TabWeights (0,.) are only loaded for the odd values of NbGaussPoints The possible values for NbGaussPoints are : 8 , 10 , 15 ,20 ,25 , 30, 35 , 40 , 50 , 61 NbGaussPoints must be greater than Degree More...
void | MaxValue (TColStd_Array1OfReal &TabMax) const
| this method loads for k=0,q the maximum value of abs ( W(t)*Jk(t) )for t bellonging to [-1,1] This values are loaded is the array TabMax(0,myWorkDegree-2*(myNivConst+1)) MaxValue ( me ; TabMaxPointer : in out Real ); More...
Standard_Real | MaxError (const Standard_Integer Dimension, Standard_Real &JacCoeff, const Standard_Integer NewDegree) const
| This method computes the maximum error on the polynomial W(t) Q(t) obtained by missing the coefficients of JacCoeff from NewDegree +1 to Degree. More...
void | ReduceDegree (const Standard_Integer Dimension, const Standard_Integer MaxDegree, const Standard_Real Tol, Standard_Real &JacCoeff, Standard_Integer &NewDegree, Standard_Real &MaxError) const
| Compute NewDegree <= MaxDegree so that MaxError is lower than Tol. MaxError can be greater than Tol if it is not possible to find a NewDegree <= MaxDegree. In this case NewDegree = MaxDegree. More...
Standard_Real | AverageError (const Standard_Integer Dimension, Standard_Real &JacCoeff, const Standard_Integer NewDegree) const
void | ToCoefficients (const Standard_Integer Dimension, const Standard_Integer Degree, const TColStd_Array1OfReal &JacCoeff, TColStd_Array1OfReal &Coefficients) const
| Convert the polynomial P(t) = R(t) + W(t) Q(t) in the canonical base. More...
void | D0 (const Standard_Real U, TColStd_Array1OfReal &BasisValue)
| Compute the values of the basis functions in u. More...
void | D1 (const Standard_Real U, TColStd_Array1OfReal &BasisValue, TColStd_Array1OfReal &BasisD1)
| Compute the values and the derivatives values of the basis functions in u. More...
void | D2 (const Standard_Real U, TColStd_Array1OfReal &BasisValue, TColStd_Array1OfReal &BasisD1, TColStd_Array1OfReal &BasisD2)
| Compute the values and the derivatives values of the basis functions in u. More...
void | D3 (const Standard_Real U, TColStd_Array1OfReal &BasisValue, TColStd_Array1OfReal &BasisD1, TColStd_Array1OfReal &BasisD2, TColStd_Array1OfReal &BasisD3)
| Compute the values and the derivatives values of the basis functions in u. More...
Standard_Integer | WorkDegree () const
| returns WorkDegree More...
Standard_Integer | NivConstr () const
| returns NivConstr More...
Public Member Functions inherited from MMgt_TShared
virtual void | Delete () const
| Memory deallocator for transient classes. More...
Public Member Functions inherited from Standard_Transient
| Standard_Transient ()
| Empty constructor. More...
| Standard_Transient (const Standard_Transient &)
| Copy constructor – does nothing. More...
Standard_Transient & | operator= (const Standard_Transient &)
| Assignment operator, needed to avoid copying reference counter. More...
virtual | ~Standard_Transient ()
| Destructor must be virtual. More...
virtual const Handle_Standard_Type & | DynamicType () const
| Returns a type information object about this object. More...
Standard_Boolean | IsInstance (const Handle_Standard_Type &theType) const
| Returns a true value if this is an instance of Type. More...
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const
| Returns a true value if this is an instance of TypeName. More...
Standard_Boolean | IsKind (const Handle_Standard_Type &theType) const
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
Standard_Boolean | IsKind (const Standard_CString theTypeName) const
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
virtual Handle_Standard_Transient | This () const
| Returns a Handle which references this object. Must never be called to objects created in stack. More...
Standard_Integer | GetRefCount () const
| Get the reference counter of this object. More...

## Detailed Description

This class provides method to work with Jacobi Polynomials relativly to an order of constraint q = myWorkDegree-2*(myNivConstr+1) Jk(t) for k=0,q compose the Jacobi Polynomial base relativly to the weigth W(t) iorder is the integer value for the constraints: iorder = 0 <=> ConstraintOrder = GeomAbs_C0 iorder = 1 <=> ConstraintOrder = GeomAbs_C1 iorder = 2 <=> ConstraintOrder = GeomAbs_C2 P(t) = R(t) + W(t) * Q(t) Where W(t) = (1-t**2)**(2*iordre+2) the coefficients JacCoeff represents P(t) JacCoeff are stored as follow:

c0(1) c0(2) .... c0(Dimension) c1(1) c1(2) .... c1(Dimension)

cDegree(1) cDegree(2) .... cDegree(Dimension)

The coefficients c0(1) c0(2) .... c0(Dimension) c2*ordre+1(1) ... c2*ordre+1(dimension)

represents the part of the polynomial in the canonical base: R(t) R(t) = c0 + c1 t + ...+ c2*iordre+1 t**2*iordre+1 The following coefficients represents the part of the polynomial in the Jacobi base ie Q(t) Q(t) = c2*iordre+2 J0(t) + ...+ cDegree JDegree-2*iordre-2

## Constructor & Destructor Documentation

PLib_JacobiPolynomial::PLib_JacobiPolynomial | ( | const Standard_Integer | WorkDegree,
|  | const GeomAbs_Shape | ConstraintOrder
| ) |  |

Initialize the polynomial class Degree has to be <= 30 ConstraintOrder has to be GeomAbs_C0 GeomAbs_C1 GeomAbs_C2.

## Member Function Documentation

Standard_Real PLib_JacobiPolynomial::AverageError | ( | const Standard_Integer | Dimension,
|  | Standard_Real & | JacCoeff,
|  | const Standard_Integer | NewDegree
| ) |  | const

void PLib_JacobiPolynomial::D0 | ( | const Standard_Real | U,
|  | TColStd_Array1OfReal & | BasisValue
| ) |  |
| virtual

Compute the values of the basis functions in u.

Implements PLib_Base.

void PLib_JacobiPolynomial::D1 | ( | const Standard_Real | U,
|  | TColStd_Array1OfReal & | BasisValue,
|  | TColStd_Array1OfReal & | BasisD1
| ) |  |
| virtual

Compute the values and the derivatives values of the basis functions in u.

Implements PLib_Base.

void PLib_JacobiPolynomial::D2 | ( | const Standard_Real | U,
|  | TColStd_Array1OfReal & | BasisValue,
|  | TColStd_Array1OfReal & | BasisD1,
|  | TColStd_Array1OfReal & | BasisD2
| ) |  |
| virtual

Compute the values and the derivatives values of the basis functions in u.

Implements PLib_Base.

void PLib_JacobiPolynomial::D3 | ( | const Standard_Real | U,
|  | TColStd_Array1OfReal & | BasisValue,
|  | TColStd_Array1OfReal & | BasisD1,
|  | TColStd_Array1OfReal & | BasisD2,
|  | TColStd_Array1OfReal & | BasisD3
| ) |  |
| virtual

Compute the values and the derivatives values of the basis functions in u.

Implements PLib_Base.

Standard_Real PLib_JacobiPolynomial::MaxError | ( | const Standard_Integer | Dimension,
|  | Standard_Real & | JacCoeff,
|  | const Standard_Integer | NewDegree
| ) |  | const

This method computes the maximum error on the polynomial W(t) Q(t) obtained by missing the coefficients of JacCoeff from NewDegree +1 to Degree.

void PLib_JacobiPolynomial::MaxValue | ( | TColStd_Array1OfReal & | TabMax | ) | const

this method loads for k=0,q the maximum value of abs ( W(t)*Jk(t) )for t bellonging to [-1,1] This values are loaded is the array TabMax(0,myWorkDegree-2*(myNivConst+1)) MaxValue ( me ; TabMaxPointer : in out Real );

Standard_Integer PLib_JacobiPolynomial::NivConstr | ( |  | ) | const

returns NivConstr

void PLib_JacobiPolynomial::Points | ( | const Standard_Integer | NbGaussPoints,
|  | TColStd_Array1OfReal & | TabPoints
| ) |  | const

returns the Jacobi Points for Gauss integration ie the positive values of the Legendre roots by increasing values NbGaussPoints is the number of points choosen for the integral computation. TabPoints (0,NbGaussPoints/2) TabPoints (0) is loaded only for the odd values of NbGaussPoints The possible values for NbGaussPoints are : 8, 10, 15, 20, 25, 30, 35, 40, 50, 61 NbGaussPoints must be greater than Degree

void PLib_JacobiPolynomial::ReduceDegree | ( | const Standard_Integer | Dimension,
|  | const Standard_Integer | MaxDegree,
|  | const Standard_Real | Tol,
|  | Standard_Real & | JacCoeff,
|  | Standard_Integer & | NewDegree,
|  | Standard_Real & | MaxError
| ) |  | const
| virtual

Compute NewDegree <= MaxDegree so that MaxError is lower than Tol. MaxError can be greater than Tol if it is not possible to find a NewDegree <= MaxDegree. In this case NewDegree = MaxDegree.

Implements PLib_Base.

void PLib_JacobiPolynomial::ToCoefficients | ( | const Standard_Integer | Dimension,
|  | const Standard_Integer | Degree,
|  | const TColStd_Array1OfReal & | JacCoeff,
|  | TColStd_Array1OfReal & | Coefficients
| ) |  | const
| virtual

Convert the polynomial P(t) = R(t) + W(t) Q(t) in the canonical base.

Implements PLib_Base.

void PLib_JacobiPolynomial::Weights | ( | const Standard_Integer | NbGaussPoints,
|  | TColStd_Array2OfReal & | TabWeights
| ) |  | const

returns the Jacobi weigths for Gauss integration only for the positive values of the Legendre roots in the order they are given by the method Points NbGaussPoints is the number of points choosen for the integral computation. TabWeights (0,NbGaussPoints/2,0,Degree) TabWeights (0,.) are only loaded for the odd values of NbGaussPoints The possible values for NbGaussPoints are : 8 , 10 , 15 ,20 ,25 , 30, 35 , 40 , 50 , 61 NbGaussPoints must be greater than Degree

Standard_Integer PLib_JacobiPolynomial::WorkDegree | ( |  | ) | const
| virtual

returns WorkDegree

Implements PLib_Base.

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

- PLib_JacobiPolynomial.hxx