49 #ifndef INTREPID_CUBATURE_TENSORSORTED_HPP
50 #define INTREPID_CUBATURE_TENSORSORTED_HPP
89 template<
class Scalar,
class ArrayPo
int = FieldContainer<Scalar>,
class ArrayWeight = ArrayPo
int>
95 typename std::map<std::vector<Scalar>,
int>
points_;
135 CubatureTensorSorted(
int dimension, std::vector<int> numPoints1D, std::vector<EIntrepidBurkardt> rule1D,
bool isNormalized);
144 CubatureTensorSorted(
int dimension, std::vector<int> numPoints1D, std::vector<EIntrepidBurkardt> rule1D, std::vector<EIntrepidGrowth> growth1D,
bool isNormalized);
154 CubatureTensorSorted(
int dimension,
int maxNumPoints, std::vector<EIntrepidBurkardt> rule1D, std::vector<EIntrepidGrowth> growth1D,
bool isNormalized);
164 ArrayWeight & cubWeights)
const;
174 ArrayWeight& cubWeights,
175 ArrayPoint& cellCoords)
const;
184 void getAccuracy(std::vector<int> & accuracy)
const;
192 typename std::map<std::vector<Scalar>,
int>::iterator
begin();
196 typename std::map<std::vector<Scalar>,
int>::iterator
end();
200 void insert(
typename std::map<std::vector<Scalar>,
int>::iterator it,
201 std::vector<Scalar> point, Scalar weight);
205 std::vector<Scalar>
getNode(
typename std::map<std::vector<Scalar>,
int>::iterator it);
213 Scalar
getWeight(std::vector<Scalar> point);
226 template<
class Scalar>
227 CubatureTensorSorted<Scalar> kron_prod(CubatureTensorSorted<Scalar> & rule1,
228 CubatureLineSorted<Scalar> & rule2 );
int getNumPoints() const
Returns the number of cubature points.
void normalize()
Normalize CubatureLineSorted weights.
std::map< std::vector< Scalar >, int >::iterator begin()
Initiate iterator at the beginning of data.
Utilizes cubature (integration) rules contained in the library sandia_rules (John Burkardt...
Scalar getWeight(int node)
Get a specific weight described by the integer location.
std::vector< Scalar > getNode(typename std::map< std::vector< Scalar >, int >::iterator it)
Get a specific node described by the iterator location.
void update(Scalar alpha2, CubatureTensorSorted< Scalar > &cubRule2, Scalar alpha1)
Replace CubatureLineSorted values with "this = alpha1*this+alpha2*cubRule2".
Header file for the Intrepid::CubatureLineSorted class.
std::vector< int > degree_
The degree of polynomials that are integrated exactly by this cubature rule.
int dimension_
Dimension of integration domain.
Definition file for the Intrepid::CubatureTensorSorted class.
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.
Defines the base class for cubature (integration) rules in Intrepid.
int getDimension() const
Returns dimension of domain of integration.
std::map< std::vector< Scalar >, int > points_
Contains nodes 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...
Utilizes 1D cubature (integration) rules contained in the library sandia_rules (John Burkardt...
void getCubature(ArrayPoint &cubPoints, ArrayWeight &cubWeights) const
Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
std::map< std::vector< Scalar >, int >::iterator end()
Initiate iterator at the end of data.
int numPoints_
Contains the number of nodes for this cubature rule.
std::vector< Scalar > weights_
Contains weights of this cubature rule.