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

This class manages the nodes (or modes) when the problem uses high order FE. There are specialized methods according to the problem dimension and to the topological entity. When needed those methods generates nodes and update the incidence for the whole mesh. More...

#include <HighOrder.h>

List of all members.

Public Member Functions

 HighOrder (HighOrder &Instance)
HighOrderoperator= (HighOrder &Instance)
 Copies the contents of Instance for the object.
unsigned long GetNumberVertexNodes ()
 Returns the total number of vertex nodes (or modes) in the FE model.
unsigned long GetNumberEdgeNodes ()
 Returns the total number of edge nodes (or modes) in the FE model.
unsigned long GetNumberFaceNodes ()
 Returns the total number of face nodes (or modes) in the FE model.
unsigned long GetNumberBodyNodes ()
 Returns the total number of body nodes (or modes) in the FE model.
unsigned long GetNumberVertexDOFs ()
 Returns the total number of vertex DOFs in the FE model.
unsigned long GetNumberEdgeDOFs ()
 Returns the total number of edge DOFs in the FE model.
unsigned long GetNumberFaceDOFs ()
 Returns the total number of face DOFs in the FE model.
unsigned long GetNumberBodyDOFs ()
 Returns the total number of body DOFs in the FE model.
unsigned long GetGlobalNumNodes ()
 Returns the global number of nodes.
void Print (FILE *File, char *Message="")
 Prints the parameters of the FE groups to an ASCII file.
void Save (char *Tabname, int Version, char *Filename)
 Writes class data to a binary database.
void Save (FILE *File)
 Writes class information to a binary file.
void Restore (char *Tabname, int Version, char *Filename)
 Restores class data (written using the Save method) from a binary file.
void Restore (FILE *File)
 Restores class data (written using Save()) form a binary file.
void Free ()
 Releases the physical memory allocate for the groups.
void BuildHighOrder (FEGroups &Groups, BoundaryData &BData, GeometryMesh &GeoMsh, ElementElementTable &ElemElemTab, unsigned long NumInputNodes, unsigned long Dimension)
 Manages the HighOrder class.
void BuildHighOrderNodes (FEGroups &Groups, BoundaryData &BData, GeometryMesh &GeoMsh, ElementElementTable &ElemElemTab, MeshID_E MeshID)
 Manages the HighOrder class.
void BuildHighOrderNodes1DMatrices (FEGroups &Groups, ElementElementTable &ElemElemTab, MeshID_E MeshID)
 Manages the HighOrder class.

Protected Member Functions

void pUniformMatching2DEdgeNodes (FEGroups &Groups, ElementElementTable &ElemElemTab, MeshID_E MeshID)
 Generates the edge nodes (or modes) for pUniform 2D meshes.
void pUniformMatching3DEdgeNodes (FEGroups &Groups, ElementElementTable &ElemElemTab, MeshID_E MeshID)
 Generates the edge nodes (or modes) for pUniform 3D meshes.
void pUniformMatching3DFaceNodes (FEGroups &Groups, ElementElementTable &ElemElemTab, MeshID_E MeshID)
 Generates the face nodes (or modes) for pUniform 3D meshes.
void pUniformNumberingInternalNodes (FEGroups &Groups, MeshID_E MeshID)
 Generates the body nodes (or modes) for pUniform 3D meshes.

Protected Attributes

unsigned long TotalNumVertexNodes
 Stores the total number of vertex nodes (or modes) in the FE model.
unsigned long TotalNumEdgeNodes
 Stores the total number of edge nodes (or modes) in the FE model.
unsigned long TotalNumFaceNodes
 Stores the total number of face nodes (or modes) in the FE model.
unsigned long TotalNumBodyNodes
 Stores the total number of body nodes (or modes) in the FE model.
unsigned long TotalNumVertexDOFs
 Stores the total number of vertex DOFs in the FE model.
unsigned long TotalNumEdgeDOFs
 Stores the total number of edge DOFs in the FE model.
unsigned long TotalNumFaceDOFs
 Stores the total number of face DOFs in the FE model.
unsigned long TotalNumBodyDOFs
 Stores the total number of body DOFs in the FE model.
unsigned long GlobalNumNodes
 Used to account high-order nodes.
unsigned long Dim
 Problem dimesion.

Detailed Description

This class manages the nodes (or modes) when the problem uses high order FE. There are specialized methods according to the problem dimension and to the topological entity. When needed those methods generates nodes and update the incidence for the whole mesh.

Author:
Fabiano Fernandes Bargos
Date:
February/03/2011

Member Function Documentation

void HighOrder::BuildHighOrder ( FEGroups Groups,
BoundaryData BData,
GeometryMesh GeoMsh,
ElementElementTable ElemElemTab,
unsigned long  NumInputNodes,
unsigned long  Dimension 
)

Manages the HighOrder class.

Note:
The nodes are generated element by element, edge by edge. If the work element has a neighbour both incidences are updated.
Parameters:
[in]Groups- instance of the FEGroups class whichStores information for the finite element groups for the discrete model.
[in]MeshID- type of mesh.
[in]ElemElemTab- instance of the ElementElementTable class.
void HighOrder::BuildHighOrderNodes ( FEGroups Groups,
BoundaryData BData,
GeometryMesh GeoMsh,
ElementElementTable ElemElemTab,
MeshID_E  MeshID 
)

Manages the HighOrder class.

Note:
The nodes are generated element by element, edge by edge. If the work element has a neighbour both incidences are updated.
Parameters:
[in]Groups- instance of the FEGroups class whichStores information for the finite element groups for the discrete model.
[in]MeshID- type of mesh.
[in]ElemElemTab- instance of the ElementElementTable class.
void HighOrder::BuildHighOrderNodes1DMatrices ( FEGroups Groups,
ElementElementTable ElemElemTab,
MeshID_E  MeshID 
)

Manages the HighOrder class.

Note:
The nodes are generated element by element, edge by edge. If the work element has a neighbour both incidences are updated.
Parameters:
[in]Groups- instance of the FEGroups class whichStores information for the finite element groups for the discrete model.
[in]MeshID- type of mesh.
[in]ElemElemTab- instance of the ElementElementTable class.
void HighOrder::Free ( )

Releases the physical memory allocate for the groups.

Note:
Statically allocated variables are set to zero.
HighOrder & HighOrder::operator= ( HighOrder Instance)

Copies the contents of Instance for the object.

Parameters:
[in]Instance- instance of HighOrder.
Returns:
Reference of the current object.
void HighOrder::Print ( FILE *  File,
char *  Message = "" 
)

Prints the parameters of the FE groups to an ASCII file.

Parameters:
[in]File- pointer to the ASCII file.
[in]Message- optional message to be written to the ASCII file.
void HighOrder::pUniformMatching2DEdgeNodes ( FEGroups Groups,
ElementElementTable ElemElemTab,
MeshID_E  MeshID 
) [protected]

Generates the edge nodes (or modes) for pUniform 2D meshes.

Note:
The nodes are generated element by element, edge by edge. If the work element has a neighbour both incidences are updated.
Parameters:
[in]Groups- instance of the FEGroups class whichStores information for the finite element groups for the discrete model.
[in]MeshID- type of mesh.
[in]ElemElemTab- instance of the ElementElementTable class.
void HighOrder::pUniformMatching3DEdgeNodes ( FEGroups Groups,
ElementElementTable ElemElemTab,
MeshID_E  MeshID 
) [protected]

Generates the edge nodes (or modes) for pUniform 3D meshes.

Note:
The nodes are generated element by element, edge by edge. If the work element has a neighbour both incidences are updated.
Parameters:
[in]Groups- instance of the FEGroups class whichStores information for the finite element groups for the discrete model.
[in]MeshID- type of mesh.
[in]ElemElemTab- instance of the ElementElementTable class.
void HighOrder::pUniformMatching3DFaceNodes ( FEGroups Groups,
ElementElementTable ElemElemTab,
MeshID_E  MeshID 
) [protected]

Generates the face nodes (or modes) for pUniform 3D meshes.

Note:
The nodes are generated element by element, face by face. If the work element has a neighbour both incidences are updated.
Parameters:
[in]Groups- instance of the FEGroups class whichStores information for the finite element groups for the discrete model.
[in]MeshID- type of mesh.
[in]ElemElemTab- instance of the ElementElementTable class.
void HighOrder::pUniformNumberingInternalNodes ( FEGroups Groups,
MeshID_E  MeshID 
) [protected]

Generates the body nodes (or modes) for pUniform 3D meshes.

Note:
The nodes are generated element by element and the work element is updated.
Parameters:
[in]Groups- instance of the FEGroups class whichStores information for the finite element groups for the discrete model.
[in]MeshID- type of mesh.
void HighOrder::Restore ( char *  Tabname,
int  Version,
char *  Filename 
)

Restores class data (written using the Save method) from a binary file.

Parameters:
[in]Tabname- name of the database table where the data will be stored.
[in]Version- data version number.
[in]Filename- database prefix filename. Two files will be used: filename.dir and filename.bdg. The first one stores keys to the data stored in the filename.bdg file.
void HighOrder::Restore ( FILE *  File)

Restores class data (written using Save()) form a binary file.

Parameters:
[in]File- pointer to the binary file.
void HighOrder::Save ( char *  Tabname,
int  Version,
char *  Filename 
)

Writes class data to a binary database.

Parameters:
[in]Tabname- name of the database table where the data will be stored.
[in]Version- data version number.
[in]Filename- database prefix filename. Two files will be used: filename.dir and filename.bdg. The first one stores keys to the data stored in the filename.bdg file.
void HighOrder::Save ( FILE *  File)

Writes class information to a binary file.

Note:
The current object state can be completely recovered when applying the Restore() operation.
Parameters:
[in]File- pointer to the binary file.

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