51 #include "Teuchos_oblackholestream.hpp"
52 #include "Teuchos_RCP.hpp"
53 #include "Teuchos_GlobalMPISession.hpp"
57 using namespace Intrepid;
63 int main(
int argc,
char *argv[]) {
65 Teuchos::GlobalMPISession mpiSession(&argc, &argv);
68 int iprint = argc - 1;
70 Teuchos::RCP<std::ostream> outStream;
71 Teuchos::oblackholestream bhs;
74 outStream = Teuchos::rcp(&std::cout,
false);
76 outStream = Teuchos::rcp(&bhs,
false);
79 Teuchos::oblackholestream oldFormatState;
80 oldFormatState.copyfmt(std::cout);
83 <<
"===============================================================================\n" \
85 <<
"| Unit Test OrthogonalBases |\n" \
87 <<
"| 1) Tests orthogonality of tetrahedral orthogonal basis |\n" \
89 <<
"| Questions? Contact Pavel Bochev (pbboche@sandia.gov) or |\n" \
90 <<
"| Denis Ridzal (dridzal@sandia.gov) or |\n" \
91 <<
"| Robert Kirby (robert.c.kirby@ttu.edu) |\n" \
93 <<
"| Intrepid's website: http://trilinos.sandia.gov/packages/intrepid |\n" \
94 <<
"| Trilinos website: http://trilinos.sandia.gov |\n" \
96 <<
"===============================================================================\n";
110 const int polydim = (deg+1)*(deg+2)*(deg+3)/6;
112 OrthogonalBases::tabulateTetrahedron<double,FieldContainer<double>,
FieldContainer<double> >( cubPts , deg , basisAtCubPts );
115 for (
int i=0;i<polydim;i++) {
116 for (
int j=0;j<polydim;j++) {
119 cur += cubWts(k) * basisAtCubPts( i , k ) * basisAtCubPts( j , k );
121 if (i != j && fabs( cur ) > 20.0 * INTREPID_TOL) {
122 std::cout << INTREPID_TOL << std::endl;
123 std::cout << i <<
" " << j <<
" " << cur << std::endl;
126 else if (i == j && fabs( cur ) < 20.0 * INTREPID_TOL ) {
127 std::cout << i <<
" " << j <<
" " << cur << std::endl;
136 std::cout <<
"End Result: TEST FAILED\n";
138 std::cout <<
"End Result: TEST PASSED\n";
141 std::cout.copyfmt(oldFormatState);
Header file for orthogonal bases on various cell types.
virtual void getCubature(ArrayPoint &cubPoints, ArrayWeight &cubWeights) const
Returns cubature points and weights (return arrays must be pre-sized/pre-allocated).
Defines direct integration rules on a tetrahedron.
Header file for utility class to provide multidimensional containers.
virtual int getNumPoints() const
Returns the number of cubature points.
Header file for the Intrepid::CubatureDirectTetDefault class.