Tests the Jacobian for anisotropic and isotropic refinements of quadrilaterals in two dimensions. More...
#include <testJacobian.hh>


Public Member Functions | |
| void | _succeed () |
| Explicitly succeds a test. | |
| long | getNumFailed () const |
| Returns number of failed tests. | |
| long | getNumPassed () const |
| Returns number of passed tests. | |
| const ostream * | getStream () const |
| Returns output stream. | |
| long | report () const |
| Prints a report on the number of passed and failed tests to the output stream. | |
| virtual void | reset () |
| Resets the counters for the failed and passed tests. | |
| virtual void | run () |
| Runs the tests. Must be overwritten by the specialization. | |
| void | setStream (ostream *osptr) |
| Sets the output stream. | |
| virtual | ~TestJacobian2D () |
Test routines | |
| void | testRot0Isotropic () |
| Tests Jacobians for isotropic subdivisions. | |
| void | testRot0Horizontal () |
| Tests Jacobians for anisotropic, horizontal subdivisions. | |
| void | testRot0Vertical () |
| Tests Jacobians for anisotropic, vertical subdivisions. | |
| void | testRot1Isotropic () |
| Tests Jacobians for isotropic subdivisions. | |
| void | testRot1Horizontal () |
| Tests Jacobians for anisotropic, horizontal subdivisions. | |
| void | testRot1Vertical () |
| Tests Jacobians for anisotropic, vertical subdivisions. | |
| void | testRot2Isotropic () |
| Tests Jacobians for isotropic subdivisions. | |
| void | testRot2Horizontal () |
| Tests Jacobians for anisotropic, horizontal subdivisions. | |
| void | testRot2Vertical () |
| Tests Jacobians for anisotropic, vertical subdivisions. | |
| void | testRot3Isotropic () |
| Tests Jacobians for isotropic subdivisions. | |
| void | testRot3Horizontal () |
| Tests Jacobians for anisotropic, horizontal subdivisions. | |
| void | testRot3Vertical () |
| Tests Jacobians for anisotropic, vertical subdivisions. | |
Protected Member Functions | |
| void | do_fail (const string &lbl, const char *fname, long lineno) |
| Internal function to report a failed test (besides increasing the failed counter) | |
| bool | do_numtest (double num, double orig, const string &lbl, const string &lbl2, const char *fname, long lineno, const double tol=1e-10) |
| Internal function to do a numerical test. | |
| bool | do_numtest (std::complex< double > num, std::complex< double > orig, const string &lbl, const string &lbl2, const char *fname, long lineno, const double tol=1e-10) |
| bool | do_test (bool cond, const string &lbl, const char *fname, long lineno) |
| Internal function to do a test. | |
Private Member Functions | |
| void | recTest_ (concepts::Quad2d *q, Real guess, Real div, Real guess00, Real div00, Real guess01, Real div01, Real guess10, Real div10, Real guess11, Real div11, uint rec, const concepts::Quad2dSubdivision *ref=0) |
Recursively test the Jacobian of the children of q to be equal to guess. | |
Tests the Jacobian for anisotropic and isotropic refinements of quadrilaterals in two dimensions.
The tested element map is VertexQuad2d, the tests are preformed in four different orientations.
Definition at line 27 of file testJacobian.hh.
| virtual test::TestJacobian2D::~TestJacobian2D | ( | ) | [virtual] |
| void test::TestCase::_succeed | ( | ) | [inline, inherited] |
Explicitly succeds a test.
Definition at line 109 of file testcase.hh.
| void test::TestCase::do_fail | ( | const string & | lbl, |
| const char * | fname, | ||
| long | lineno | ||
| ) | [protected, inherited] |
Internal function to report a failed test (besides increasing the failed counter)
| bool test::TestCase::do_numtest | ( | double | num, |
| double | orig, | ||
| const string & | lbl, | ||
| const string & | lbl2, | ||
| const char * | fname, | ||
| long | lineno, | ||
| const double | tol = 1e-10 |
||
| ) | [protected, inherited] |
Internal function to do a numerical test.
| bool test::TestCase::do_numtest | ( | std::complex< double > | num, |
| std::complex< double > | orig, | ||
| const string & | lbl, | ||
| const string & | lbl2, | ||
| const char * | fname, | ||
| long | lineno, | ||
| const double | tol = 1e-10 |
||
| ) | [protected, inherited] |
| bool test::TestCase::do_test | ( | bool | cond, |
| const string & | lbl, | ||
| const char * | fname, | ||
| long | lineno | ||
| ) | [protected, inherited] |
Internal function to do a test.
| long test::TestCase::getNumFailed | ( | ) | const [inline, inherited] |
Returns number of failed tests.
Definition at line 102 of file testcase.hh.
| long test::TestCase::getNumPassed | ( | ) | const [inline, inherited] |
Returns number of passed tests.
Definition at line 100 of file testcase.hh.
| const ostream* test::TestCase::getStream | ( | ) | const [inline, inherited] |
Returns output stream.
Definition at line 104 of file testcase.hh.
| void test::TestJacobian2D::recTest_ | ( | concepts::Quad2d * | q, |
| Real | guess, | ||
| Real | div, | ||
| Real | guess00, | ||
| Real | div00, | ||
| Real | guess01, | ||
| Real | div01, | ||
| Real | guess10, | ||
| Real | div10, | ||
| Real | guess11, | ||
| Real | div11, | ||
| uint | rec, | ||
| const concepts::Quad2dSubdivision * | ref = 0 |
||
| ) | [private] |
Recursively test the Jacobian of the children of q to be equal to guess.
| q | Test children of this quad |
| guess | Guessed value of the determinant of the Jacobian of the children of q |
| div | guess needs to be divided by div for the next level |
| guess00 | Guessed value of the 0,0 entry of the Jacobian |
| div00 | Divisor for guess00 |
| guess01 | Guessed value of the 0,1 entry of the Jacobian |
| div01 | Divisor for guess01 |
| guess10 | Guessed value of the 1,0 entry of the Jacobian |
| div10 | Divisor for guess10 |
| guess11 | Guessed value of the 1,1 entry of the Jacobian |
| div11 | Divisor for guess11 |
| rec | Recusion depth |
| ref | Refinement strategy |
| long test::TestCase::report | ( | ) | const [inherited] |
Prints a report on the number of passed and failed tests to the output stream.
| virtual void test::TestCase::reset | ( | ) | [inline, virtual, inherited] |
Resets the counters for the failed and passed tests.
Definition at line 116 of file testcase.hh.
| virtual void test::TestJacobian2D::run | ( | ) | [virtual] |
Runs the tests. Must be overwritten by the specialization.
Implements test::TestCase.
| void test::TestCase::setStream | ( | ostream * | osptr | ) | [inline, inherited] |
Sets the output stream.
Definition at line 106 of file testcase.hh.
| void test::TestJacobian2D::testRot0Horizontal | ( | ) |
Tests Jacobians for anisotropic, horizontal subdivisions.
The initial cell is (0,1)2 with the vertices (0,0), (1,0), (1,1), (0,1) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot0Isotropic | ( | ) |
Tests Jacobians for isotropic subdivisions.
The initial cell is (0,1)2 with the vertices (0,0), (1,0), (1,1), (0,1) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot0Vertical | ( | ) |
Tests Jacobians for anisotropic, vertical subdivisions.
The initial cell is (0,1)2 with the vertices (0,0), (1,0), (1,1), (0,1) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot1Horizontal | ( | ) |
Tests Jacobians for anisotropic, horizontal subdivisions.
The initial cell is (0,1)2 with the vertices (1,0), (1,1), (0,1), (0,0) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot1Isotropic | ( | ) |
Tests Jacobians for isotropic subdivisions.
The initial cell is (0,1)2 with the vertices (1,0), (1,1), (0,1), (0,0) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot1Vertical | ( | ) |
Tests Jacobians for anisotropic, vertical subdivisions.
The initial cell is (0,1)2 with the vertices (1,0), (1,1), (0,1), (0,0) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot2Horizontal | ( | ) |
Tests Jacobians for anisotropic, horizontal subdivisions.
The initial cell is (0,1)2 with the vertices (1,1), (0,1), (0,0), (1,0) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot2Isotropic | ( | ) |
Tests Jacobians for isotropic subdivisions.
The initial cell is (0,1)2 with the vertices (1,1), (0,1), (0,0), (1,0) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot2Vertical | ( | ) |
Tests Jacobians for anisotropic, vertical subdivisions.
The initial cell is (0,1)2 with the vertices (1,1), (0,1), (0,0), (1,0) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot3Horizontal | ( | ) |
Tests Jacobians for anisotropic, horizontal subdivisions.
The initial cell is (0,1)2 with the vertices (0,1), (0,0), (1,0), (1,1) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot3Isotropic | ( | ) |
Tests Jacobians for isotropic subdivisions.
The initial cell is (0,1)2 with the vertices (0,1), (0,0), (1,0), (1,1) (in this order). The Jacobian in the initial cell is
and one of the children has
| void test::TestJacobian2D::testRot3Vertical | ( | ) |
Tests Jacobians for anisotropic, vertical subdivisions.
The initial cell is (0,1)2 with the vertices (0,1), (0,0), (1,0), (1,1) (in this order). The Jacobian in the initial cell is
and one of the children has