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

Utilizes 1D cubature (integration) rules contained in the library sandia_rules (John Burkardt, Scientific Computing, Florida State University) within Intrepid. More...

#include <Intrepid_CubatureTensorSorted.hpp>

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

Public Member Functions

 CubatureTensorSorted (int numPoints=0, int dimension=1)
 
 CubatureTensorSorted (CubatureLineSorted< Scalar > &cubLine)
 Constructor.
 
 CubatureTensorSorted (int dimension, std::vector< int > numPoints1D, std::vector< EIntrepidBurkardt > rule1D, bool isNormalized)
 Constructor.
 
 CubatureTensorSorted (int dimension, std::vector< int > numPoints1D, std::vector< EIntrepidBurkardt > rule1D, std::vector< EIntrepidGrowth > growth1D, bool isNormalized)
 Constructor.
 
 CubatureTensorSorted (int dimension, int maxNumPoints, std::vector< EIntrepidBurkardt > rule1D, std::vector< EIntrepidGrowth > growth1D, bool isNormalized)
 Constructor.
 
void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights) const
 Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
 
void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights, ArrayPoint &cellCoords) const
 Returns cubature points and weights. Method for physical space cubature, throws an exception.
 
int getNumPoints () const
 Returns the number of cubature points.
 
void getAccuracy (std::vector< int > &accuracy) const
 Returns max. degree of polynomials that are integrated exactly. The return vector has size 1.
 
int getDimension () const
 Returns dimension of domain of integration.
 
std::map< std::vector< Scalar >, int >::iterator begin ()
 Initiate iterator at the beginning of data.
 
std::map< std::vector< Scalar >, int >::iterator end ()
 Initiate iterator at the end of data.
 
void insert (typename std::map< std::vector< Scalar >, int >::iterator it, std::vector< Scalar > point, Scalar weight)
 Insert a node and weight into data near the iterator position.
 
std::vector< Scalar > getNode (typename std::map< std::vector< Scalar >, int >::iterator it)
 Get a specific node described by the iterator location.
 
Scalar getWeight (int node)
 Get a specific weight described by the integer location.
 
Scalar getWeight (std::vector< Scalar > point)
 Get a specific weight described by the iterator location.
 
void update (Scalar alpha2, CubatureTensorSorted< Scalar > &cubRule2, Scalar alpha1)
 Replace CubatureLineSorted values with "this = alpha1*this+alpha2*cubRule2".
 
void normalize ()
 Normalize CubatureLineSorted weights.
 
virtual void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights) const =0
 Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
 
virtual void getCubature (ArrayPoint &cubPoints, ArrayWeight &cubWeights, ArrayPoint &cellVertices) const =0
 Returns cubature points and weights on physical cells (return arrays must be pre-sized/pre-allocated).
 
virtual int getNumPoints () const =0
 Returns the number of cubature points.
 
virtual int getDimension () const =0
 Returns dimension of the integration domain.
 
virtual void getAccuracy (std::vector< int > &accuracy) const =0
 Returns algebraic accuracy (e.g. max. degree of polynomial that is integrated exactly). For tensor-product or sparse rules, algebraic accuracy for each coordinate direction is returned.
 

Private Attributes

std::map< std::vector< Scalar >, int > points_
 Contains nodes of this cubature rule.
 
std::vector< Scalar > weights_
 Contains weights of this cubature rule.
 
int numPoints_
 Contains the number of nodes for this cubature rule.
 
std::vector< int > degree_
 The degree of polynomials that are integrated exactly by this cubature rule.
 
int dimension_
 Dimension of integration domain.
 

Detailed Description

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

Utilizes 1D cubature (integration) rules contained in the library sandia_rules (John Burkardt, Scientific Computing, Florida State University) within Intrepid.

This class contains ten rules:

Definition at line 90 of file Intrepid_CubatureTensorSorted.hpp.

Constructor & Destructor Documentation

◆ ~CubatureTensorSorted()

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

Definition at line 116 of file Intrepid_CubatureTensorSorted.hpp.

◆ CubatureTensorSorted() [1/5]

template<class Scalar , class ArrayPoint , class ArrayWeight >
Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted ( int  numPoints = 0,
int  dimension = 1 
)

Definition at line 52 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ CubatureTensorSorted() [2/5]

template<class Scalar , class ArrayPoint , class ArrayWeight >
Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted ( CubatureLineSorted< Scalar > &  cubLine)

◆ CubatureTensorSorted() [3/5]

template<class Scalar , class ArrayPoint , class ArrayWeight >
Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted ( int  dimension,
std::vector< int >  numPoints1D,
std::vector< EIntrepidBurkardt >  rule1D,
bool  isNormalized 
)

Constructor.

Parameters
dimension[in] - The number of spatial dimensions.
numPoints1D[in] - The number of cubature points in each direction.
rule1D[in] - The cubature rule for each direction.
isNormalized[in] - Flag whether or not to normalize the cubature weights.

Definition at line 87 of file Intrepid_CubatureTensorSortedDef.hpp.

References Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::begin(), Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::end(), Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::getAccuracy(), Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getNumPoints(), and Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getWeight().

◆ CubatureTensorSorted() [4/5]

template<class Scalar , class ArrayPoint , class ArrayWeight >
Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted ( int  dimension,
std::vector< int >  numPoints1D,
std::vector< EIntrepidBurkardt >  rule1D,
std::vector< EIntrepidGrowth >  growth1D,
bool  isNormalized 
)

Constructor.

Parameters
dimension[in] - The number of spatial dimensions.
numPoints1D[in] - The number of cubature points in each direction.
rule1D[in] - The cubature rule for each direction.
isNormalized[in] - Flag whether or not to normalize the cubature weights.

Definition at line 123 of file Intrepid_CubatureTensorSortedDef.hpp.

References Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::begin(), Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::end(), Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::getAccuracy(), Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getNumPoints(), and Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getWeight().

◆ CubatureTensorSorted() [5/5]

template<class Scalar , class ArrayPoint , class ArrayWeight >
Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted ( int  dimension,
int  maxNumPoints,
std::vector< EIntrepidBurkardt >  rule1D,
std::vector< EIntrepidGrowth >  growth1D,
bool  isNormalized 
)

Constructor.

Parameters
dimension[in] - The number of spatial dimensions.
maxNumPoints[in] - The maximum number of cubature points in each direction.
rule1D[in] - The cubature rule for each direction.
growth1D[in] - Growth rule for each direction.
isNormalized[in] - Flag whether or not to normalize the cubature weights.

Definition at line 163 of file Intrepid_CubatureTensorSortedDef.hpp.

References Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::begin(), Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::end(), Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::getAccuracy(), Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getNumPoints(), and Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getWeight().

Member Function Documentation

◆ begin()

template<class Scalar , class ArrayPoint , class ArrayWeight >
std::map< std::vector< Scalar >, int >::iterator Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::begin

◆ end()

template<class Scalar , class ArrayPoint , class ArrayWeight >
std::map< std::vector< Scalar >, int >::iterator Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::end

◆ getAccuracy()

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

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

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

Definition at line 210 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ getCubature() [1/2]

template<class Scalar , class ArrayPoint , class ArrayWeight >
void Intrepid::CubatureTensorSorted< 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 216 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ getCubature() [2/2]

template<class Scalar , class ArrayPoint , class ArrayWeight >
void Intrepid::CubatureTensorSorted< 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 241 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ getDimension()

template<class Scalar , class ArrayPoint , class ArrayWeight >
int Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getDimension
virtual

Returns dimension of domain of integration.

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

Definition at line 250 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ getNode()

template<class Scalar , class ArrayPoint , class ArrayWeight >
std::vector< Scalar > Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getNode ( typename std::map< std::vector< Scalar >, int >::iterator  it)

Get a specific node described by the iterator location.

Definition at line 277 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ getNumPoints()

template<class Scalar , class ArrayPoint , class ArrayWeight >
int Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getNumPoints
virtual

◆ getWeight() [1/2]

template<class Scalar , class ArrayPoint , class ArrayWeight >
Scalar Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getWeight ( int  node)

◆ getWeight() [2/2]

template<class Scalar , class ArrayPoint , class ArrayWeight >
Scalar Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::getWeight ( std::vector< Scalar >  point)

Get a specific weight described by the iterator location.

Definition at line 294 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ insert()

template<class Scalar , class ArrayPoint , class ArrayWeight >
void Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::insert ( typename std::map< std::vector< Scalar >, int >::iterator  it,
std::vector< Scalar >  point,
Scalar  weight 
)

Insert a node and weight into data near the iterator position.

Definition at line 265 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ normalize()

template<class Scalar , class ArrayPoint , class ArrayWeight >
void Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::normalize

Normalize CubatureLineSorted weights.

Definition at line 368 of file Intrepid_CubatureTensorSortedDef.hpp.

◆ update()

template<class Scalar , class ArrayPoint , class ArrayWeight >
void Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::update ( Scalar  alpha2,
CubatureTensorSorted< Scalar > &  cubRule2,
Scalar  alpha1 
)

Member Data Documentation

◆ degree_

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

The degree of polynomials that are integrated exactly by this cubature rule.

Definition at line 108 of file Intrepid_CubatureTensorSorted.hpp.

◆ dimension_

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

Dimension of integration domain.

Definition at line 112 of file Intrepid_CubatureTensorSorted.hpp.

◆ numPoints_

template<class Scalar , class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
int Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::numPoints_
private

Contains the number of nodes for this cubature rule.

Definition at line 103 of file Intrepid_CubatureTensorSorted.hpp.

◆ points_

template<class Scalar , class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
std::map<std::vector<Scalar>,int> Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::points_
private

Contains nodes of this cubature rule.

Definition at line 95 of file Intrepid_CubatureTensorSorted.hpp.

◆ weights_

template<class Scalar , class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
std::vector<Scalar> Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::weights_
private

Contains weights of this cubature rule.

Definition at line 99 of file Intrepid_CubatureTensorSorted.hpp.


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