58   template<
class Scalar, 
class ArrayPo
int, 
class ArrayWeight>
 
   60                                                                   const ArrayPoint& cellVertices,
 
   62     : degree_(degree), cubDimension_(2), cellTopology_(cellTopology), cellVertices_(cellVertices){
 
   65                         ">>> ERROR (CubaturePolygon): No direct cubature rule implemented for the desired polynomial degree.");
 
   68     std::vector<Scalar> centroid(2,0);
 
   71     for (
int i=0;i<numNodes;i++){
 
   79     centroid[0] /= (6*area);
 
   80     centroid[1] /= (6*area);
 
   90     cubatureTri.
getCubature(cubatureTriPoints,cubatureTriWeights);
 
   95     for (
int k=0;k<numCells;k++){
 
   96       for (
int i=0;i<numCubPointsPerTri;i++){
 
   97         for (
int j=0;j<cubDim;j++){
 
   98           cubatureCellPoints(k,i,j) = cubatureTriPoints(i,j);
 
  105     shards::CellTopology triangleTopology(shards::getCellTopologyData<shards::Triangle<3> >());
 
  106     int totalCubPoints = numCubPointsPerTri*
cellTopology_.getEdgeCount();
 
  114     for (
int i=0;i<numCells;i++){
 
  115       for (
int j=0;j<cubDim;j++){
 
  118         trianglePoints(i,2,j) = centroid[j];
 
  131     for (
int i=0;i<numCells;i++){
 
  132       for (
int j=0;j<numCubPointsPerTri;j++){
 
  133         for (
int k=0;k<cubDim;k++){
 
  142 template<
class Scalar, 
class ArrayPo
int, 
class ArrayWeight>
 
  144                                                                  ArrayWeight& cubWeights)
const{
 
  145   int numCubPoints = numPoints_;
 
  146   int cellDim = cubDimension_;
 
  148   TEUCHOS_TEST_FOR_EXCEPTION ( ( cubPoints.size() < numCubPoints*cellDim || cubWeights.size() < numCubPoints ),
 
  150                        ">>> ERROR (CubaturePolygon): Insufficient space allocated for cubature points or weights.");
 
  152   for (
int pointId = 0; pointId < numCubPoints; pointId++){
 
  153     for (
int dim = 0; dim < cellDim; dim++){
 
  154       cubPoints(pointId,dim) = cubaturePoints_(pointId,dim);
 
  156     cubWeights(pointId) = cubatureWeights_(pointId);
 
  160 template<
class Scalar, 
class ArrayPo
int, 
class ArrayWeight>
 
  162                                                                  ArrayWeight& cubWeights,
 
  163                                                                  ArrayPoint& cellCoords)
 const 
  165     TEUCHOS_TEST_FOR_EXCEPTION( (
true), std::logic_error,
 
  166                       ">>> ERROR (CubaturePolygon): Cubature defined in reference space calling method for physical space cubature.");
 
  171 template<
class Scalar, 
class ArrayPo
int, 
class ArrayWeight>
 
  176 template<
class Scalar, 
class ArrayPo
int, 
class ArrayWeight>
 
  178   return cubDimension_;
 
  181 template<
class Scalar, 
class ArrayPo
int, 
class ArrayWeight>
 
  183   accuracy.assign(1,degree_);
 
int cubDimension_
Dimension of integration domain. 
virtual void getCubature(ArrayPoint &cubPoints, ArrayWeight &cubWeights) const 
Returns cubature points and weights (return arrays must be pre-sized/pre-allocated). 
int getDimension() const 
Returns dimension of integration domain. 
Header file for utility class to provide multidimensional containers. 
#define INTREPID_CUBATURE_TRI_DEFAULT_MAX
The maximum degree of the polynomial that can be integrated exactly by a direct triangle rule of the ...
virtual int getNumPoints() const 
Returns the number of cubature points. 
shards::CellTopology cellTopology_
The topology of the polygon. 
void getAccuracy(std::vector< int > &accuracy) const 
Returns max. degree of polynomials that are integrated exactly on each triangle. The return vector ha...
int degree_
The degree of the polynomials that are integrated exactly on each triangle. 
FieldContainer< Scalar > cubatureWeights_
Local copy of cubature weights. 
void getCubature(ArrayPoint &cubPoints, ArrayWeight &cubWeights) const 
Returns cubature points and weights (return arrays must be pre-sized/pre-allocated). 
FieldContainer< Scalar > cubaturePoints_
Local copy of cubature points. 
Header file for the Intrepid::CubatureDirectTriDefault class. 
virtual int getDimension() const 
Returns dimension of integration domain. 
void resize(const int dim0)
Resizes FieldContainer to a rank-1 container with the specified dimension, initialized by 0...
Defines direct integration rules on a triangle. 
int getNumPoints() const 
Returns the number of cubature points. 
CubaturePolygon(const shards::CellTopology &cellTopology, const ArrayPoint &cellVertices, int degree)
int numPoints_
The number of cubature points. 
ArrayPoint cellVertices_
The vertices of the polygon.