ShapesEvaluated__< ShapeObj, QuadObj > Class Template Reference

ShapesEvaluated__: This class is the one that brings the flexibility for building shape functions of different types evaluated at different quadrature points. More...

#include <ShapesEvaluated.h>

Inheritance diagram for ShapesEvaluated__< ShapeObj, QuadObj >:
ShapesEvaluated BasisFunctions

List of all members.

Public Member Functions

 ShapesEvaluated__ (const ElementGeometry &EG)
virtual ShapesEvaluated__clone () const
 ShapesEvaluated__ (const ShapesEvaluated__ &SE)
const ShapeaccessShape () const
 Returns the specific Shape objects in derived classes.
const QuadratureaccessQuadrature () const
 Quadrature type Returns the specific Quadrature objects in derived classes.

Detailed Description

template<const Shape *const & ShapeObj, const Quadrature *const & QuadObj>
class ShapesEvaluated__< ShapeObj, QuadObj >

ShapesEvaluated__: This class is the one that brings the flexibility for building shape functions of different types evaluated at different quadrature points.

The class takes the Shape and Quadrature types as template arguments. An object is constructed by providing an ElementGeometry object.

ShapesEvaluated_ and ShapesEvaluated__ could have been made into a single templated class. By splitting them the templated part of the class is very small.

Todo:
Should I perhaps have the constructors of the class to be protected, making the classes using ShapesEvaluated__ friends? Since the ElementGeometry is not stored or referenced from within the class, it would prevent unwanted mistakes.
Warning:
When a ShapesEvaluated__ object is constructed on a geometry where the parametric and embedding dimensions are different, the constructor is not warning that it does not compute the derivatives for the shape functions. These objects, however, still provide the values of the Shape functions themselves.
Todo:
In the future, as remarked in ShapesEvaluated as well, we need to separate the need to provide the Shape function values from the one of providing the derivatives as well, perhaps through multiple inheritance.

Constructor & Destructor Documentation

template<const Shape *const & ShapeObj, const Quadrature *const & QuadObj>
ShapesEvaluated__< ShapeObj, QuadObj >::ShapesEvaluated__ ( const ElementGeometry EG  )  [inline]
template<const Shape *const & ShapeObj, const Quadrature *const & QuadObj>
ShapesEvaluated__< ShapeObj, QuadObj >::ShapesEvaluated__ ( const ShapesEvaluated__< ShapeObj, QuadObj > &  SE  )  [inline]

Member Function Documentation

template<const Shape *const & ShapeObj, const Quadrature *const & QuadObj>
const Quadrature& ShapesEvaluated__< ShapeObj, QuadObj >::accessQuadrature (  )  const [inline, virtual]

Quadrature type Returns the specific Quadrature objects in derived classes.

Implements ShapesEvaluated.

template<const Shape *const & ShapeObj, const Quadrature *const & QuadObj>
const Shape& ShapesEvaluated__< ShapeObj, QuadObj >::accessShape (  )  const [inline, virtual]

Returns the specific Shape objects in derived classes.

Implements ShapesEvaluated.

template<const Shape *const & ShapeObj, const Quadrature *const & QuadObj>
virtual ShapesEvaluated__* ShapesEvaluated__< ShapeObj, QuadObj >::clone (  )  const [inline, virtual]

Implements BasisFunctions.


The documentation for this class was generated from the following file:
Generated on Tue Aug 2 11:51:28 2011 for Galois by  doxygen 1.6.3