hp2FEM  0.1
Public Member Functions | Protected Member Functions | Protected Attributes
ShapeFunctions Class Reference

It is a container class for line, square, triangle, hexa and tetra shape functions. More...

#include <ShapeFunctions.h>

Collaboration diagram for ShapeFunctions:
Collaboration graph
[legend]

List of all members.

Public Member Functions

double *const GetdShapeFunctions (ElementShape_E ElementShape, ElementShape_E EntityShape, unsigned long PolyOrder, unsigned long IntegrandOrder, IPCP_E IPCPFlag, unsigned long &NumberSFValues, unsigned long &NumberIntegPoints, unsigned long LiDirection=1)
 Returns the derivatives of the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the derivatives of the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions derivatives has been already calculated by the method RunShapeFunctions.
unsigned long *const GetIndices (ElementShape_E ElementShape, ElementShape_E EntityShape, unsigned long PolyOrder, unsigned long &NumberIndices)
 Returns the tensorization indices for the shape functions.
OneIndexTable< unsigned long > & GetIndices (ElementShape_E ElementShape)
 Get Indices for tensorization of shape functions.
LineShapeFunctionsGetLineShapeFunctions (ElementShape_E ElemShape, unsigned long LiDirection=1)
 Returns the LineShapeFunctions reference according to element shape and baricentric direction number to (triangle and tetrahedron).
unsigned long GetMaxPolyOrder (ElementShape_E ElementShape)
 Returns the maximum polynomial order for the shape functions.
BuiltInArray< unsigned long > & GetNumberIntegrationPoints ()
 Returns the Number of integration points applied on each shape functions for each polynomial order. This method just should use to line element shape.
unsigned long GetNumberShapeFunctions (ElementShape_E ElementShape, unsigned long Order)
ShapeFunctionsAttributes_SGetShapeFunctionsAttributes ()
void GetShapeFunctions (ElementShape_E ElementShape, unsigned long PolyOrder, unsigned long IntegrandOrder, IPCP_E IPCPFlag, double *ShapeFunctions)
 Returns the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions has been already calculated by the method RunShapeFunctions.
double *const GetShapeFunctions (ElementShape_E ElementShape, ElementShape_E EntityShape, unsigned long PolyOrder, unsigned long IntegrandOrder, IPCP_E IPCPFlag, unsigned long &NumberSFValues, unsigned long LiDirection=1)
 Returns the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions has been already calculated by the method RunShapeFunctions.
double *const GetShapeFunctions (ElementShape_E ElementShape, ElementShape_E EntityShape, unsigned long PolyOrder, unsigned long IntegrandOrder, IPCP_E IPCPFlag, unsigned long &TotalNumberSFValues, unsigned long &NumberSFValues, unsigned long &NumberPoints, unsigned long LiDirection=1)
 Returns the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions has been already calculated by the method RunShapeFunctions.
long GetShapeFunctionSetNumber (ElementShape_E ElemShape, unsigned long PolyOrder)
 Returns the set number of the shape functions values for the given a polynomial order.
 operator collocationPoints & ()
 Cast operator for the reference of the class attribute "CP".
 operator HexaShapeFunctions & ()
 Cast operator for the reference of the class attribute "HexaSF".
 operator LineShapeFunctions & ()
 Cast operator for the reference of the class attribute "LineSF".
 operator NumericalIntegration & ()
 Cast operator for the reference of the class attribute "NI".
 operator ShapeFunctionsAttributes_S & ()
 Cast operator for the reference of the struct attribute "SFAttributes".
 operator SquareShapeFunctions & ()
 Cast operator for the reference of the class attribute "SquareSF".
 operator TetraShapeFunctions & ()
 Cast operator for the reference of the class attribute "TetraSF".
 operator TriangleShapeFunctions & ()
 Cast operator for the reference of the class attribute "TriangleSF".
ShapeFunctionsoperator= (ShapeFunctions &Instance)
 Copies the contents of instance to the object.
void Print (FILE *File, ElementShape_E ElementShape, ElementShape_E EntityShape, BuiltInArray< unsigned long > &PolyOrder)
 : Prints the shape functions attributes and values to the given ascii file.
void Read (FILE *DEFFile, unsigned long GroupNumber, ElementShape_E ElementShape, unsigned long MaxOrder, pMesh_E pMesh)
 Reads the shape functions attributes from the .def ascii file.
void RunShapeFunctions (ElementShape_E ElementShape, ElementShape_E EntityShape, BuiltInArray< unsigned long > &PolyOrder)
 Calculates the shape functions values and their derivatives on the integration and collocation points also calculated for the input element orders given in the PolyOrder argument.
void SetMaxPolyOrder (ElementShape_E ElementShape, unsigned long MaxOrder)
 Sets the maximum polynomial order for the shape functions.
void SetShapeFunctionsAttributes (unsigned long MaxPolyOrder, ElementShape_E ElementShape, SchemeType_E SchemeType, BasisType_E BasisType, HierarchicalType_E HierarchicalType, pMesh_E pMeshDistribution, PolynomialType_E PolynomialType, unsigned long Alpha, unsigned long Beta, QuadCollocType_E QuadratureType, unsigned long AlphaNI, unsigned long BetaNI, QuadCollocType_E CollocationType, unsigned long AlphaCP, unsigned long BetaCP)
 Sets the class attributes as input parameters to be stored in the ShapeFunctionsAttributes_S instance.
void SetShapeFunctionsAttributes (ShapeFunctionsAttributes_S &ShapeFunctionsAttributes, NumericalIntegrationAttributes_S &NumericalIntegrationAttributes, collocationPointsAttributes_S &CollocationPointsAttributes)
 Sets the class attributes using as input parameters the ShapeFunctionsAttributes_S, NumericalIntegrationAttributes_S and CollocationPointsAttributes_S attributes structs.
 ShapeFunctions ()
 Default constructor.
 ShapeFunctions (unsigned long MaxOrder, ElementShape_E ElementShape, SchemeType_E SchemeType, BasisType_E BasisType, HierarchicalType_E HierarchicalType, pMesh_E pMesh, PolynomialType_E PolynomialType, unsigned long Alpha, unsigned long Beta, QuadCollocType_E QuadratureType, unsigned long AlphaNI, unsigned long BetaNI, QuadCollocType_E CollocationType, unsigned long AlphaCP, unsigned long BetaCP)
 Constructor with all class attributes as input parameters to be stored in the ShapeFunctionsAttributes_S instance.
 ShapeFunctions (ShapeFunctionsAttributes_S &ShapeFunctionsAttributes, NumericalIntegrationAttributes_S &NumericalIntegrationAttributes, collocationPointsAttributes_S &CollocationPointsAttributes)
 Constructor with ShapeFunctions, NumericalIntegration and CollocationPoints attributes input as structs.
 ShapeFunctions (ShapeFunctions &Instance)
 Copy-initializer constructor.
 ~ShapeFunctions ()
 Class destructor.

Protected Member Functions

void BuildIndices (ElementShape_E ElementShape, BuiltInArray< unsigned long > &PolyOrder)
 Protected function for the calculation of the tensorization indices for each polynomial order given in the input argument PolyOrder. The indices are stored in the table Indices. This methods is executed in the RunShapeFunctions method according to element shape.

Protected Attributes

collocationPoints CP
HexaShapeFunctionsHexaSF
LineShapeFunctionsLineSF
NumericalIntegration NI
ShapeFunctionsAttributes_S SFAttributes
SquareShapeFunctionsSquareSF
TetraShapeFunctionsTetraSF
TriangleShapeFunctionsTriangleSF

Detailed Description

It is a container class for line, square, triangle, hexa and tetra shape functions.

Note:
This is a container class which manages shape functions for a specific element shape. The main shape functions attributes are stored in the ShapeFunctionsAttributes_S structure. The class has instances for the CollocationPoints and NumnericalIntegration classes. Based on the element shape (LINE, SQUARE, TRIANGLE, HEXA and TETRA), the specific shape functions instance is created to store the local shape functions and their derivatives on integration and collocation points. The method RunShapeFunctions calculates the shape functions and their derivatives at once for each polynomial order stored in the parameter PolyOrder. The methods of names starting with Get return the values claculated previously with the Run method. If the Run method is not executed, the Get methods will return invalied values. Cast operators were implemented to access the instances of the class ans struct attributes.
Author:
Marco Lucio Bittencourt/ Fabiano Fernandes Bargos
Date:
March/14/2011

Constructor & Destructor Documentation

ShapeFunctions::ShapeFunctions ( unsigned long  MaxOrder,
ElementShape_E  ElementShape,
SchemeType_E  SchemeType,
BasisType_E  BasisType,
HierarchicalType_E  HierarchicalType,
pMesh_E  pMesh,
PolynomialType_E  PolynomialType,
unsigned long  Alpha,
unsigned long  Beta,
QuadCollocType_E  QuadratureType,
unsigned long  AlphaNI,
unsigned long  BetaNI,
QuadCollocType_E  CollocationType,
unsigned long  AlphaCP,
unsigned long  BetaCP 
)

Constructor with all class attributes as input parameters to be stored in the ShapeFunctionsAttributes_S instance.

Parameters:
[in]MaxOrder,:maximum polynomial order used in the model
[in]ElementShaper,:element shape
[in]SchemeType,:specifies STANDARD or SERENDIPTY scheme for the calculation of the shape functions
[in]BasisType,:specifies NODAL or MODAL shape functions
[in]HierarchicalType,:specifies HIERARCHICAL or NON_HIERARCHICAL shape functions
[in]pMeshType,:specifies if the mesh is pUNIFORM or pNONUNIFORM
[in]PolynomialType,:specifies the 1D polynomial basys type.
[in]Alpha,Beta,:specifies the weights for orthogonal polynomial basis
[in]QuadratureType,:specifies the quadrature type for numerical integration
[in]AlphaNI,BetaNI,:specifies the weights for the calculation of the weights and integration points
[in]CollocationType,:specifies the quadrature type for the collocation points
[in]AlphaCP,BetaCP,:specifies the weights for the calculation of the coordinates of the collocation points.
ShapeFunctions::ShapeFunctions ( ShapeFunctionsAttributes_S ShapeFunctionsAttributes,
NumericalIntegrationAttributes_S NumericalIntegrationAttributes,
collocationPointsAttributes_S CollocationPointsAttributes 
)

Constructor with ShapeFunctions, NumericalIntegration and CollocationPoints attributes input as structs.

Parameters:
[in]ShapeFunctionsAttributes,:attributes for the shape functions using the ShapeFunctionsAttributes_S struct
[in]NumericalIntegrationAttributes,:attributes for the numerical integration using the NumericalIntegrationAttributes_S struct
[in]CollocationPointsAttributesr,:attributes for the collocation points using the CollocationPointsAttributes_S struct

Copy-initializer constructor.

Parameters:
[in]Instance- instance of the ShapeFunctions class

Member Function Documentation

void ShapeFunctions::BuildIndices ( ElementShape_E  ElementShape,
BuiltInArray< unsigned long > &  PolyOrder 
) [protected]

Protected function for the calculation of the tensorization indices for each polynomial order given in the input argument PolyOrder. The indices are stored in the table Indices. This methods is executed in the RunShapeFunctions method according to element shape.

Parameters:
[in]ElementShape- Element shape.
[in]PolyOrder- Element orders for a p-nonuniform mesh in a increasing sequence. For a p-uniform, this array stores only one value.
double *const ShapeFunctions::GetdShapeFunctions ( ElementShape_E  ElementShape,
ElementShape_E  EntityShape,
unsigned long  PolyOrder,
unsigned long  IntegrandOrder,
IPCP_E  IPCPFlag,
unsigned long &  NumberSFValues,
unsigned long &  NumberIntegPoints,
unsigned long  LiDirection = 1 
)

Returns the derivatives of the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the derivatives of the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions derivatives has been already calculated by the method RunShapeFunctions.

Parameters:
[in]ElementShape- specifies the derivatives of the shape functions to be returned based on the element shape. For example, for line shape functions, only the LINE shape is available. For square, if LINE is input, the edge shape functions derivatives will be returned; if SQUARE is input, the square shape functions derivatives are returned and so on
[in]EntityShape- Entity shape for which the interpolation functions and derivatives must be calculated. For example, the element shape is TETRAHEDRON, but only the edge shape functions is required. In this case, EntityShape must be TRIANGLE.

[in] PolyOrder - polynomial order for the derivatives of the shape functions

Parameters:
[in]IntegrandOrder- order of the integrand for which the shape functions derivatives are requested. Based on this parameters, the number of points necessary for the quadrature rule is calculated and the derivatives of the shape functions returned on these integration points.
[in]IPCPFlag- specifies if the shape functions derivatives are to be returned on the integration (IP) or collocation (CP) points
[out]NumberIntegPoints- Number of integration points.
[out]NumberSFValues- Number of shape functions values.
[in]LiDirection- Baricentric direction number.
Returns:
pointer to the double array with the values of the derivatives of the shape functions stored in the vertex, edge, face and body sequence.For each node/mode, the partial derivatives are stored for each variable. For example, in the case of the first shape function N1 of a square, the derivatives are stored as N1_csi N1_eta
unsigned long *const ShapeFunctions::GetIndices ( ElementShape_E  ElementShape,
ElementShape_E  EntityShape,
unsigned long  PolyOrder,
unsigned long &  NumberIndices 
)

Returns the tensorization indices for the shape functions.

Parameters:
[in]ElementShape- element shape.
[in]EntityShape- Entity shape for which the interpolation functions and derivatives must be calculated. For example, the element shape is TETRAHEDRON, but only the edge shape functions is required. In this case, EntityShape must be TRIANGLE.
[in]PolyOrder- polynomial order.
[out]NumberIndices- number of tensorization indices.
Returns:
unsigned long* const pointer to the array with the tensorization indices. For example, the indices are stored p and q for each node/mode a square element.
OneIndexTable< unsigned long > & ShapeFunctions::GetIndices ( ElementShape_E  ElementShape)

Get Indices for tensorization of shape functions.

Parameters:
[in]ElementShape- Element shape.
Returns:
OneIndexTable type that contains the tensor indices for each polynomial .
LineShapeFunctions & ShapeFunctions::GetLineShapeFunctions ( ElementShape_E  ElemShape,
unsigned long  LiDirection = 1 
)

Returns the LineShapeFunctions reference according to element shape and baricentric direction number to (triangle and tetrahedron).

Parameters:
[in]ElemShape- Element Shape
[in]LiDirection- Baricentric direction number.
Returns:
LineShapeFunctions& - reference to the LineShapeFunctions class.
unsigned long ShapeFunctions::GetMaxPolyOrder ( ElementShape_E  ElementShape)

Returns the maximum polynomial order for the shape functions.

Parameters:
[in]ElementShape,:element shape
Returns:
maximum polynomial order as an unsigned long.

Returns the Number of integration points applied on each shape functions for each polynomial order. This method just should use to line element shape.

Returns:
an unsigned long type with the number of integration points for each polynomial order.
unsigned long ShapeFunctions::GetNumberShapeFunctions ( ElementShape_E  ElementShape,
unsigned long  Order 
)

@ brief Returns the number of shapefunctions according to the element shape and the order.

Parameters:
[in]ElementShape- Element shape.
[in]Order- Polynomial order.
Returns:
an unsigned long that contains the number of shape functions.
void ShapeFunctions::GetShapeFunctions ( ElementShape_E  ElementShape,
unsigned long  PolyOrder,
unsigned long  IntegrandOrder,
IPCP_E  IPCPFlag,
double *  ShapeFunctions 
)

Returns the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions has been already calculated by the method RunShapeFunctions.

Parameters:
[in]ElementShape- specifies the shape functions to be returned based on the element shape. For example, for line shape functions, only the LINE shape is avaialble. For square, if LINE is input, the edge shape functions will be returned; if SQUARE is input, the square shape functions are returned

[in] PolyOrder - polynomial order for the shape functions

Parameters:
[in]IntegrandOrder- order of the integrand for which the shape functions are requested. Based on this parameter, the number of quadrature points necessary for the quadrature rule is calculated and the shape functions returned on these points.
[in]IPCPFlag- specifies if the shape functions are to be returned on the integration (IP) or collocation (CP) points
[out]ShapeFunctions- the shape functions for a certain element shape.
double *const ShapeFunctions::GetShapeFunctions ( ElementShape_E  ElementShape,
ElementShape_E  EntityShape,
unsigned long  PolyOrder,
unsigned long  IntegrandOrder,
IPCP_E  IPCPFlag,
unsigned long &  NumberSFValues,
unsigned long  LiDirection = 1 
)

Returns the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions has been already calculated by the method RunShapeFunctions.

Parameters:
[in]ElementShape- specifies the shape functions to be returned based on the element shape. For example, for line shape functions, only the LINE shape is avaialble. For square, if LINE is input, the edge shape functions will be returned; if SQUARE is input, the square shape functions are returned
[in]EntityShape- Entity shape for which the interpolation functions and derivatives must be calculated. For example, the element shape is TETRAHEDRON, but only the edge shape functions is required. In this case, EntityShape must be TRIANGLE.

[in] PolyOrder - polynomial order for the shape functions

Parameters:
[in]IntegrandOrder- order of the integrand for which the shape functions are requested. Based on this parameter, the number of quadrature points necessary for the quadrature rule is calculated and the shape functions returned on these points.
[in]IPCPFlag- specifies if the shape functions are to be returned on the integration (IP) or collocation (CP) points
[out]NumberSFValues- Number of shape functions values.
[in]LiDirection- Baricentric direction number.
Returns:
pointer to the double array with the values of the shape functions
double *const ShapeFunctions::GetShapeFunctions ( ElementShape_E  ElementShape,
ElementShape_E  EntityShape,
unsigned long  PolyOrder,
unsigned long  IntegrandOrder,
IPCP_E  IPCPFlag,
unsigned long &  TotalNumberSFValues,
unsigned long &  NumberSFValues,
unsigned long &  NumberPoints,
unsigned long  LiDirection = 1 
)

Returns the shape functions for the given element shape, polynomial order and integrand order calculated on the integration or collocation points. For a 2D or 3D elements, it is possible to return the shape functions for the lower level topological entities. For example, it is possible to return the edge shape functions for a square element; the face shape functions for a hexa, etc. This method assumes that the values of the shape functions has been already calculated by the method RunShapeFunctions.

Parameters:
[in]ElementShape- specifies the shape functions to be returned based on the element shape. For example, for line shape functions, only the LINE shape is avaialble. For square, if LINE is input, the edge shape functions will be returned; if SQUARE is input, the square shape functions are returned
[in]EntityShape- Entity shape for which the interpolation functions and derivatives must be calculated. For example, the element shape is TETRAHEDRON, but only the edge shape functions is required. In this case, EntityShape must be TRIANGLE.

[in] PolyOrder - polynomial order for the shape functions

Parameters:
[in]IntegrandOrder- order of the integrand for which the shape functions are requested. Based on this parameter, the number of quadrature points necessary for the quadrature rule is calculated and the shape functions returned on these points.
[in]IPCPFlag- specifies if the shape functions are to be returned on the integration (IP) or collocation (CP) points
[out]TotalNumberSFValues- Total number of elements of the shape functions matrix.
[out]NumberSFValues- Number of shape functions values.
[out]NumberPoints- Number of points of the integration or collocation depending of the IPCPFlag.
[in]LiDirection- Baricentric direction number.
Returns:
pointer to the double array with the values of the shape functions

@ brief Returns the shape functions attributes

Returns:
a struct with the shape functions attributes.
long ShapeFunctions::GetShapeFunctionSetNumber ( ElementShape_E  ElemShape,
unsigned long  PolyOrder 
)

Returns the set number of the shape functions values for the given a polynomial order.

Parameters:
[in]ElemShape- Element Shape.
[in]PolyOrder- Polynomial order.
Returns:
a long with the set number value.
ShapeFunctions::operator collocationPoints & ( )

Cast operator for the reference of the class attribute "CP".

Returns:
CollocationPoints& - reference to the class attribute "CP"
ShapeFunctions::operator HexaShapeFunctions & ( )

Cast operator for the reference of the class attribute "HexaSF".

Returns:
HexaShapeFunctions& - reference to the class attribute "HexaSF"
ShapeFunctions::operator LineShapeFunctions & ( )

Cast operator for the reference of the class attribute "LineSF".

Returns:
LineShapeFunctions& - reference to the class attribute "LineSF"
ShapeFunctions::operator NumericalIntegration & ( )

Cast operator for the reference of the class attribute "NI".

Returns:
NumericalIntegration& - reference to the class attribute "NI"
ShapeFunctions::operator ShapeFunctionsAttributes_S & ( )

Cast operator for the reference of the struct attribute "SFAttributes".

Returns:
ShapeFunctionsAttributes_S& - reference to the class attribute "SFAttributes"
ShapeFunctions::operator SquareShapeFunctions & ( )

Cast operator for the reference of the class attribute "SquareSF".

Returns:
SquareShapeFunctions& - reference to the class attribute "SquareSF"
ShapeFunctions::operator TetraShapeFunctions & ( )

Cast operator for the reference of the class attribute "TetraSF".

Returns:
TetraShapeFunctions& - reference to the class attribute "TetraSF"
ShapeFunctions::operator TriangleShapeFunctions & ( )

Cast operator for the reference of the class attribute "TriangleSF".

Returns:
TriangleShapeFunctions& - reference to the class attribute "TriangleSF"
ShapeFunctions & ShapeFunctions::operator= ( ShapeFunctions Instance)

Copies the contents of instance to the object.

Parameters:
[in]Instance- instance of the ShapeFunctions class
void ShapeFunctions::Print ( FILE *  File,
ElementShape_E  ElementShape,
ElementShape_E  EntityShape,
BuiltInArray< unsigned long > &  PolyOrder 
)

: Prints the shape functions attributes and values to the given ascii file.

Parameters:
[in]File- pointer to the ascii file.
[in]ElementShape- element shape.
[in]EntityShape- Entity shape for which the interpolation functions and derivatives must be printed. For example, the element shape is SQUARE, but only the edge shape functions is required. In this case, EntityShape must be LINE.
[in]PolyOrder- element orders for a p-nonuniform mesh in a increasing sequence. For a p-uniform, this array stores only one value.
void ShapeFunctions::Read ( FILE *  DEFFile,
unsigned long  GroupNumber,
ElementShape_E  ElementShape,
unsigned long  MaxOrder,
pMesh_E  pMesh 
)

Reads the shape functions attributes from the .def ascii file.

Parameters:
[in]DEFFile- pointer to the .def ascii file
[in]GroupNumber- group number.
[in]ElementShape- element shape
[in]MaxOrder- maximum polynomial order
[in]pMeshType,:specifies if the mesh is pUNIFORM or pNONUNIFORM.
void ShapeFunctions::RunShapeFunctions ( ElementShape_E  ElementShape,
ElementShape_E  EntityShape,
BuiltInArray< unsigned long > &  PolyOrder 
)

Calculates the shape functions values and their derivatives on the integration and collocation points also calculated for the input element orders given in the PolyOrder argument.

Parameters:
[in]ElementShape- element shape
[in]EntityShape- entity shape for which the interpolation functions and derivatives must be calculated. For example, the element shape is SQUARE, but only the edge shape functions is required. In this case, EntityShape must be LINE.
[in]PolyOrder- element orders for a p-nonuniform mesh in a increasing sequence. For a p-uniform, thsi array stores only one value
void ShapeFunctions::SetMaxPolyOrder ( ElementShape_E  ElementShape,
unsigned long  MaxOrder 
)

Sets the maximum polynomial order for the shape functions.

Parameters:
[in]ElementShaper,:element shape
[in]MaxOrder- maximum polynomial order.
void ShapeFunctions::SetShapeFunctionsAttributes ( unsigned long  MaxPolyOrder,
ElementShape_E  ElementShape,
SchemeType_E  SchemeType,
BasisType_E  BasisType,
HierarchicalType_E  HierarchicalType,
pMesh_E  pMeshDistribution,
PolynomialType_E  PolynomialType,
unsigned long  Alpha,
unsigned long  Beta,
QuadCollocType_E  QuadratureType,
unsigned long  AlphaNI,
unsigned long  BetaNI,
QuadCollocType_E  CollocationType,
unsigned long  AlphaCP,
unsigned long  BetaCP 
)

Sets the class attributes as input parameters to be stored in the ShapeFunctionsAttributes_S instance.

Parameters:
[in]MaxOrder,:maximum polynomial order used in the model
[in]ElementShaper,:element shape
[in]SchemeType,:specifies STANDARD or SERENDIPTY scheme for the calculation of the shape functions
[in]BasisType,:specifies NODAL or MODAL shape functions
[in]HierarchicalType,:specifies HIERARCHICAL or NON_HIERARCHICAL shape functions
[in]pMeshType,:specifies if the mesh is pUNIFORM or pNONUNIFORM
[in]PolynomialType,:specifies the 1D polynomial basys type
[in]Alpha,Beta,:specifies the weights for orthogonal polynomial basis
[in]QuadratureType,:specifies the quadrature type for numerical integration
[in]AlphaNI,BetaNI,:specifies the weights for the calculation of the weights and integration points
[in]CollocationType,:specifies the quadrature type for the collocation points
[in]AlphaCP,BetaCP,:specifies the weights for the calculation of the coordinates of the collocation points
void ShapeFunctions::SetShapeFunctionsAttributes ( ShapeFunctionsAttributes_S ShapeFunctionsAttributes,
NumericalIntegrationAttributes_S NumericalIntegrationAttributes,
collocationPointsAttributes_S CollocationPointsAttributes 
)

Sets the class attributes using as input parameters the ShapeFunctionsAttributes_S, NumericalIntegrationAttributes_S and CollocationPointsAttributes_S attributes structs.

Parameters:
[in]ShapeFunctionsAttributes,:attributes for the shape functions using the ShapeFunctionsAttributes_S struct
[in]NumericalIntegrationAttributes,:attributes for the numerical integration using the NumericalIntegrationAttributes_S struct
[in]CollocationPointsAttributesr,:attributes for the collocation points using the CollocationPointsAttributes_S struct

The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Friends Defines