Intrepid
Public Member Functions | Private Attributes | Static Private Attributes | List of all members
Intrepid::CubaturePolylib< Scalar, ArrayPoint, ArrayWeight > Class Template Reference

Utilizes cubature (integration) rules contained in the library Polylib (Spencer Sherwin, Aeronautics, Imperial College London) within Intrepid. More...

#include <Intrepid_CubaturePolylib.hpp>

Inheritance diagram for Intrepid::CubaturePolylib< Scalar, ArrayPoint, ArrayWeight >:
Intrepid::Cubature< Scalar, ArrayPoint, ArrayWeight >

Public Member Functions

 CubaturePolylib (int degree=0, EIntrepidPLPoly pt_type=PL_GAUSS, Scalar alpha=0.0, Scalar beta=0.0)
 Constructor. More...
 
void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights) const
 Returns cubature points and weights (return arrays must be pre-sized/pre-allocated). More...
 
void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights, ArrayPoint &cellCoords) const
 Returns cubature points and weights. Method for physical space cubature, throws an exception. More...
 
int getNumPoints () const
 Returns the number of cubature points.
 
virtual int getDimension () const
 Returns dimension of integration domain.
 
void getAccuracy (std::vector< int > &accuracy) const
 Returns max. degree of polynomials that are integrated exactly. The return vector has size 1.
 
const char * getName () const
 Returns cubature name.
 

Private Attributes

int degree_
 The degree of polynomials that are integrated exactly by this cubature rule.
 
int dimension_
 Dimension of integration domain.
 
EIntrepidPLPoly poly_type_
 Type of integration points.
 
Scalar alpha_
 Jacobi parameter alpha.
 
Scalar beta_
 Jacobi parameter beta.
 

Static Private Attributes

static const char * cubature_name_ = "INTREPID_CUBATURE_POLYLIB"
 Cubature name.
 

Detailed Description

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
class Intrepid::CubaturePolylib< Scalar, ArrayPoint, ArrayWeight >

Utilizes cubature (integration) rules contained in the library Polylib (Spencer Sherwin, Aeronautics, Imperial College London) within Intrepid.

They are based on zeros of Jacobi polynomials, e.g. Legendre (alpha=beta=0, default), Chebyshev (alpha=beta=-0.5), etc. They are given on the interval [-1,1] and are optimal with respect to the following requirements, yielding 4 subclasses:

Definition at line 74 of file Intrepid_CubaturePolylib.hpp.

Constructor & Destructor Documentation

template<class Scalar , class ArrayPoint , class ArrayWeight >
Intrepid::CubaturePolylib< Scalar, ArrayPoint, ArrayWeight >::CubaturePolylib ( int  degree = 0,
EIntrepidPLPoly  pt_type = PL_GAUSS,
Scalar  alpha = 0.0,
Scalar  beta = 0.0 
)

Constructor.

Parameters
degree[in] - The degree of polynomials that are integrated exactly by this cubature rule. Default: 0.

Definition at line 52 of file Intrepid_CubaturePolylibDef.hpp.

Member Function Documentation

template<class Scalar , class ArrayPoint , class ArrayWeight >
void Intrepid::CubaturePolylib< Scalar, ArrayPoint, ArrayWeight >::getCubature ( ArrayPoint &  cubPoints,
ArrayWeight &  cubWeights 
) const
virtual

Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).

Parameters
cubPoints[out] - Array containing the cubature points.
cubWeights[out] - Array of corresponding cubature weights.

Implements Intrepid::Cubature< Scalar, ArrayPoint, ArrayWeight >.

Definition at line 119 of file Intrepid_CubaturePolylibDef.hpp.

References Intrepid::IntrepidPolylib::zwgj(), Intrepid::IntrepidPolylib::zwglj(), Intrepid::IntrepidPolylib::zwgrjm(), and Intrepid::IntrepidPolylib::zwgrjp().

template<class Scalar , class ArrayPoint , class ArrayWeight >
void Intrepid::CubaturePolylib< Scalar, ArrayPoint, ArrayWeight >::getCubature ( ArrayPoint &  cubPoints,
ArrayWeight &  cubWeights,
ArrayPoint &  cellCoords 
) const
virtual

Returns cubature points and weights. Method for physical space cubature, throws an exception.

Parameters
cubPoints[out] - Array containing the cubature points.
cubWeights[out] - Array of corresponding cubature weights.
cellCoords[in] - Array of cell coordinates

Implements Intrepid::Cubature< Scalar, ArrayPoint, ArrayWeight >.

Definition at line 161 of file Intrepid_CubaturePolylibDef.hpp.


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