Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Protected Member Functions | Private Member Functions
test::TestJacobian2D Class Reference

Tests the Jacobian for anisotropic and isotropic refinements of quadrilaterals in two dimensions. More...

#include <testJacobian.hh>

Inheritance diagram for test::TestJacobian2D:
Inheritance graph
[legend]
Collaboration diagram for test::TestJacobian2D:
Collaboration graph
[legend]

List of all members.

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.

Detailed Description

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.

See also:
concepts::VertexQuad2d
Author:
Philipp Frauenfelder, 2004

Definition at line 27 of file testJacobian.hh.


Constructor & Destructor Documentation

virtual test::TestJacobian2D::~TestJacobian2D ( ) [virtual]

Member Function Documentation

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.

Parameters:
qTest children of this quad
guessGuessed value of the determinant of the Jacobian of the children of q
divguess needs to be divided by div for the next level
guess00Guessed value of the 0,0 entry of the Jacobian
div00Divisor for guess00
guess01Guessed value of the 0,1 entry of the Jacobian
div01Divisor for guess01
guess10Guessed value of the 1,0 entry of the Jacobian
div10Divisor for guess10
guess11Guessed value of the 1,1 entry of the Jacobian
div11Divisor for guess11
recRecusion depth
refRefinement strategy
long test::TestCase::report ( ) const [inherited]

Prints a report on the number of passed and failed tests to the output stream.

Returns:
Number of failed tests.
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 $\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 1 & 0 \\ 0 & 1/2 \end{pmatrix}$

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 $\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 1/2 & 0 \\ 0 & 1/2 \end{pmatrix}$

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 $\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 1/2 & 0 \\ 0 & 1 \end{pmatrix}$

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 $\begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 0 & -1/2 \\ 1 & 0 \end{pmatrix}$

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 $\begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 0 & -1/2 \\ 1/2 & 0 \end{pmatrix}$

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 $\begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 0 & -1 \\ 1/2 & 0 \end{pmatrix}$

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 $\begin{pmatrix} -1 & 0 \\ 0 & -1 \end{pmatrix}$ and one of the children has $\begin{pmatrix} -1 & 0 \\ 0 & -1/2 \end{pmatrix}$

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 $\begin{pmatrix} -1 & 0 \\ 0 & -1 \end{pmatrix}$ and one of the children has $\begin{pmatrix} -1/2 & 0 \\ 0 & -1/2 \end{pmatrix}$

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 $\begin{pmatrix} -1 & 0 \\ 0 & -1 \end{pmatrix}$ and one of the children has $\begin{pmatrix} -1/2 & 0 \\ 0 & -1 \end{pmatrix}$

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 $\begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 0 & 1/2 \\ -1 & 0 \end{pmatrix}$

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 $\begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 0 & 1/2 \\ -1/2 & 0 \end{pmatrix}$

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 $\begin{pmatrix} 0 & 1 \\ -1 & 0 \end{pmatrix}$ and one of the children has $\begin{pmatrix} 0 & 1 \\ -1/2 & 0 \end{pmatrix}$


The documentation for this class was generated from the following file:

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)