NeoPZ
Classes | Public Types | Static Public Member Functions | List of all members
pzshape::SPr< TFather > Class Template Reference

Implements the shape functions of a hexahedral (3D) element. Shape. More...

#include <pzshapeextend.h>

Inheritance diagram for pzshape::SPr< TFather >:
[legend]
Collaboration diagram for pzshape::SPr< TFather >:
[legend]

Classes

class  TMem
 Temporary storage to accelerate the computation of shape functions. More...
 

Public Types

typedef TFather::TMem FatMem
 
typedef TFather::Top FatTop
 
typedef pztopology::Pr< FatTopTop
 
typedef TFather::TMem FatMem
 
typedef TFather::Top FatTop
 
typedef pztopology::Pr< FatTopTop
 

Static Public Member Functions

static void Shape (TPZVec< REAL > &pt, TPZVec< int > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, TMem &memory)
 Computes the values of the shape functions and their derivatives for a hexahedral element. More...
 
static void SideShape (int side, TPZVec< REAL > &pt, TPZVec< int > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 
static void ShapeCorner (TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Computes the corner shape functions for a hexahedral element. More...
 
static int NSideShapeF (int side, int order)
 Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element. More...
 
static int NSideShapeF (int side, const TMem &mem)
 Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element. More...
 
static int NShapeF (TPZVec< int > &order)
 Total number of shapefunctions, considering the order of interpolation of the element. More...
 
static void ShapeInternal (TPZVec< REAL > &x, int order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Compute the internal functions of the hexahedral shape function at a point
The internal shape functions are the shapefunctions before being multiplied by the corner shape functions. More...
 
static void Shape (TPZVec< REAL > &pt, TPZVec< int64_t > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi, TMem &memory)
 Computes the values of the shape functions and their derivatives for a hexahedral element. More...
 
static void SideShape (int side, TPZVec< REAL > &pt, TPZVec< int64_t > &id, TPZVec< int > &order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 
static void ShapeCorner (TPZVec< REAL > &pt, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Computes the corner shape functions for a hexahedral element. More...
 
static int NSideShapeF (int side, int order)
 Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element. More...
 
static int NSideShapeF (int side, const TMem &mem)
 Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element. More...
 
static int NShapeF (TPZVec< int > &order)
 Total number of shapefunctions, considering the order of interpolation of the element. More...
 
static void ShapeInternal (TPZVec< REAL > &x, int order, TPZFMatrix< REAL > &phi, TPZFMatrix< REAL > &dphi)
 Compute the internal functions of the hexahedral shape function at a point
. More...
 

Detailed Description

template<class TFather>
class pzshape::SPr< TFather >

Implements the shape functions of a hexahedral (3D) element. Shape.

The range of the master element is $ [-1,1] $

Definition at line 26 of file pzshapeextend.h.

Member Typedef Documentation

◆ FatMem [1/2]

template<class TFather >
typedef TFather::TMem pzshape::SPr< TFather >::FatMem

Definition at line 27 of file pzshapeextend.h.

◆ FatMem [2/2]

template<class TFather >
typedef TFather::TMem pzshape::SPr< TFather >::FatMem

Definition at line 30 of file pzshapeextend.h.

◆ FatTop [1/2]

template<class TFather >
typedef TFather::Top pzshape::SPr< TFather >::FatTop

Definition at line 28 of file pzshapeextend.h.

◆ FatTop [2/2]

template<class TFather >
typedef TFather::Top pzshape::SPr< TFather >::FatTop

Definition at line 31 of file pzshapeextend.h.

◆ Top [1/2]

template<class TFather >
typedef pztopology::Pr<FatTop> pzshape::SPr< TFather >::Top

Definition at line 30 of file pzshapeextend.h.

◆ Top [2/2]

template<class TFather >
typedef pztopology::Pr<FatTop> pzshape::SPr< TFather >::Top

Definition at line 33 of file pzshapeextend.h.

Member Function Documentation

◆ NShapeF() [1/2]

template<class TFather >
static int pzshape::SPr< TFather >::NShapeF ( TPZVec< int > &  order)
static

Total number of shapefunctions, considering the order of interpolation of the element.

Parameters
ordervector of integers indicating the interpolation order of the element
Returns
number of shape functions

◆ NShapeF() [2/2]

template<class TFather >
static int pzshape::SPr< TFather >::NShapeF ( TPZVec< int > &  order)
static

Total number of shapefunctions, considering the order of interpolation of the element.

Parameters
ordervector of integers indicating the interpolation order of the element
Returns
number of shape functions

◆ NSideShapeF() [1/4]

template<class TFather >
static int pzshape::SPr< TFather >::NSideShapeF ( int  side,
int  order 
)
static

Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element.

Parameters
sideassociated side
orderorder associated with the side
Returns
number of shape functions

◆ NSideShapeF() [2/4]

template<class TFather >
static int pzshape::SPr< TFather >::NSideShapeF ( int  side,
int  order 
)
static

Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element.

Parameters
sideassociated side
orderorder associated with the side
Returns
number of shape functions

◆ NSideShapeF() [3/4]

template<class TFather >
static int pzshape::SPr< TFather >::NSideShapeF ( int  side,
const TMem mem 
)
static

Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element.

Parameters
sideassociated side
memauxiliar structure to accellerate computing
Returns
number of shape functions

◆ NSideShapeF() [4/4]

template<class TFather >
static int pzshape::SPr< TFather >::NSideShapeF ( int  side,
const TMem mem 
)
static

Number of shapefunctions of the connect associated with the side, considering the order of interpolation of the element.

Total number of shapefunctions, considering the order of interpolation of the element @ param order vector of integers indicating the interpolation order of the element @ return number of shape functions

Parameters
sideassociated side
memauxiliar structure to accellerate computing
Returns
number of shape functions

◆ Shape() [1/2]

template<class TFather >
void pzshape::SPr< TFather >::Shape ( TPZVec< REAL > &  pt,
TPZVec< int64_t > &  id,
TPZVec< int > &  order,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi,
TMem memory 
)
inlinestatic

Computes the values of the shape functions and their derivatives for a hexahedral element.

Parameters
pt(input) point where the shape functions are computed
id(input) indexes of the corner points which determine the orientation of the shape functions
order(input) order of the side connects different from the corner connects (5 connects in this case)
phi(output) values of the shape functions
dphi(output) values of the derivatives of the shapefunctions
memoryauxiliar structure to accellerate computing These values depend on the point, the order of interpolation and ids of the corner points The shapefunction computation uses the shape functions of the linear and quadrilateral element for its implementation

Definition at line 129 of file pzshapeextend.h.

References pztopology::Pr< TFather >::Dimension, pzshape::SPr< TFather >::TMem::fExtension, pzshape::SPr< TFather >::TMem::fExtShapes, pzshape::SPr< TFather >::TMem::fLower, pzshape::SPr< TFather >::TMem::fMaxOrder, pzshape::SPr< TFather >::TMem::fNShape, pzshape::SPr< TFather >::TMem::fNShapeBefore, pzshape::SPr< TFather >::TMem::fUpper, pztopology::Pr< TFather >::NCornerNodes, TPZVec< T >::NElements(), TPZFMatrix< TVar >::Resize(), TPZMatrix< TVar >::Rows(), Shape(), and pzshape::SPr< TFather >::ShapeCorner().

◆ Shape() [2/2]

template<class TFather >
void pzshape::SPr< TFather >::Shape ( TPZVec< REAL > &  pt,
TPZVec< int > &  id,
TPZVec< int > &  order,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi,
TMem memory 
)
inlinestatic

Computes the values of the shape functions and their derivatives for a hexahedral element.

Parameters
pt(input) point where the shape functions are computed
id(input) indexes of the corner points which determine the orientation of the shape functions
order(input) order of the side connects different from the corner connects (5 connects in this case)
phi(output) values of the shape functions
dphi(output) values of the derivatives of the shapefunctions
memoryauxiliar structure to accellerate computing These values depend on the point, the order of interpolation and ids of the corner points
The shapefunction computation uses the shape functions of the linear and quadrilateral element for its implementation

Definition at line 141 of file pzshapeextend.h.

References pztopology::Pr< TFather >::Dimension, pzshape::SPr< TFather >::TMem::fExtension, pzshape::SPr< TFather >::TMem::fExtShapes, pzshape::SPr< TFather >::TMem::fLower, pzshape::SPr< TFather >::TMem::fMaxOrder, pzshape::SPr< TFather >::TMem::fNShape, pzshape::SPr< TFather >::TMem::fNShapeBefore, pzshape::SPr< TFather >::TMem::fUpper, TPZVec< T >::NElements(), TPZMatrix< TVar >::Rows(), and Shape().

◆ ShapeCorner() [1/2]

template<class TFather >
static void pzshape::SPr< TFather >::ShapeCorner ( TPZVec< REAL > &  pt,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
static

Computes the corner shape functions for a hexahedral element.

Parameters
pt(input) point where the shape function is computed
phi(output) value of the (8) shape functions
dphi(output) value of the derivatives of the (8) shape functions holding the derivatives in a column

◆ ShapeCorner() [2/2]

template<class TFather >
void pzshape::SPr< TFather >::ShapeCorner ( TPZVec< REAL > &  pt,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
inlinestatic

Computes the corner shape functions for a hexahedral element.

Parameters
pt(input) point where the shape function is computed
phi(output) value of the (8) shape functions
dphi(output) value of the derivatives of the (8) shape functions holding the derivatives in a column

Definition at line 230 of file pzshapeextend.h.

References pztopology::Pr< TFather >::Dimension, pztopology::Pr< TFather >::NCornerNodes, and TPZFMatrix< TVar >::Resize().

Referenced by pzshape::SPr< TFather >::Shape().

◆ ShapeInternal() [1/2]

template<class TFather >
static void pzshape::SPr< TFather >::ShapeInternal ( TPZVec< REAL > &  x,
int  order,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
static

Compute the internal functions of the hexahedral shape function at a point
.

Parameters
xcoordinate of the point
ordermaximum order of shape functions to be computed
phishapefunction values
dphivalues of the derivatives of the shape functions The internal shape functions are the shapefunctions before being multiplied by the corner shape functions
Shape3dCubeInternal is basically a call to the orthogonal shapefunction with the transformation determined by the transformation index

◆ ShapeInternal() [2/2]

template<class TFather >
static void pzshape::SPr< TFather >::ShapeInternal ( TPZVec< REAL > &  x,
int  order,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
static

Compute the internal functions of the hexahedral shape function at a point
The internal shape functions are the shapefunctions before being multiplied by the corner shape functions.

Parameters
xcoordinate of the point
ordermaximum order of shape functions to be computed
phishapefunction values
dphivalues of the derivatives of the shape functions Shape3dCubeInternal is basically a call to the orthogonal shapefunction with the transformation determined by the transformation index

◆ SideShape() [1/2]

template<class TFather >
static void pzshape::SPr< TFather >::SideShape ( int  side,
TPZVec< REAL > &  pt,
TPZVec< int64_t > &  id,
TPZVec< int > &  order,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
static

◆ SideShape() [2/2]

template<class TFather >
static void pzshape::SPr< TFather >::SideShape ( int  side,
TPZVec< REAL > &  pt,
TPZVec< int > &  id,
TPZVec< int > &  order,
TPZFMatrix< REAL > &  phi,
TPZFMatrix< REAL > &  dphi 
)
static

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