#include <shape.h>
Public Member Functions  
Shape (const unsigned &N)  
Constructor for a singleindex set of shape functions. More...  
Shape (const unsigned &N, const unsigned &M)  
Constructor for a twoindex set of shape functions. More...  
Shape (const Shape &shape)  
Broken copy constructor. More...  
Shape ()  
void  operator= (const Shape &shape) 
void  operator= (Shape *const &shape_pt) 
~Shape ()  
Destructor, clear up the memory allocated by the object. More...  
void  resize (const unsigned &N, const unsigned &M=1) 
Change the size of the storage. More...  
double &  operator[] (const unsigned &i) 
Overload the bracket operator to provide access to values. More...  
const double &  operator[] (const unsigned &i) const 
Overload the bracket operator (const version) More...  
double &  operator() (const unsigned &i) 
Overload the round bracket operator to provide access to values. More...  
const double &  operator() (const unsigned &i) const 
Overload the round bracket operator (const version) More...  
double &  operator() (const unsigned &i, const unsigned &j) 
Overload the round bracket operator, allowing for two indices. More...  
const double &  operator() (const unsigned &i, const unsigned &j) const 
Overload the round bracket operator, allowing for two indices (const version) More...  
unsigned  nindex1 () const 
Return the range of index 1 of the shape function object. More...  
unsigned  nindex2 () const 
Return the range of index 2 of the shape function object. More...  
Protected Member Functions  
void  range_check (const unsigned &i, const unsigned &j) const 
Private function that checks whether the index is in range. More...  
Protected Attributes  
double *  Psi 
Pointer that addresses the storage that will be used to read and set the shape functions. The shape functions are packed into a flat array of doubles. More...  
double *  Allocated_storage 
Pointer that addresses the storage allocated by the object on construction. This will be the same as Psi if the object is not copied. More...  
unsigned  Index1 
Size of the first index of the shape function. More...  
unsigned  Index2 
Size of the second index of the shape function. More...  
A Class for shape functions. In simple cases, the shape functions have only one index that can be thought of as corresponding to the nodal points. In general, however, when quantities and their gradients are interpolated separately, the shape function have two indices: one corresponding to the nodal points, and the other to the "type" of quantity being interpolated: function, derivative, &c The second index can also represent the vector coordinate for vectorvalued (Nedelec) shape functions.
The implementation of Shape functions is designed to permit fast copying of entire sets of values by resetting the internal pointer to the data, Psi; functionality that is required, for example, when setting the test functions in Galerkin elements and when reading precomputed values of the shape functions. In general, we cannot know at construction time whether the pointer to the values will be reset or not and, therefore, whether the storage for values should be allocated by the object. We choose to allocate storage on construction and store an additional pointer Allocated_data that always addresses the storage allocated by the object. If the Psi pointer is reset then this storage will be "wasted", but only for the lifetime of the object. The cost for noncopied Shape functions is one additional pointer.

inline 
Constructor for a singleindex set of shape functions.
Definition at line 128 of file shape.h.
References Allocated_storage, oomph::QuadTreeNames::N, and Psi.

inline 
Constructor for a twoindex set of shape functions.
Definition at line 132 of file shape.h.
References Allocated_storage, and Psi.

inline 
Broken copy constructor.
Definition at line 136 of file shape.h.
References oomph::BrokenCopy::broken_copy().

inline 

inline 
Destructor, clear up the memory allocated by the object.
Definition at line 190 of file shape.h.
References Allocated_storage.

inline 
Return the range of index 1 of the shape function object.
Definition at line 262 of file shape.h.
References Index1.
Referenced by oomph::LineDerivatives::compute_surface_derivatives(), oomph::AxisymmetricDerivatives::compute_surface_derivatives(), oomph::SurfaceDerivatives::compute_surface_derivatives(), oomph::ClampedHermiteShellBoundaryConditionElement::dshape_local(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::jacobian_and_shape_of_field(), oomph::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::jacobian_and_shape_of_field(), and oomph::ClampedHermiteShellBoundaryConditionElement::shape().

inline 
Return the range of index 2 of the shape function object.
Definition at line 265 of file shape.h.
References Index2.
Referenced by oomph::ClampedHermiteShellBoundaryConditionElement::dshape_local(), oomph::TRaviartThomasDarcyElement< ORDER >::scale_basis(), oomph::TPoroelasticityElement< ORDER >::scale_basis(), oomph::TAxisymmetricPoroelasticityElement< ORDER >::scale_basis(), and oomph::ClampedHermiteShellBoundaryConditionElement::shape().

inline 
Overload the round bracket operator to provide access to values.
Definition at line 225 of file shape.h.
References Index2, Psi, and range_check().

inline 
Overload the round bracket operator (const version)
Definition at line 234 of file shape.h.
References Index2, Psi, and range_check().

inline 
Overload the round bracket operator, allowing for two indices.
Definition at line 243 of file shape.h.
References Index2, Psi, and range_check().

inline 
Overload the round bracket operator, allowing for two indices (const version)
Definition at line 253 of file shape.h.
References Index2, Psi, and range_check().

inline 

inline 

inline 
Overload the bracket operator to provide access to values.
Definition at line 207 of file shape.h.
References Index2, Psi, and range_check().

inline 
Overload the bracket operator (const version)
Definition at line 216 of file shape.h.
References Index2, Psi, and range_check().

inlineprotected 
Private function that checks whether the index is in range.
Definition at line 102 of file shape.h.
References Index1, and Index2.
Referenced by operator()(), and operator[]().

inline 
Change the size of the storage.
Definition at line 193 of file shape.h.
References Allocated_storage, Index1, Index2, oomph::QuadTreeNames::N, and Psi.

protected 

protected 
Size of the first index of the shape function.
Definition at line 96 of file shape.h.
Referenced by nindex1(), operator=(), range_check(), resize(), and oomph::ShapeWithDeepCopy::ShapeWithDeepCopy().

protected 
Size of the second index of the shape function.
Definition at line 99 of file shape.h.
Referenced by nindex2(), operator()(), operator=(), operator[](), range_check(), resize(), and oomph::ShapeWithDeepCopy::ShapeWithDeepCopy().

protected 
Pointer that addresses the storage that will be used to read and set the shape functions. The shape functions are packed into a flat array of doubles.
Definition at line 88 of file shape.h.
Referenced by operator()(), operator=(), operator[](), resize(), Shape(), and oomph::ShapeWithDeepCopy::ShapeWithDeepCopy().