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

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

#include <Intrepid_CubatureLineSorted.hpp>

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

Public Member Functions

 CubatureLineSorted (int degree=0, EIntrepidBurkardt rule=BURK_CLENSHAWCURTIS, bool isNormalized=false)
 Constructor.
 CubatureLineSorted (EIntrepidBurkardt rule=BURK_CLENSHAWCURTIS, int numPoints=0, bool isNormalized=false)
 Constructor.
 CubatureLineSorted (std::vector< Scalar > &points, std::vector< Scalar > &weights)
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.
const char * getName () const
 Returns cubature name.
Scalar getNode (typename std::map< Scalar, int >::iterator it)
 Get a specific node described by the iterator location.
Scalar getWeight (int weight)
 Get a specific weight described by the integer location.
Scalar getWeight (Scalar point)
 Get a specific weight described by the corresponding node.
std::map< Scalar, int >::iterator begin (void)
 Initiate iterator at the beginning of data.
std::map< Scalar, int >::iterator end (void)
 Initiate iterator at the end of data.
void update (Scalar alpha2, CubatureLineSorted< Scalar > &cubRule2, Scalar alpha1)
 Replace CubatureLineSorted values with "this = alpha1*this+alpha2*cubRule2".

Private Attributes

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

Static Private Attributes

static const char * cubature_name_
 Cubature name.

Detailed Description

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

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

This class contains ten rules:

  • Gauss-Chebyshev Type 1 - integration domain is [-1,+1] with weight w(x) = 1/sqrt(1-x^2)
  • Gauss-Chebyshev Type 2 - integration domain is [-1,+1] with weight w(x) = sqrt(1-x^2)
  • Clenshaw-Curtis - integration domain is [-1,+1] with weight w(x) = 1
  • Fejer Type 2 - integration domain is [-1,+1] with weight w(x) = 1
  • Gauss-Legendre - integration domain is [-1,+1] with weight w(x) = 1
  • Gauss-Patterson - integration domain is [-1,+1] with weight w(x) = 1
  • Trapezoidal - integration domain is [-1,+1] with weight w(x) = 1
  • Gauss-Hermite - integration domain is (-oo,+oo) with weight w(x) = exp(-x^2)
  • Hermite-Genz-Keister - integration domain is (-oo,+oo) with weight w(x) = exp(-x^2)
  • Gauss-Laguerre - integration domain is [0,+oo) with weight w(x) = exp(-x)

Definition at line 89 of file Intrepid_CubatureLineSorted.hpp.

Constructor & Destructor Documentation

◆ ~CubatureLineSorted()

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

Definition at line 120 of file Intrepid_CubatureLineSorted.hpp.

◆ CubatureLineSorted() [1/3]

◆ CubatureLineSorted() [2/3]

◆ CubatureLineSorted() [3/3]

template<class Scalar, class ArrayPoint, class ArrayWeight>
Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureLineSorted ( std::vector< Scalar > & points,
std::vector< Scalar > & weights )

Definition at line 264 of file Intrepid_CubatureLineSortedDef.hpp.

Member Function Documentation

◆ begin()

template<class Scalar, class ArrayPoint, class ArrayWeight>
std::map< Scalar, int >::iterator Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::begin ( void )

Initiate iterator at the beginning of data.

Definition at line 342 of file Intrepid_CubatureLineSortedDef.hpp.

References points_.

Referenced by Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted(), and update().

◆ end()

template<class Scalar, class ArrayPoint, class ArrayWeight>
std::map< Scalar, int >::iterator Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::end ( void )

Initiate iterator at the end of data.

Definition at line 347 of file Intrepid_CubatureLineSortedDef.hpp.

References points_.

Referenced by Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted(), and update().

◆ getAccuracy()

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

◆ getCubature() [1/2]

template<class Scalar, class ArrayPoint, class ArrayWeight>
void Intrepid::CubatureLineSorted< 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 298 of file Intrepid_CubatureLineSortedDef.hpp.

References points_, and weights_.

◆ getCubature() [2/2]

template<class Scalar, class ArrayPoint, class ArrayWeight>
void Intrepid::CubatureLineSorted< 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 310 of file Intrepid_CubatureLineSortedDef.hpp.

◆ getDimension()

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

Returns dimension of domain of integration.

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

Definition at line 319 of file Intrepid_CubatureLineSortedDef.hpp.

◆ getName()

template<class Scalar, class ArrayPoint, class ArrayWeight>
const char * Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::getName ( ) const

Returns cubature name.

Definition at line 279 of file Intrepid_CubatureLineSortedDef.hpp.

References cubature_name_.

◆ getNode()

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

Get a specific node described by the iterator location.

Definition at line 324 of file Intrepid_CubatureLineSortedDef.hpp.

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

◆ getNumPoints()

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

◆ getWeight() [1/2]

template<class Scalar, class ArrayPoint, class ArrayWeight>
Scalar Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::getWeight ( int weight)

Get a specific weight described by the integer location.

Definition at line 330 of file Intrepid_CubatureLineSortedDef.hpp.

References weights_.

Referenced by Intrepid::CubatureTensorSorted< Scalar, ArrayPoint, ArrayWeight >::CubatureTensorSorted(), and update().

◆ getWeight() [2/2]

template<class Scalar, class ArrayPoint, class ArrayWeight>
Scalar Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::getWeight ( Scalar point)

Get a specific weight described by the corresponding node.

Definition at line 335 of file Intrepid_CubatureLineSortedDef.hpp.

References points_, and weights_.

◆ update()

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

Member Data Documentation

◆ cubature_name_

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
const char* Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::cubature_name_
staticprivate

Cubature name.

Definition at line 116 of file Intrepid_CubatureLineSorted.hpp.

Referenced by getName().

◆ degree_

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
int Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::degree_
private

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

Definition at line 108 of file Intrepid_CubatureLineSorted.hpp.

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

◆ numPoints_

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

Contains the number of nodes for this cubature rule.

Definition at line 103 of file Intrepid_CubatureLineSorted.hpp.

Referenced by CubatureLineSorted(), CubatureLineSorted(), getNumPoints(), and update().

◆ points_

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

Contains points of this cubature rule.

Definition at line 95 of file Intrepid_CubatureLineSorted.hpp.

Referenced by begin(), CubatureLineSorted(), CubatureLineSorted(), end(), getCubature(), getWeight(), and update().

◆ rule_type_

template<class Scalar, class ArrayPoint = FieldContainer<Scalar>, class ArrayWeight = ArrayPoint>
EIntrepidBurkardt Intrepid::CubatureLineSorted< Scalar, ArrayPoint, ArrayWeight >::rule_type_
private

Type of integration points.

Definition at line 112 of file Intrepid_CubatureLineSorted.hpp.

Referenced by CubatureLineSorted(), and CubatureLineSorted().

◆ weights_

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

Contains points of this cubature rule.

Definition at line 99 of file Intrepid_CubatureLineSorted.hpp.

Referenced by CubatureLineSorted(), CubatureLineSorted(), getCubature(), getWeight(), getWeight(), and update().


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