85 ArrayWeight& cubWeights,
86 ArrayPoint& cellCoords)
const
89 int numCells = cellCoords.dimension(0);
90 int numNodesPerCell = cellCoords.dimension(1);
91 int spaceDim = cellCoords.dimension(2);
100 int subcvCubDegree = 2;
101 Teuchos::RCP<Intrepid::Cubature<double,Intrepid::FieldContainer<double> > > subCVCubature;
105 int numSubcvCubPoints = subCVCubature ->
getNumPoints();
111 subCVCubature ->
getCubature(subcvCubPoints, subcvCubWeights);
114 for (
int icell = 0; icell < numCells; icell++){
119 for (
int isubcv = 0; isubcv < numNodesPerCell; isubcv++){
120 for (
int idim = 0; idim < spaceDim; idim++){
121 for (
int inode = 0; inode < numNodesPerSubCV; inode++){
122 subCVCenter(isubcv,0,idim) += subCVCoords(icell,isubcv,inode,idim)/numNodesPerSubCV;
123 cellCVCoords(isubcv,inode,idim) = subCVCoords(icell,isubcv,inode,idim);
125 cubPoints(icell,isubcv,idim) = subCVCenter(isubcv,0,idim);
132 Intrepid::CellTools<Scalar>::setJacobian(subCVJacobian, subcvCubPoints, cellCVCoords, *(
subCVCellTopo_));
136 for (
int inode = 0; inode < numNodesPerCell; inode++){
138 for (
int ipt = 0; ipt < numSubcvCubPoints; ipt++){
139 vol += subcvCubWeights(ipt)*subCVJacobDet(inode,ipt);
141 cubWeights(icell,inode) = vol;