PRAgMaTIc  master
Public Member Functions | Static Public Member Functions | List of all members
ElementProperty< real_t > Class Template Reference

Calculates a number of element properties. More...

#include <ElementProperty.h>

Public Member Functions

 ElementProperty (const real_t *x0, const real_t *x1, const real_t *x2)
 
 ElementProperty (const real_t *x0, const real_t *x1, const real_t *x2, const real_t *x3)
 
real_t area (const real_t *x0, const real_t *x1, const real_t *x2) const
 
real_t volume (const real_t *x0, const real_t *x1, const real_t *x2, const real_t *x3) const
 
template<int dim>
double length (const real_t x0[], const real_t x1[], const double m[]) const
 
double lipnikov (const real_t *x0, const real_t *x1, const real_t *x2, const double *m0, const double *m1, const double *m2)
 
double lipnikov (const real_t *x0, const real_t *x1, const real_t *x2, double m00, double m01, double m11)
 
void lipnikov_grad (int moving, const double *x0, const double *x1, const double *x2, const double *m0, double *grad)
 
double lipnikov (const real_t *x0, const real_t *x1, const real_t *x2, const real_t *x3, const double *m0, const double *m1, const double *m2, const double *m3)
 
double lipnikov (const real_t *x0, const real_t *x1, const real_t *x2, const real_t *x3, const double *m0)
 
void lipnikov_grad (int moving, const double *x0, const double *x1, const double *x2, const double *x3, const double *m0, double *grad)
 
real_t sliver (const real_t *x0, const real_t *x1, const real_t *x2, const real_t *x3, const double *m0, const double *m1, const double *m2, const double *m3)
 
double condition (const real_t *x0, const real_t *x1, const real_t *x2, const double *m0, const double *m1, const double *m2)
 
double condition (const real_t *x0, const real_t *x1, const real_t *x2, double m00, double m01, double m11)
 
double condition (const real_t *x0, const real_t *x1, const real_t *x2, const real_t *x3, const double *m0, const double *m1, const double *m2, const double *m3)
 
int getOrientation ()
 

Static Public Member Functions

static double length2d (const real_t x0[], const real_t x1[], const double m[])
 
static double length3d (const real_t x0[], const real_t x1[], const double m[])
 

Detailed Description

template<typename real_t>
class ElementProperty< real_t >

Calculates a number of element properties.

The constructor for this class requires a reference element so that the orientation convention can be established. After the orientation has been established a negative area or volume indicated an inverted element. Properties calculated are:

Definition at line 65 of file ElementProperty.h.

Constructor & Destructor Documentation

template<typename real_t>
ElementProperty< real_t >::ElementProperty ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2 
)
inline

Constructor for 2D triangular elements.

Parameters
x0pointer to 2D position for first point in triangle.
x1pointer to 2D position for second point in triangle.
x2pointer to 2D position for third point in triangle.

Definition at line 72 of file ElementProperty.h.

template<typename real_t>
ElementProperty< real_t >::ElementProperty ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const real_t *  x3 
)
inline

Constructor for 3D tetrahedral elements.

Parameters
x0pointer to 3D position for first point in triangle.
x1pointer to 3D position for second point in triangle.
x2pointer to 3D position for third point in triangle.
x3pointer to 3D position for forth point in triangle.

Definition at line 86 of file ElementProperty.h.

Member Function Documentation

template<typename real_t>
real_t ElementProperty< real_t >::area ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2 
) const
inline

Calculate area of 2D triangle.

Parameters
x0pointer to 2D position for first point in triangle.
x1pointer to 2D position for second point in triangle.
x2pointer to 2D position for third point in triangle.

Definition at line 99 of file ElementProperty.h.

template<typename real_t>
double ElementProperty< real_t >::condition ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const double *  m0,
const double *  m1,
const double *  m2 
)
inline

Evaluates the 2D Condition number functional. The description for the functional is taken from: P. Knupp, Achieving finite element mesh quality via optimization, International Journal for Numerical Methods in Engineering, Vol. 48, No. 3, 2000, pp. 401 - 420.

Parameters
x0pointer to 2D position for first point in triangle.
x1pointer to 2D position for second point in triangle.
x2pointer to 2D position for third point in triangle.
m02x2 metric tensor for first point.
m12x2 metric tensor for second point.
m22x2 metric tensor for third point.

Definition at line 540 of file ElementProperty.h.

template<typename real_t>
double ElementProperty< real_t >::condition ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
double  m00,
double  m01,
double  m11 
)
inline

Evaluates the 2D Condition number functional. The description for the functional is taken from: P. Knupp, Achieving finite element mesh quality via optimization, International Journal for Numerical Methods in Engineering, Vol. 48, No. 3, 2000, pp. 401 - 420.

Parameters
x0pointer to 2D position for first point in triangle.
x1pointer to 2D position for second point in triangle.
x2pointer to 2D position for third point in triangle.
m00metric index (0,0)
m01metric index (0,1)
m11metric index (1,1)

Definition at line 564 of file ElementProperty.h.

template<typename real_t>
double ElementProperty< real_t >::condition ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const real_t *  x3,
const double *  m0,
const double *  m1,
const double *  m2,
const double *  m3 
)
inline

Evaluates the 3D condition number functional. The description for the functional is taken from: L. Freitag, P M Knupp, Tetrahedral mesh improvement via optimization of the element condition number, meshes, Int. J. for Num. Meth. in Eng., Vol. 53, No. 6, pp. 1377-1391 (2002).

Parameters
x0pointer to 3D position for first point in tetrahedral.
x1pointer to 3D position for second point in tetrahedral.
x2pointer to 3D position for third point in tetrahedral.
x3pointer to 3D position for third point in tetrahedral.
m03x3 metric tensor for first point.
m13x3 metric tensor for second point.
m23x3 metric tensor for third point.
m33x3 metric tensor for forth point.

Definition at line 610 of file ElementProperty.h.

template<typename real_t>
int ElementProperty< real_t >::getOrientation ( )
inline

Definition at line 686 of file ElementProperty.h.

template<typename real_t>
template<int dim>
double ElementProperty< real_t >::length ( const real_t  x0[],
const real_t  x1[],
const double  m[] 
) const
inline

Length of an edge as measured in metric space.

Parameters
x0coordinate at start of line segment.
x1coordinate at finish of line segment.
mmetric tensor for first point.

Definition at line 139 of file ElementProperty.h.

template<typename real_t>
static double ElementProperty< real_t >::length2d ( const real_t  x0[],
const real_t  x1[],
const double  m[] 
)
inlinestatic

Length of an edge as measured in metric space.

Parameters
x0coordinate at start of line segment.
x1coordinate at finish of line segment.
mmetric tensor for first point.

Definition at line 153 of file ElementProperty.h.

template<typename real_t>
static double ElementProperty< real_t >::length3d ( const real_t  x0[],
const real_t  x1[],
const double  m[] 
)
inlinestatic

Length of an edge as measured in metric space.

Parameters
x0coordinate at start of line segment.
x1coordinate at finish of line segment.
mmetric tensor for first point.

Definition at line 168 of file ElementProperty.h.

template<typename real_t>
double ElementProperty< real_t >::lipnikov ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const double *  m0,
const double *  m1,
const double *  m2 
)
inline

Evaluates the 2D Lipnikov functional. The description for the functional is taken from: Yu. V. Vasileskii and K. N. Lipnikov, An Adaptive Algorithm for Quasioptimal Mesh Generation, Computational Mathematics and Mathematical Physics, Vol. 39, No. 9, 1999, pp. 1468 - 1486.

Parameters
x0pointer to 2D position for first point in triangle.
x1pointer to 2D position for second point in triangle.
x2pointer to 2D position for third point in triangle.
m02x2 metric tensor for first point.
m12x2 metric tensor for second point.
m22x2 metric tensor for third point.

Definition at line 195 of file ElementProperty.h.

template<typename real_t>
double ElementProperty< real_t >::lipnikov ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
double  m00,
double  m01,
double  m11 
)
inline

Evaluates the 2D Lipnikov functional. The description for the functional is taken from: Yu. V. Vasileskii and K. N. Lipnikov, An Adaptive Algorithm for Quasioptimal Mesh Generation, Computational Mathematics and Mathematical Physics, Vol. 39, No. 9, 1999, pp. 1468 - 1486.

Parameters
x0pointer to 2D position for first point in triangle.
x1pointer to 2D position for second point in triangle.
x2pointer to 2D position for third point in triangle.
m00metric index (0,0)
m01metric index (0,1)
m11metric index (1,1)

Definition at line 218 of file ElementProperty.h.

template<typename real_t>
double ElementProperty< real_t >::lipnikov ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const real_t *  x3,
const double *  m0,
const double *  m1,
const double *  m2,
const double *  m3 
)
inline

Evaluates the 3D Lipnikov functional. The description for the functional is taken from: A. Agouzal, K Lipnikov, Yu. Vassilevski, Adaptive generation of quasi-optimal tetrahedral meshes, East-West J. Numer. Math., Vol. 7, No. 4, pp. 223-244 (1999).

Parameters
x0pointer to 3D position for first point in tetrahedral.
x1pointer to 3D position for second point in tetrahedral.
x2pointer to 3D position for third point in tetrahedral.
x3pointer to 3D position for third point in tetrahedral.
m03x3 metric tensor for first point.
m13x3 metric tensor for second point.
m23x3 metric tensor for third point.
m33x3 metric tensor for forth point.

Definition at line 297 of file ElementProperty.h.

template<typename real_t>
double ElementProperty< real_t >::lipnikov ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const real_t *  x3,
const double *  m0 
)
inline

Evaluates the 3D Lipnikov functional. The description for the functional is taken from: A. Agouzal, K Lipnikov, Yu. Vassilevski, Adaptive generation of quasi-optimal tetrahedral meshes, East-West J. Numer. Math., Vol. 7, No. 4, pp. 223-244 (1999).

Parameters
x0pointer to 3D position for first point in tetrahedral.
x1pointer to 3D position for second point in tetrahedral.
x2pointer to 3D position for third point in tetrahedral.
x3pointer to 3D position for third point in tetrahedral.
m03x3 metric tensor for first point.

Definition at line 369 of file ElementProperty.h.

template<typename real_t>
void ElementProperty< real_t >::lipnikov_grad ( int  moving,
const double *  x0,
const double *  x1,
const double *  x2,
const double *  m0,
double *  grad 
)
inline

Definition at line 254 of file ElementProperty.h.

template<typename real_t>
void ElementProperty< real_t >::lipnikov_grad ( int  moving,
const double *  x0,
const double *  x1,
const double *  x2,
const double *  x3,
const double *  m0,
double *  grad 
)
inline

Definition at line 431 of file ElementProperty.h.

template<typename real_t>
real_t ElementProperty< real_t >::sliver ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const real_t *  x3,
const double *  m0,
const double *  m1,
const double *  m2,
const double *  m3 
)
inline

Evaluates the sliver functional. Taken from Computer Methods in Applied Mechanics and Engineering Volume 194, Issues 48-49, 15 November 2005, Pages 4915-4950

Parameters
x0pointer to 3D position for first point in tetrahedral.
x1pointer to 3D position for second point in tetrahedral.
x2pointer to 3D position for third point in tetrahedral.
x3pointer to 3D position for third point in tetrahedral.
m03x3 metric tensor for first point.
m13x3 metric tensor for second point.
m23x3 metric tensor for third point.
m33x3 metric tensor for forth point.

Definition at line 472 of file ElementProperty.h.

template<typename real_t>
real_t ElementProperty< real_t >::volume ( const real_t *  x0,
const real_t *  x1,
const real_t *  x2,
const real_t *  x3 
) const
inline

Calculate volume of tetrahedron.

Parameters
x0pointer to 3D position for first point in triangle.
x1pointer to 3D position for second point in triangle.
x2pointer to 3D position for third point in triangle.
x3pointer to 3D position for forth point in triangle.

Definition at line 115 of file ElementProperty.h.


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