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"
88template<
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);
201int growthRule1D(
int index, EIntrepidGrowth growth, EIntrepidBurkardt rule);
Header file for integration rules provided by John Burkardt. <\A>
Definition file for the Intrepid::CubatureLineSorted class.
Header file for the Intrepid::Cubature class.
Header file for utility class to provide multidimensional containers.
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 getCubature(ArrayPoint &cubPoints, ArrayWeight &cubWeights) const
Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
Scalar getNode(typename std::map< Scalar, int >::iterator it)
Get a specific node described by the iterator location.
std::map< Scalar, int >::iterator end(void)
Initiate iterator at the end of data.
Scalar getWeight(int weight)
Get a specific weight described by the integer location.
const char * getName() const
Returns cubature name.
int numPoints_
Contains the number of nodes for this cubature rule.
EIntrepidBurkardt rule_type_
Type of integration points.
std::vector< Scalar > weights_
Contains points of this cubature rule.
int getDimension() const
Returns dimension of domain of integration.
void update(Scalar alpha2, CubatureLineSorted< Scalar > &cubRule2, Scalar alpha1)
Replace CubatureLineSorted values with "this = alpha1*this+alpha2*cubRule2".
int degree_
The degree of polynomials that are integrated exactly by this cubature rule.
static const char * cubature_name_
Cubature name.
void getAccuracy(std::vector< int > &accuracy) const
Returns max. degree of polynomials that are integrated exactly. The return vector has size 1.
std::map< Scalar, int > points_
Contains points of this cubature rule.
int getNumPoints() const
Returns the number of cubature points.
Defines the base class for cubature (integration) rules in Intrepid.