ElemData
It is a data type for storing the element-data information.
The methods related to this data structure are in ElementDataMethods, BoundaryDataMethods, FacetDataMethods
TYPE :: ElemData_
INTEGER(I4B) :: globalElemNum = 0
INTEGER(I4B) :: localElemNum = 0
INTEGER(I4B) :: elementType = INTERNAL_ELEMENT
INTEGER(I4B), ALLOCATABLE :: globalNodes(:)
INTEGER(I4B), ALLOCATABLE :: globalElements(:)
INTEGER(I4B), ALLOCATABLE :: boundaryData(:)
CONTAINS
PROCEDURE, PUBLIC, PASS( obj ) :: Display => elemData_Display
END TYPE ElemData_
globalElemNumglobal element numberlocalElemNumlocal element numberelementTypefollowing element types are defined:BOUNDARY_ELEMENT: If the element contains the boundary node of the mesh, then it will be called the boundary elementINTERNAL_ELEMENT: If the element does not contain the boundary node of the mesh, then it will be called the internal element
globalNodesnodes contained in the element, i.e., connectivityglobalElementscontains the information about the elements surrounding an element. This is explained below:
Let us say that globalElem1, globalElem2, and globalElem3 surround a local element ielem (its global element number is globalElem), then
globalElements( [1,2,3] )containsglobalElem1,pFace,nFaceglobalElements( [4,5,6] )containsglobalElem2,pFace,nFaceglobalElements( [7,8,9] )containsglobalElem3,pFace,nFace.
Here, pFace is the local-facet-number of parent element, i.e., globalElem (ielem), which is connected to the nFace (local-facet-number) of the neighboring element.
boundaryDataIf an element contains the boundary node of the mesh, then it is considered as a boundary element. Ifielis a boundary element, thenboudnaryDatacontains the local-facet-numbers ofielwhich coincides with the mesh boundary. It may happen that a boundary element has no boundary face (but only a single boundary node), in this caseboundaryDatawill have zero size.