Shapeset Class Reference
[Shapesets]

Base class for all shapesets. More...

#include <shapeset.h>

Inherited by H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetHex, and RefMapShapesetTetra.

List of all members.

Public Member Functions

 Shapeset (int id)
virtual ~Shapeset ()
ESpaceType get_type ()
int get_mode () const
int get_num_components () const
virtual int get_vertex_index (int vertex) const =0
virtual int * get_edge_indices (int edge, int ori, order1_t order)=0
virtual int * get_face_indices (int face, int ori, order2_t order)=0
virtual int * get_bubble_indices (order3_t order)=0
virtual int get_num_edge_fns (order1_t order) const =0
virtual int get_num_face_fns (order2_t order) const =0
virtual int get_num_bubble_fns (order3_t order) const =0
virtual int get_face_orientations (int face) const =0
 Get the number of possible orientations on a face.
virtual int get_edge_orientations () const =0
 Get the number of possible orientations on an edge.
virtual int get_face_fn_variant (int index) const
 Returns the variant of a face function It is needed only in Hcurl-derived shapesets where we need to distinguish between to variants of shape functions, other shapesets are returning 0.
virtual order3_t get_order (int index) const =0
virtual order3_t get_dcmp (int index) const =0
 Get function decomposition for product shapesets.
virtual int get_constrained_edge_index (int edge, int ori, order1_t order, Part part)
 Get index of a constrained edge function.
virtual int get_constrained_edge_face_index (int edge, int ori, order2_t order, Part part, int dir, int variant=0)
 Get index of a edge function constrained by a face function.
virtual int get_constrained_face_index (int face, int ori, order2_t order, Part part, int variant=0)
 Get index of a constrained face function.
virtual int get_shape_type (int index) const =0
virtual void get_values (int n, int index, int np, QuadPt3D *pt, int component, double *vals)=0
 Evaluate function in the set of points.
virtual double get_value (int n, int index, double x, double y, double z, int component)=0
 Evaluate function 'index' in points 'pt'.
void get_fn_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dx_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dy_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dz_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dxx_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dyy_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dzz_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dxy_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dxz_values (int index, int np, QuadPt3D *pt, int component, double *vals)
void get_dyz_values (int index, int np, QuadPt3D *pt, int component, double *vals)
double get_fn_value (int index, double x, double y, double z, int component)
double get_dx_value (int index, double x, double y, double z, int component)
double get_dy_value (int index, double x, double y, double z, int component)
double get_dz_value (int index, double x, double y, double z, int component)
double get_dxx_value (int index, double x, double y, double z, int component)
double get_dyy_value (int index, double x, double y, double z, int component)
double get_dzz_value (int index, double x, double y, double z, int component)
double get_dxy_value (int index, double x, double y, double z, int component)
double get_dxz_value (int index, double x, double y, double z, int component)
double get_dyz_value (int index, double x, double y, double z, int component)

Public Attributes

const int id

Protected Member Functions

void get_constrained_values (int n, int index, int np, QuadPt3D *pt, int component, double *vals)
double get_constrained_value (int n, int index, double x, double y, double z, int component)
order3_t get_ced_order (int index) const
virtual CEDCombcalc_constrained_edge_combination (int ori, const order1_t &order, Part part)
virtual CEDCombcalc_constrained_edge_face_combination (int ori, const order2_t &order, Part part, int dir, int variant=0)
virtual CEDCombcalc_constrained_face_combination (int ori, const order2_t &order, Part part, int variant=0)
void free_constrained_combinations ()
CEDCombget_ced_comb (const CEDKey &key)
int * get_ced_indices (const CEDKey &key)

Protected Attributes

ESpaceType type
int mode
int num_components
Map< CEDKey, CEDComb * > ced_comb
Map< CEDKey, int > ced_id
Array< CEDKeyced_key
int ced_idx

Detailed Description

Base class for all shapesets.


Constructor & Destructor Documentation

Shapeset::Shapeset ( int  id  ) 
Shapeset::~Shapeset (  )  [virtual]

Member Function Documentation

virtual CEDComb* Shapeset::calc_constrained_edge_combination ( int  ori,
const order1_t order,
Part  part 
) [inline, protected, virtual]
virtual CEDComb* Shapeset::calc_constrained_edge_face_combination ( int  ori,
const order2_t order,
Part  part,
int  dir,
int  variant = 0 
) [inline, protected, virtual]
virtual CEDComb* Shapeset::calc_constrained_face_combination ( int  ori,
const order2_t order,
Part  part,
int  variant = 0 
) [inline, protected, virtual]
void Shapeset::free_constrained_combinations (  )  [protected]
virtual int* Shapeset::get_bubble_indices ( order3_t  order  )  [pure virtual]
Returns:
indices of bubble functions
Parameters:
order - order of the bubble function

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

CEDComb * Shapeset::get_ced_comb ( const CEDKey key  )  [protected]
int * Shapeset::get_ced_indices ( const CEDKey key  )  [protected]
order3_t Shapeset::get_ced_order ( int  index  )  const [protected]
int Shapeset::get_constrained_edge_face_index ( int  edge,
int  ori,
order2_t  order,
Part  part,
int  dir,
int  variant = 0 
) [virtual]

Get index of a edge function constrained by a face function.

Returns:
The index of a constrained edge function.
Parameters:
[in] edge The local number of an edge.
[in] order The polynomial order on the edge.
[in] ori The orientation of the edge function.
[in] part The 'part' of an edge
int Shapeset::get_constrained_edge_index ( int  edge,
int  ori,
order1_t  order,
Part  part 
) [virtual]

Get index of a constrained edge function.

Returns:
The index of a constrained edge function.
Parameters:
[in] edge The local number of an edge.
[in] order The polynomial order on the edge.
[in] ori The orientation of the edge function.
[in] part The 'part' of an edge
int Shapeset::get_constrained_face_index ( int  face,
int  ori,
order2_t  order,
Part  part,
int  variant = 0 
) [virtual]

Get index of a constrained face function.

Returns:
The index of a constrained face function.
Parameters:
[in] face The local number of a face.
[in] order The polynomial order on the face.
[in] ori The orientation of the face function.
[in] part The 'part' of an face
double Shapeset::get_constrained_value ( int  n,
int  index,
double  x,
double  y,
double  z,
int  component 
) [protected]
void Shapeset::get_constrained_values ( int  n,
int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [protected]
virtual order3_t Shapeset::get_dcmp ( int  index  )  const [pure virtual]

Get function decomposition for product shapesets.

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

double Shapeset::get_dx_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dx_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dxx_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dxx_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dxy_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dxy_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dxz_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dxz_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dy_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dy_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dyy_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dyy_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dyz_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dyz_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dz_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dz_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
double Shapeset::get_dzz_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_dzz_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
virtual int* Shapeset::get_edge_indices ( int  edge,
int  ori,
order1_t  order 
) [pure virtual]
Returns:
indices of edge shape functions
Parameters:
[in] edge - edge number (local)
[in] ori - orientation of the edge (0 or 1)
[in] order - order on the edge

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

virtual int Shapeset::get_edge_orientations (  )  const [pure virtual]

Get the number of possible orientations on an edge.

Returns:
The number of possbile orientations on an edge

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

virtual int Shapeset::get_face_fn_variant ( int  index  )  const [inline, virtual]

Returns the variant of a face function It is needed only in Hcurl-derived shapesets where we need to distinguish between to variants of shape functions, other shapesets are returning 0.

Reimplemented in HcurlShapesetLobattoHex.

virtual int* Shapeset::get_face_indices ( int  face,
int  ori,
order2_t  order 
) [pure virtual]
Returns:
indices of face shape functions
Parameters:
[in] face - face number (local)
[in] ori - orientation of the face
[in] order - order on the face

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

virtual int Shapeset::get_face_orientations ( int  face  )  const [pure virtual]

Get the number of possible orientations on a face.

Returns:
The number of possbile orientations on a face
Parameters:
[in] face The number of the face for which the orientations are evaluated

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

double Shapeset::get_fn_value ( int  index,
double  x,
double  y,
double  z,
int  component 
) [inline]
void Shapeset::get_fn_values ( int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [inline]
int Shapeset::get_mode (  )  const [inline]
virtual int Shapeset::get_num_bubble_fns ( order3_t  order  )  const [pure virtual]
int Shapeset::get_num_components (  )  const [inline]
virtual int Shapeset::get_num_edge_fns ( order1_t  order  )  const [pure virtual]
virtual int Shapeset::get_num_face_fns ( order2_t  order  )  const [pure virtual]
virtual order3_t Shapeset::get_order ( int  index  )  const [pure virtual]
virtual int Shapeset::get_shape_type ( int  index  )  const [pure virtual]
ESpaceType Shapeset::get_type (  )  [inline]
virtual double Shapeset::get_value ( int  n,
int  index,
double  x,
double  y,
double  z,
int  component 
) [pure virtual]

Evaluate function 'index' in points 'pt'.

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

virtual void Shapeset::get_values ( int  n,
int  index,
int  np,
QuadPt3D pt,
int  component,
double *  vals 
) [pure virtual]

Evaluate function in the set of points.

Parameters:
[in] n 
[in] index - Index of the function being evaluate
[in] np - The number of points in array 'pt'
[in] pt - Points where the function is evaluated
[in] component - The number of component of the evaluated function
[out] vals - The array of vakues (caller is responsible for freeing this memory)

Implemented in H1ShapesetLobattoHex, H1ShapesetLobattoTetra, HcurlShapesetLobattoHex, RefMapShapesetTetra, and RefMapShapesetHex.

virtual int Shapeset::get_vertex_index ( int  vertex  )  const [pure virtual]

Member Data Documentation

Map<CEDKey, CEDComb *> Shapeset::ced_comb [protected]
Map<CEDKey, int> Shapeset::ced_id [protected]
int Shapeset::ced_idx [protected]
Array<CEDKey> Shapeset::ced_key [protected]
const int Shapeset::id
int Shapeset::mode [protected]
int Shapeset::num_components [protected]

The documentation for this class was generated from the following files:
Generated on Fri Sep 3 09:22:20 2010 for Hermes3D Library: Real Version by  doxygen 1.6.3