MOAB: Mesh Oriented datABase  (version 5.4.1)
TetLagrangeShapeTest.cpp File Reference
#include "Mesquite.hpp"
#include "TetLagrangeShape.hpp"
#include "TopologyInfo.hpp"
#include "MsqError.hpp"
#include "IdealElements.hpp"
#include "JacobianCalculator.hpp"
#include <cmath>
#include "UnitUtil.hpp"
#include <vector>
#include <algorithm>
#include <iostream>
#include <sstream>
+ Include dependency graph for TetLagrangeShapeTest.cpp:

Go to the source code of this file.

Classes

class  TetLagrangeShapeTest

Defines

#define ASSERT_VALUES_EQUAL(v1, v2, location, bits)   ASSERT_MESSAGE( value_message( ( location ), ( bits ), ( v1 ), ( v2 ) ), ( fabs( ( v1 ) - ( v2 ) ) < epsilon ) )

Typedefs

typedef double(* N_t )(double, double, double)

Functions

static CppUnit::Message value_message (unsigned location, NodeSet bits, double v1, double v2)
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION (TetLagrangeShapeTest,"TetLagrangeShapeTest")
 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION (TetLagrangeShapeTest,"Unit")
static double N0 (double r, double s, double t)
static double N1 (double r, double, double)
static double N2 (double, double s, double)
static double N3 (double, double, double t)
static double N4 (double r, double s, double t)
static double N5 (double r, double s, double)
static double N6 (double r, double s, double t)
static double N7 (double r, double s, double t)
static double N8 (double r, double, double t)
static double N9 (double, double s, double t)
static double dN0dr (double r, double s, double t)
static double dN0ds (double r, double s, double t)
static double dN0dt (double r, double s, double t)
static double dN1dr (double r, double, double)
static double dN1ds (double, double, double)
static double dN1dt (double, double, double)
static double dN2dr (double, double, double)
static double dN2ds (double, double s, double)
static double dN2dt (double, double, double)
static double dN3dr (double, double, double)
static double dN3ds (double, double, double)
static double dN3dt (double, double, double t)
static double dN4dr (double r, double s, double t)
static double dN4ds (double r, double, double)
static double dN4dt (double r, double, double)
static double dN5dr (double, double s, double)
static double dN5ds (double r, double, double)
static double dN5dt (double, double, double)
static double dN6dr (double, double s, double)
static double dN6ds (double r, double s, double t)
static double dN6dt (double, double s, double)
static double dN7dr (double, double, double t)
static double dN7ds (double, double, double t)
static double dN7dt (double r, double s, double t)
static double dN8dr (double, double, double t)
static double dN8ds (double, double, double)
static double dN8dt (double r, double, double)
static double dN9dr (double, double, double)
static double dN9ds (double, double, double t)
static double dN9dt (double, double s, double)
static void get_coeff (NodeSet nodeset, const double *rst, double *coeffs)
static void get_derivs (NodeSet nodeset, const double *rst, MsqVector< 3 > *derivs)
static void check_valid_indices (const size_t *vertices, size_t num_vtx)
static void check_no_zeros (const MsqVector< 3 > *derivs, size_t num_vtx)
static void compare_coefficients (const double *coeffs, const size_t *indices, const double *expected_coeffs, size_t num_coeff, unsigned loc, NodeSet bits)
static void compare_derivatives (const size_t *vertices, size_t num_vtx, const MsqVector< 3 > *derivs, const MsqVector< 3 > *expected_derivs, unsigned loc, NodeSet bits)
static NodeSet nodeset_from_bits (unsigned bits)

Variables

const double epsilon = 1e-6
static const N_t N [] = { &N0, &N1, &N2, &N3, &N4, &N5, &N6, &N7, &N8, &N9 }
static const N_t dNdr [] = { &dN0dr, &dN1dr, &dN2dr, &dN3dr, &dN4dr, &dN5dr, &dN6dr, &dN7dr, &dN8dr, &dN9dr }
static const N_t dNds [] = { &dN0ds, &dN1ds, &dN2ds, &dN3ds, &dN4ds, &dN5ds, &dN6ds, &dN7ds, &dN8ds, &dN9ds }
static const N_t dNdt [] = { &dN0dt, &dN1dt, &dN2dt, &dN3dt, &dN4dt, &dN5dt, &dN6dt, &dN7dt, &dN8dt, &dN9dt }
static const double rst_corner [][3] = { { 0, 0, 0 }, { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } }
static const double rst_edge [][3]
static const double rst_face [][3]
static const double rst_mid [3] = { 0.25, 0.25, 0.25 }
static unsigned edges [][2] = { { 0, 1 }, { 1, 2 }, { 2, 0 }, { 0, 3 }, { 1, 3 }, { 2, 3 } }

Detailed Description

Author:
Jason Kraftcheck

Definition in file TetLagrangeShapeTest.cpp.


Define Documentation

#define ASSERT_VALUES_EQUAL (   v1,
  v2,
  location,
  bits 
)    ASSERT_MESSAGE( value_message( ( location ), ( bits ), ( v1 ), ( v2 ) ), ( fabs( ( v1 ) - ( v2 ) ) < epsilon ) )

Definition at line 51 of file TetLagrangeShapeTest.cpp.

Referenced by compare_coefficients(), and compare_derivatives().


Typedef Documentation

typedef double( * N_t)(double, double, double)

Definition at line 328 of file TetLagrangeShapeTest.cpp.


Function Documentation

static void check_no_zeros ( const MsqVector< 3 > *  derivs,
size_t  num_vtx 
) [static]

Definition at line 397 of file TetLagrangeShapeTest.cpp.

References CPPUNIT_ASSERT.

Referenced by compare_derivatives().

{
    for( unsigned i = 0; i < num_vtx; ++i )
    {
        double dr = derivs[i][0];
        double ds = derivs[i][1];
        double dt = derivs[i][2];
        CPPUNIT_ASSERT( ( fabs( dr ) > 1e-6 ) || ( fabs( ds ) > 1e-6 ) || ( fabs( dt ) > 1e-6 ) );
    }
}
static void check_valid_indices ( const size_t *  vertices,
size_t  num_vtx 
) [static]

Definition at line 383 of file TetLagrangeShapeTest.cpp.

References CPPUNIT_ASSERT.

Referenced by compare_derivatives().

{
    CPPUNIT_ASSERT( num_vtx < 11 );
    CPPUNIT_ASSERT( num_vtx > 3 );
    size_t vtxcopy[10];
    std::copy( vertices, vertices + num_vtx, vtxcopy );
    std::sort( vtxcopy, vtxcopy + num_vtx );
    for( unsigned i = 1; i < num_vtx; ++i )
    {
        CPPUNIT_ASSERT( vtxcopy[i] != vtxcopy[i - 1] );
        CPPUNIT_ASSERT( vtxcopy[i] < 10 );
    }
}
static void compare_coefficients ( const double *  coeffs,
const size_t *  indices,
const double *  expected_coeffs,
size_t  num_coeff,
unsigned  loc,
NodeSet  bits 
) [static]

Definition at line 408 of file TetLagrangeShapeTest.cpp.

References ASSERT_VALUES_EQUAL, CPPUNIT_ASSERT, and MBMesquite::NodeSet::mid_edge_node().

Referenced by TetLagrangeShapeTest::test_corner_coeff(), TetLagrangeShapeTest::test_edge_coeff(), TetLagrangeShapeTest::test_face_coeff(), and TetLagrangeShapeTest::test_mid_coeff().

{
    // find the location in the returned list for each node
    size_t revidx[10];
    double test_vals[10];
    for( size_t i = 0; i < 10; ++i )
    {
        revidx[i]    = std::find( indices, indices + num_coeff, i ) - indices;
        test_vals[i] = ( revidx[i] == num_coeff ) ? 0.0 : coeffs[revidx[i]];
    }

    // Check that index list doesn't contain any nodes not actually
    // present in the element.
    CPPUNIT_ASSERT( bits.mid_edge_node( 0 ) || ( revidx[4] == num_coeff ) );
    CPPUNIT_ASSERT( bits.mid_edge_node( 1 ) || ( revidx[5] == num_coeff ) );
    CPPUNIT_ASSERT( bits.mid_edge_node( 2 ) || ( revidx[6] == num_coeff ) );
    CPPUNIT_ASSERT( bits.mid_edge_node( 3 ) || ( revidx[7] == num_coeff ) );
    CPPUNIT_ASSERT( bits.mid_edge_node( 4 ) || ( revidx[8] == num_coeff ) );
    CPPUNIT_ASSERT( bits.mid_edge_node( 5 ) || ( revidx[9] == num_coeff ) );

    // compare expected and actual coefficient values
    ASSERT_VALUES_EQUAL( expected_coeffs[0], test_vals[0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[1], test_vals[1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[2], test_vals[2], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[3], test_vals[3], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[4], test_vals[4], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[5], test_vals[5], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[6], test_vals[6], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[7], test_vals[7], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[8], test_vals[8], loc, bits );
    ASSERT_VALUES_EQUAL( expected_coeffs[9], test_vals[9], loc, bits );
}
static void compare_derivatives ( const size_t *  vertices,
size_t  num_vtx,
const MsqVector< 3 > *  derivs,
const MsqVector< 3 > *  expected_derivs,
unsigned  loc,
NodeSet  bits 
) [static]

Definition at line 446 of file TetLagrangeShapeTest.cpp.

References ASSERT_VALUES_EQUAL, check_no_zeros(), and check_valid_indices().

Referenced by TetLagrangeShapeTest::test_corner_derivs(), TetLagrangeShapeTest::test_edge_derivs(), TetLagrangeShapeTest::test_face_derivs(), and TetLagrangeShapeTest::test_mid_derivs().

{
    check_valid_indices( vertices, num_vtx );
    check_no_zeros( derivs, num_vtx );
    MsqVector< 3 > expanded_derivs[30];
    memset( expanded_derivs, 0, sizeof( expanded_derivs ) );
    for( unsigned i = 0; i < num_vtx; ++i )
        expanded_derivs[vertices[i]] = derivs[i];

    ASSERT_VALUES_EQUAL( expected_derivs[0][0], expanded_derivs[0][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[0][1], expanded_derivs[0][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[0][2], expanded_derivs[0][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[1][0], expanded_derivs[1][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[1][1], expanded_derivs[1][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[1][2], expanded_derivs[1][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[2][0], expanded_derivs[2][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[2][1], expanded_derivs[2][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[2][2], expanded_derivs[2][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[3][0], expanded_derivs[3][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[3][1], expanded_derivs[3][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[3][2], expanded_derivs[3][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[4][0], expanded_derivs[4][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[4][1], expanded_derivs[4][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[4][2], expanded_derivs[4][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[5][0], expanded_derivs[5][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[5][1], expanded_derivs[5][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[5][2], expanded_derivs[5][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[6][0], expanded_derivs[6][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[6][1], expanded_derivs[6][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[6][2], expanded_derivs[6][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[7][0], expanded_derivs[7][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[7][1], expanded_derivs[7][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[7][2], expanded_derivs[7][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[8][0], expanded_derivs[8][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[8][1], expanded_derivs[8][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[8][2], expanded_derivs[8][2], loc, bits );

    ASSERT_VALUES_EQUAL( expected_derivs[9][0], expanded_derivs[9][0], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[9][1], expanded_derivs[9][1], loc, bits );
    ASSERT_VALUES_EQUAL( expected_derivs[9][2], expanded_derivs[9][2], loc, bits );
}
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION ( TetLagrangeShapeTest  ,
"TetLagrangeShapeTest"   
)
static double dN0dr ( double  r,
double  s,
double  t 
) [static]

Definition at line 192 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 1 - 4 * u;
}
static double dN0ds ( double  r,
double  s,
double  t 
) [static]

Definition at line 197 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 1 - 4 * u;
}
static double dN0dt ( double  r,
double  s,
double  t 
) [static]

Definition at line 202 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 1 - 4 * u;
}
static double dN1dr ( double  r,
double  ,
double   
) [static]

Definition at line 208 of file TetLagrangeShapeTest.cpp.

{
    return 4 * r - 1;
}
static double dN1ds ( double  ,
double  ,
double   
) [static]

Definition at line 212 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN1dt ( double  ,
double  ,
double   
) [static]

Definition at line 216 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN2dr ( double  ,
double  ,
double   
) [static]

Definition at line 221 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN2ds ( double  ,
double  s,
double   
) [static]

Definition at line 225 of file TetLagrangeShapeTest.cpp.

{
    return 4 * s - 1;
}
static double dN2dt ( double  ,
double  ,
double   
) [static]

Definition at line 229 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN3dr ( double  ,
double  ,
double   
) [static]

Definition at line 234 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN3ds ( double  ,
double  ,
double   
) [static]

Definition at line 238 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN3dt ( double  ,
double  ,
double  t 
) [static]

Definition at line 242 of file TetLagrangeShapeTest.cpp.

{
    return 4 * t - 1;
}
static double dN4dr ( double  r,
double  s,
double  t 
) [static]

Definition at line 247 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 4 * ( u - r );
}
static double dN4ds ( double  r,
double  ,
double   
) [static]

Definition at line 252 of file TetLagrangeShapeTest.cpp.

{
    return -4 * r;
}
static double dN4dt ( double  r,
double  ,
double   
) [static]

Definition at line 256 of file TetLagrangeShapeTest.cpp.

{
    return -4 * r;
}
static double dN5dr ( double  ,
double  s,
double   
) [static]

Definition at line 261 of file TetLagrangeShapeTest.cpp.

{
    return 4 * s;
}
static double dN5ds ( double  r,
double  ,
double   
) [static]

Definition at line 265 of file TetLagrangeShapeTest.cpp.

{
    return 4 * r;
}
static double dN5dt ( double  ,
double  ,
double   
) [static]

Definition at line 269 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN6dr ( double  ,
double  s,
double   
) [static]

Definition at line 274 of file TetLagrangeShapeTest.cpp.

{
    return -4 * s;
}
static double dN6ds ( double  r,
double  s,
double  t 
) [static]

Definition at line 278 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 4 * ( u - s );
}
static double dN6dt ( double  ,
double  s,
double   
) [static]

Definition at line 283 of file TetLagrangeShapeTest.cpp.

{
    return -4 * s;
}
static double dN7dr ( double  ,
double  ,
double  t 
) [static]

Definition at line 288 of file TetLagrangeShapeTest.cpp.

References t.

{
    return -4 * t;
}
static double dN7ds ( double  ,
double  ,
double  t 
) [static]

Definition at line 292 of file TetLagrangeShapeTest.cpp.

References t.

{
    return -4 * t;
}
static double dN7dt ( double  r,
double  s,
double  t 
) [static]

Definition at line 296 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 4 * ( u - t );
}
static double dN8dr ( double  ,
double  ,
double  t 
) [static]

Definition at line 302 of file TetLagrangeShapeTest.cpp.

References t.

{
    return 4 * t;
}
static double dN8ds ( double  ,
double  ,
double   
) [static]

Definition at line 306 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN8dt ( double  r,
double  ,
double   
) [static]

Definition at line 310 of file TetLagrangeShapeTest.cpp.

{
    return 4 * r;
}
static double dN9dr ( double  ,
double  ,
double   
) [static]

Definition at line 315 of file TetLagrangeShapeTest.cpp.

{
    return 0;
}
static double dN9ds ( double  ,
double  ,
double  t 
) [static]

Definition at line 319 of file TetLagrangeShapeTest.cpp.

References t.

{
    return 4 * t;
}
static double dN9dt ( double  ,
double  s,
double   
) [static]

Definition at line 323 of file TetLagrangeShapeTest.cpp.

{
    return 4 * s;
}
static void get_coeff ( NodeSet  nodeset,
const double *  rst,
double *  coeffs 
) [static]

Definition at line 345 of file TetLagrangeShapeTest.cpp.

References MBMesquite::edges, MBMesquite::NodeSet::mid_edge_node(), and N.

Referenced by TetLagrangeShapeTest::test_corner_coeff(), TetLagrangeShapeTest::test_edge_coeff(), TetLagrangeShapeTest::test_face_coeff(), and TetLagrangeShapeTest::test_mid_coeff().

{
    for( int i = 0; i < 10; ++i )
        coeffs[i] = ( *N[i] )( rst[0], rst[1], rst[2] );
    for( int i = 0; i < 6; ++i )
        if( !nodeset.mid_edge_node( i ) )
        {
            coeffs[edges[i][0]] += 0.5 * coeffs[i + 4];
            coeffs[edges[i][1]] += 0.5 * coeffs[i + 4];
            coeffs[i + 4] = 0;
        }
}
static void get_derivs ( NodeSet  nodeset,
const double *  rst,
MsqVector< 3 > *  derivs 
) [static]

Definition at line 358 of file TetLagrangeShapeTest.cpp.

References dNdr, dNds, dNdt, MBMesquite::edges, and MBMesquite::NodeSet::mid_edge_node().

Referenced by TetLagrangeShapeTest::test_corner_derivs(), TetLagrangeShapeTest::test_edge_derivs(), TetLagrangeShapeTest::test_face_derivs(), and TetLagrangeShapeTest::test_mid_derivs().

{
    for( int i = 0; i < 10; ++i )
    {
        derivs[i][0] = ( *dNdr[i] )( rst[0], rst[1], rst[2] );
        derivs[i][1] = ( *dNds[i] )( rst[0], rst[1], rst[2] );
        derivs[i][2] = ( *dNdt[i] )( rst[0], rst[1], rst[2] );
    }
    for( int i = 0; i < 6; ++i )
        if( !nodeset.mid_edge_node( i ) )
        {
            int j = edges[i][0];
            derivs[j][0] += 0.5 * derivs[i + 4][0];
            derivs[j][1] += 0.5 * derivs[i + 4][1];
            derivs[j][2] += 0.5 * derivs[i + 4][2];
            j = edges[i][1];
            derivs[j][0] += 0.5 * derivs[i + 4][0];
            derivs[j][1] += 0.5 * derivs[i + 4][1];
            derivs[j][2] += 0.5 * derivs[i + 4][2];
            derivs[i + 4][0] = 0.0;
            derivs[i + 4][1] = 0.0;
            derivs[i + 4][2] = 0.0;
        }
}
static double N0 ( double  r,
double  s,
double  t 
) [static]

Definition at line 147 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return u * ( 2 * u - 1 );
}
static double N1 ( double  r,
double  ,
double   
) [static]

Definition at line 152 of file TetLagrangeShapeTest.cpp.

{
    return r * ( 2 * r - 1 );
}
static double N2 ( double  ,
double  s,
double   
) [static]

Definition at line 156 of file TetLagrangeShapeTest.cpp.

{
    return s * ( 2 * s - 1 );
}
static double N3 ( double  ,
double  ,
double  t 
) [static]

Definition at line 160 of file TetLagrangeShapeTest.cpp.

{
    return t * ( 2 * t - 1 );
}
static double N4 ( double  r,
double  s,
double  t 
) [static]

Definition at line 164 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 4 * r * u;
}
static double N5 ( double  r,
double  s,
double   
) [static]

Definition at line 169 of file TetLagrangeShapeTest.cpp.

{
    return 4 * r * s;
}
static double N6 ( double  r,
double  s,
double  t 
) [static]

Definition at line 173 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 4 * s * u;
}
static double N7 ( double  r,
double  s,
double  t 
) [static]

Definition at line 178 of file TetLagrangeShapeTest.cpp.

References t, and u.

{
    double u = 1 - r - s - t;
    return 4 * u * t;
}
static double N8 ( double  r,
double  ,
double  t 
) [static]

Definition at line 183 of file TetLagrangeShapeTest.cpp.

References t.

{
    return 4 * r * t;
}
static double N9 ( double  ,
double  s,
double  t 
) [static]

Definition at line 187 of file TetLagrangeShapeTest.cpp.

References t.

{
    return 4 * s * t;
}
static CppUnit::Message value_message ( unsigned  location,
NodeSet  bits,
double  v1,
double  v2 
) [inline, static]

Definition at line 54 of file TetLagrangeShapeTest.cpp.

{
    CppUnit::Message m( "equality assertion failed" );

    std::ostringstream buffer1;
    buffer1 << "Expected : " << v1;
    m.addDetail( buffer1.str() );

    std::ostringstream buffer2;
    buffer2 << "Actual   : " << v2;
    m.addDetail( buffer2.str() );

    std::ostringstream buffer3;
    buffer3 << "Location : ";
    if( location < 4 )
        buffer3 << "Corner " << location;
    else if( location < 10 )
        buffer3 << "Edge " << location - 4;
    else if( location < 14 )
        buffer3 << "Face " << location - 10;
    else if( location == 14 )
        buffer3 << "Mid-element";
    else
        buffer3 << "INVALID!!";
    m.addDetail( buffer3.str() );

    std::ostringstream buffer4;
    buffer4 << "Node Bits: " << bits;
    m.addDetail( buffer4.str() );
    return m;
}

Variable Documentation

const N_t dNdr[] = { &dN0dr, &dN1dr, &dN2dr, &dN3dr, &dN4dr, &dN5dr, &dN6dr, &dN7dr, &dN8dr, &dN9dr } [static]

Definition at line 330 of file TetLagrangeShapeTest.cpp.

Referenced by get_derivs().

const N_t dNds[] = { &dN0ds, &dN1ds, &dN2ds, &dN3ds, &dN4ds, &dN5ds, &dN6ds, &dN7ds, &dN8ds, &dN9ds } [static]

Definition at line 331 of file TetLagrangeShapeTest.cpp.

Referenced by get_derivs().

const N_t dNdt[] = { &dN0dt, &dN1dt, &dN2dt, &dN3dt, &dN4dt, &dN5dt, &dN6dt, &dN7dt, &dN8dt, &dN9dt } [static]

Definition at line 332 of file TetLagrangeShapeTest.cpp.

Referenced by get_derivs().

unsigned edges[][2] = { { 0, 1 }, { 1, 2 }, { 2, 0 }, { 0, 3 }, { 1, 3 }, { 2, 3 } } [static]
Examples:
ExtrudePoly.cpp, and HelloMOAB.cpp.

Definition at line 343 of file TetLagrangeShapeTest.cpp.

Referenced by adj_perf(), ahf_test(), moab::area_coordinates(), TopologyInfoTest::bad_type(), moab::GeomUtil::box_hex_overlap(), moab::MeshGeneration::BrickInstance(), moab::FBEngine::chain_able_edge(), moab::GeomTopoTool::check_model(), moab::SmoothFace::compute_internal_control_points_on_facets(), moab::DualTool::construct_dual(), moab::DualTool::construct_dual_cells(), moab::TempestRemapper::convert_tempest_mesh_private(), moab::NestedRefine::count_subentities(), moab::ReadCGM::create_curve_facets(), create_fine_mesh(), moab::NCHelperScrip::create_mesh(), moab::ScdNCHelper::create_mesh(), create_mesh(), create_shell_test(), create_simple_mesh(), create_single_entity(), entity_sets_subtest(), moab::DualTool::fs_get_quads(), TopologyInfoTest::hex(), iMOAB_ReadHeaderInfo(), moab::ReadTetGen::load_file(), main(), mb_skin_adjacent_surf_patches(), mb_skin_curve_test_common(), prism_issue(), TopologyInfoTest::pyramid(), TopologyInfoTest::quad(), moab::ScdNCHelper::read_scd_variables_to_nonset_allocate(), moab::NCHelperGCRM::read_ucd_variables_to_nonset_allocate(), moab::NCHelperMPAS::read_ucd_variables_to_nonset_allocate(), moab::BSPTreePoly::set(), MBMesquite::NodeSet::set_all_mid_edge_nodes(), signed_corner_areas(), skin_tris(), test_adjacencies(), test_coords_connect_iterate(), test_gather_sets_common(), QualityMetricTester::test_get_edge_evaluations(), QualityMetricTester::test_get_edge_indices(), TopologyInfoTest::test_poly(), test_read_adjacencies(), test_read_all(), test_read_no_edges(), VtkTest::test_read_quadratic(), test_read_sides(), test_sub_entity_indices_hex(), test_sub_entity_indices_pri(), test_sub_entity_indices_pyr(), test_sub_entity_indices_quad(), test_sub_entity_indices_tet(), test_sub_entity_indices_tri(), test_unitcircle(), test_wedges(), TopologyInfoTest::tet(), TopologyInfoTest::tri(), v_hex_edge_ratio(), v_hex_quality(), v_quad_aspect_ratio(), v_quad_edge_ratio(), v_quad_max_aspect_frobenius(), v_quad_maximum_angle(), v_quad_med_aspect_frobenius(), v_quad_minimum_angle(), v_quad_quality(), v_quad_radius_ratio(), v_quad_scaled_jacobian(), v_quad_shape(), v_quad_stretch(), v_quad_warpage(), v_tet_quality(), TopologyInfoTest::wedge(), and MBMesquite::MeshWriter::write_gnuplot().

const double epsilon = 1e-6

Definition at line 50 of file TetLagrangeShapeTest.cpp.

const N_t N[] = { &N0, &N1, &N2, &N3, &N4, &N5, &N6, &N7, &N8, &N9 } [static]

Definition at line 329 of file TetLagrangeShapeTest.cpp.

Referenced by get_coeff(), and get_coeffs().

const double rst_corner[][3] = { { 0, 0, 0 }, { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } } [static]
const double rst_edge[][3] [static]
Initial value:
 { { 0.5, 0.0, 0.0 }, { 0.5, 0.5, 0.0 }, { 0.0, 0.5, 0.0 },
                                      { 0.0, 0.0, 0.5 }, { 0.5, 0.0, 0.5 }, { 0.0, 0.5, 0.5 } }

Definition at line 335 of file TetLagrangeShapeTest.cpp.

Referenced by TetLagrangeShapeTest::test_edge_coeff(), and TetLagrangeShapeTest::test_edge_derivs().

const double rst_face[][3] [static]
Initial value:
 { { 1. / 3, 0.00, 1. / 3 },
                                      { 1. / 3, 1. / 3, 1. / 3 },
                                      { 0.00, 1. / 3, 1. / 3 },
                                      { 1. / 3, 1. / 3, 0.00 } }

Definition at line 337 of file TetLagrangeShapeTest.cpp.

Referenced by TetLagrangeShapeTest::test_face_coeff(), and TetLagrangeShapeTest::test_face_derivs().

const double rst_mid[3] = { 0.25, 0.25, 0.25 } [static]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines