PPL Logo

GenericElement Class Reference

Class to encapsulate all element-type specific methods. More...

#include <GenericElement.h>

Collaboration diagram for GenericElement:

Collaboration graph
[legend]

Public Member Functions

 GenericElement (unsigned int s=4)
unsigned int size () const
unsigned int nedges () const
unsigned int nfaces () const
void shape_func (const CVector &natc, double[]) const
void dshape_func (const CVector &natc, double[][3]) const
void jacobian (const CPoint p[], const CVector &natc, CVector J[]) const
void interpolate_natural (int nValuesPerNode, const ConcreteElementNodeData &src, const CVector &nc, double *dest) const
 Interpolate nValuesPerNode doubles from src element at nc to dest.
bool interpolate (int nValuesPerNode, const ConcreteElementNodeData &src, const CPoint &p, double *dest) const
 Interpolate nValuesPerNode doubles from src element at point p to dest.
bool element_contains_point (const CPoint &p, const ConcreteElement &e, CVector &natc) const
 Return true if this element contains this point, and return the point's natural coordinates.
void shapef_jacobian_at (const CPoint &p, CVector &natc, const ConcreteElement &e, CVector &fvec, CVector fjac[]) const
 Evaluate the element's jacobian at this natural coordinate.

Protected Types

enum  { maxSize = 20 }

Protected Attributes

unsigned int _size
 Number of nodes in element.

Detailed Description

Class to encapsulate all element-type specific methods.

For example, there would be one GenericElementType for tets, another for hexes, another for 10-node tets, etc.

Terminology: Natural Coordinates are a subset of the unit cube that can be mappped onto the element. The Shape Function at a given location lists the weights for each node used to interpolate values. The Jacobian lists the partials of real coordinates with respect to natural coordinates.

Definition at line 47 of file GenericElement.h.


Member Enumeration Documentation

anonymous enum [protected]

Enumerator:
maxSize 

Definition at line 49 of file GenericElement.h.


Constructor & Destructor Documentation

GenericElement::GenericElement ( unsigned int  s = 4  )  [inline]

Definition at line 52 of file GenericElement.h.


Member Function Documentation

unsigned int GenericElement::size ( void   )  const [inline]

Definition at line 55 of file GenericElement.h.

References _size.

unsigned int GenericElement::nedges (  )  const [inline]

Definition at line 59 of file GenericElement.h.

References _size.

unsigned int GenericElement::nfaces (  )  const [inline]

Definition at line 73 of file GenericElement.h.

References _size.

void GenericElement::shape_func ( const CVector natc,
double  SF[] 
) const

Definition at line 28 of file GenericElement.C.

References _size, alpha, CkVector3dT< real >::x, CkVector3dT< real >::y, and CkVector3dT< real >::z.

Referenced by shapef_jacobian_at().

Here is the caller graph for this function:

void GenericElement::dshape_func ( const CVector natc,
double  dSF[][3] 
) const

void GenericElement::jacobian ( const CPoint  p[],
const CVector natc,
CVector  J[] 
) const

Definition at line 132 of file GenericElement.C.

References _size, alpha, CkVector3dT< real >::x, CkVector3dT< real >::y, and CkVector3dT< real >::z.

Referenced by shapef_jacobian_at().

Here is the caller graph for this function:

void GenericElement::interpolate_natural ( int  nValuesPerNode,
const ConcreteElementNodeData src,
const CVector nc,
double *  dest 
) const

Interpolate nValuesPerNode doubles from src element at nc to dest.

Interpolate nValuesPerNode doubles from src to dest.

Definition at line 177 of file GenericElement.C.

References _size, alpha, ConcreteElementNodeData::getNodeData(), maxSize, n, CkVector3dT< real >::x, CkVector3dT< real >::y, and CkVector3dT< real >::z.

Referenced by interpolate(), parallelTransfer_c::transferNodeValues(), and parallelSurfaceTransfer_c::transferNodeValues().

Here is the call graph for this function:

Here is the caller graph for this function:

bool GenericElement::interpolate ( int  nValuesPerNode,
const ConcreteElementNodeData src,
const CPoint p,
double *  dest 
) const [inline]

Interpolate nValuesPerNode doubles from src element at point p to dest.

Definition at line 102 of file GenericElement.h.

References element_contains_point(), and interpolate_natural().

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

bool GenericElement::element_contains_point ( const CPoint p,
const ConcreteElement e,
CVector natc 
) const

Return true if this element contains this point, and return the point's natural coordinates.

Definition at line 285 of file GenericElement.C.

References _size, HTOL, LTOL, NewtonRaphson(), and p.

Referenced by interpolate(), main(), parallelTransfer_c::transferNodeValues(), and parallelSurfaceTransfer_c::transferNodeValues().

Here is the call graph for this function:

Here is the caller graph for this function:

void GenericElement::shapef_jacobian_at ( const CPoint p,
CVector natc,
const ConcreteElement e,
CVector fvec,
CVector  fjac[] 
) const

Evaluate the element's jacobian at this natural coordinate.

Definition at line 247 of file GenericElement.C.

References _size, ConcreteElement::getNodeLocation(), jacobian(), maxSize, shape_func(), and Transpose().

Here is the call graph for this function:


Field Documentation

unsigned int GenericElement::_size [protected]


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

Generated on Mon Sep 21 08:25:10 2020 for Charm++ by  doxygen 1.5.5