Intrepid
Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight > Class Template Reference

Defines tensor-product cubature (integration) rules in Intrepid. More...

#include <Intrepid_CubatureTensor.hpp>

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

Public Member Functions

 CubatureTensor (std::vector< Teuchos::RCP< Cubature< Scalar, ArrayPoint, ArrayWeight > > > cubatures)
 Constructor.
 CubatureTensor (Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature1, Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature2)
 Constructor.
 CubatureTensor (Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature1, Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature2, Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature3)
 Constructor.
 CubatureTensor (Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature, int n)
 Constructor.
virtual void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights) const
 Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
virtual void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights, ArrayPoint &cellCoords) const
 Returns cubature points and weights. Method for physical space cubature, throws an exception.
virtual int getNumPoints () const
 Returns the number of cubature points.
virtual int getDimension () const
 Returns dimension of integration domain.
virtual void getAccuracy (std::vector< int > &degree) const
 Returns max. degree of polynomials that are integrated exactly. The return vector has the size of the degree_ vector.

Private Attributes

std::vector< int > degree_
 Degree of polynomials that are integrated exactly by each cubature rule within the tensor product.
int dimension_
 Dimension of integration domain.
std::vector< Teuchos::RCP< Cubature< Scalar, ArrayPoint, ArrayWeight > > > cubatures_
 Array of cubature rules, stored as FieldContainers.

Detailed Description

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

Defines tensor-product cubature (integration) rules in Intrepid.

Definition at line 64 of file Intrepid_CubatureTensor.hpp.

Constructor & Destructor Documentation

◆ ~CubatureTensor()

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::~CubatureTensor ( )
inline

Definition at line 82 of file Intrepid_CubatureTensor.hpp.

◆ CubatureTensor() [1/4]

template<class Scalar, class ArrayPoint, class ArrayWeight>
Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::CubatureTensor ( std::vector< Teuchos::RCP< Cubature< Scalar, ArrayPoint, ArrayWeight > > > cubatures)

◆ CubatureTensor() [2/4]

template<class Scalar, class ArrayPoint, class ArrayWeight>
Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::CubatureTensor ( Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature1,
Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature2 )

Constructor.

Parameters
cubature1[in] - First direct cubature rule.
cubature2[in] - Second direct cubature rule.

Definition at line 84 of file Intrepid_CubatureTensorDef.hpp.

References cubatures_.

◆ CubatureTensor() [3/4]

template<class Scalar, class ArrayPoint, class ArrayWeight>
Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::CubatureTensor ( Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature1,
Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature2,
Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature3 )

Constructor.

Parameters
cubature1[in] - First direct cubature rule.
cubature2[in] - Second direct cubature rule.
cubature3[in] - Third direct cubature rule.

Definition at line 102 of file Intrepid_CubatureTensorDef.hpp.

References cubatures_, degree_, and dimension_.

◆ CubatureTensor() [4/4]

template<class Scalar, class ArrayPoint, class ArrayWeight>
Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::CubatureTensor ( Teuchos::RCP< CubatureDirect< Scalar, ArrayPoint, ArrayWeight > > cubature,
int n )

Constructor.

Parameters
cubature[in] - Direct cubature rule.
n[in] - Number of copies of the cubature rule in the tensor product.

Definition at line 122 of file Intrepid_CubatureTensorDef.hpp.

References cubatures_, degree_, and dimension_.

Member Function Documentation

◆ getAccuracy()

template<class Scalar, class ArrayPoint, class ArrayWeight>
void Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::getAccuracy ( std::vector< int > & degree) const
virtual

Returns max. degree of polynomials that are integrated exactly. The return vector has the size of the degree_ vector.

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

Reimplemented in Intrepid::CubatureTensorPyr< Scalar, ArrayPoint, ArrayWeight >.

Definition at line 226 of file Intrepid_CubatureTensorDef.hpp.

References degree_.

Referenced by Intrepid::CubatureTensorPyr< Scalar, ArrayPoint, ArrayWeight >::getAccuracy().

◆ getCubature() [1/2]

template<class Scalar, class ArrayPoint, class ArrayWeight>
void Intrepid::CubatureTensor< 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] - Vector containing the cubature points.
cubWeights[out] - Vector of corresponding cubature weights.

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

Reimplemented in Intrepid::CubatureTensorPyr< Scalar, ArrayPoint, ArrayWeight >.

Definition at line 138 of file Intrepid_CubatureTensorDef.hpp.

References getDimension(), and getNumPoints().

Referenced by Intrepid::CubatureTensorPyr< Scalar, ArrayPoint, ArrayWeight >::getCubature().

◆ getCubature() [2/2]

template<class Scalar, class ArrayPoint, class ArrayWeight>
void Intrepid::CubatureTensor< 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 >.

Reimplemented in Intrepid::CubatureTensorPyr< Scalar, ArrayPoint, ArrayWeight >.

Definition at line 198 of file Intrepid_CubatureTensorDef.hpp.

◆ getDimension()

template<class Scalar, class ArrayPoint, class ArrayWeight>
int Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::getDimension ( ) const
virtual

◆ getNumPoints()

template<class Scalar, class ArrayPoint, class ArrayWeight>
int Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::getNumPoints ( ) const
virtual

Member Data Documentation

◆ cubatures_

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
std::vector< Teuchos::RCP<Cubature<Scalar,ArrayPoint,ArrayWeight> > > Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::cubatures_
private

Array of cubature rules, stored as FieldContainers.

Definition at line 78 of file Intrepid_CubatureTensor.hpp.

Referenced by CubatureTensor(), CubatureTensor(), CubatureTensor(), CubatureTensor(), and getNumPoints().

◆ degree_

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
std::vector<int> Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::degree_
private

Degree of polynomials that are integrated exactly by each cubature rule within the tensor product.

Definition at line 70 of file Intrepid_CubatureTensor.hpp.

Referenced by CubatureTensor(), CubatureTensor(), CubatureTensor(), and getAccuracy().

◆ dimension_

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
int Intrepid::CubatureTensor< Scalar, ArrayPoint, ArrayWeight >::dimension_
private

Dimension of integration domain.

Definition at line 74 of file Intrepid_CubatureTensor.hpp.

Referenced by CubatureTensor(), CubatureTensor(), CubatureTensor(), and getDimension().


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