49 #ifndef INTREPID_CUBATURE_LINESORTED_HPP
50 #define INTREPID_CUBATURE_LINESORTED_HPP
52 #include "Intrepid_ConfigDefs.hpp"
55 #include "Teuchos_Assert.hpp"
56 #include "Teuchos_Array.hpp"
61 enum EIntrepidGrowth {
88 template<
class Scalar,
class ArrayPo
int = FieldContainer<Scalar>,
class ArrayWeight = ArrayPo
int>
127 CubatureLineSorted(
int degree = 0, EIntrepidBurkardt rule = BURK_CLENSHAWCURTIS,
bool isNormalized =
false);
133 CubatureLineSorted(EIntrepidBurkardt rule = BURK_CLENSHAWCURTIS,
int numPoints = 0,
bool isNormalized =
false);
145 ArrayWeight & cubWeights)
const;
155 ArrayWeight& cubWeights,
156 ArrayPoint& cellCoords)
const;
165 void getAccuracy(std::vector<int> & accuracy)
const;
177 Scalar
getNode(
typename std::map<Scalar,int>::iterator it);
189 typename std::map<Scalar,int>::iterator
begin(
void);
193 typename std::map<Scalar,int>::iterator
end(
void);
201 int growthRule1D(
int index, EIntrepidGrowth growth, EIntrepidBurkardt rule);
CubatureLineSorted(int degree=0, EIntrepidBurkardt rule=BURK_CLENSHAWCURTIS, bool isNormalized=false)
Constructor.
Utilizes cubature (integration) rules contained in the library sandia_rules (John Burkardt...
std::map< Scalar, int >::iterator begin(void)
Initiate iterator at the beginning of data.
void update(Scalar alpha2, CubatureLineSorted< Scalar > &cubRule2, Scalar alpha1)
Replace CubatureLineSorted values with "this = alpha1*this+alpha2*cubRule2".
EIntrepidBurkardt rule_type_
Type of integration points.
Header file for utility class to provide multidimensional containers.
std::vector< Scalar > weights_
Contains points of this cubature rule.
void getAccuracy(std::vector< int > &accuracy) const
Returns max. degree of polynomials that are integrated exactly. The return vector has size 1...
void getCubature(ArrayPoint &cubPoints, ArrayWeight &cubWeights) const
Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
Header file for integration rules provided by John Burkardt. <>
static const char * cubature_name_
Cubature name.
int getNumPoints() const
Returns the number of cubature points.
int getDimension() const
Returns dimension of domain of integration.
Defines the base class for cubature (integration) rules in Intrepid.
Scalar getNode(typename std::map< Scalar, int >::iterator it)
Get a specific node described by the iterator location.
const char * getName() const
Returns cubature name.
Definition file for the Intrepid::CubatureLineSorted class.
std::map< Scalar, int > points_
Contains points of this cubature rule.
Header file for the Intrepid::Cubature class.
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.
Scalar getWeight(int weight)
Get a specific weight described by the integer location.
std::map< Scalar, int >::iterator end(void)
Initiate iterator at the end of data.