Structure
The structure of FEDomain CLASS is given below.
TYPE, EXTENDS(AbstractDomain_) :: FEDomain_
PRIVATE
CLASS(AbstractMesh_), POINTER :: meshVolume => NULL()
!! meshVolume list of meshes of volume entities
CLASS(AbstractMesh_), POINTER :: meshSurface => NULL()
!! meshSurface list of meshes of surface entities
CLASS(AbstractMesh_), POINTER :: meshCurve => NULL()
!! meshCurve list of meshes of curve entities
CLASS(AbstractMesh_), POINTER :: meshPoint => NULL()
!! meshPoint list of meshes of point entities
CLASS(AbstractMesh_), POINTER :: mesh => NULL()
!! mesh points to meshVolume for nsd = 3
!! mesh points to meshSurface for nsd = 2
!! mesh points to meshCurve for nsd = 1
!! mesh points to meshPoint for nsd = 0
END TYPE FEDomain_
-
isInitiatedIt is true if the domain is initiated. -
engineIt is the name of the engine used to create the mesh -
majorVersionIt is the major version of the mesh engine -
minorVersionIt is the minor version of the mesh engine -
versionthis is the version of the mesh engine -
nsdthis is the spatial dimension of the domain -
maxNptrs, the largest node number in the domain -
minNptrs, the smallest node number in the domain -
isElemNumberSparseTrue if the element numbers are sparse -
tEntitiesForNodesTotal number of entities for the nodes -
tEntitiesForElementstotal number of entities for the mesh. -
tElementsIt is an integer vector of length 4. Lower bound is 0 and upper bound is 1.tElements(0)denotes the total number of point elementstElements(1)denotes the total number of curve elementstElements(2)denotes the total number of surface elementstElements(3)denotes the total number of volume elements.
-
tEntitiesIt is an integer vector of length 4. It denotes the total number of entities of a given co dimension.tEntities(0)total number of entities (mesh) of point elementstEntities(1)total number of entities (mesh) of curve elementstEntities(2)total number of entities (mesh) of surface elementstEntities(3)total number of entities (mesh) of volume elements.
-
nodeCoordnodal coordinates. rows of nodeCoord represent the spatial dimension. columns of nodeCoord represents the spatial node number. -
local_nptrsIt is the index mapping which converts global node number to local node number. -
global_nptrs, local to global node number mapping. -
meshListmeshList(0)list of meshes of point entitiesmeshList( 1 )list of meshes of line entitiesmeshList( 2 )list of meshes of surface entitiesmeshList( 3 )list of meshes of volume entities
meshFacetData mesh facet data is given below.
TYPE MeshFacetData_
INTEGER(I4B) :: masterMesh = 0
INTEGER(I4B) :: slaveMesh = 0
INTEGER(I4B), ALLOCATABLE :: masterCellNumber(:)
INTEGER(I4B), ALLOCATABLE :: slaveCellNumber(:)
INTEGER(I4B), ALLOCATABLE :: masterLocalFacetID(:)
INTEGER(I4B), ALLOCATABLE :: slaveLocalFacetID(:)
! CLASS( Halo_ ), POINTER :: halo => NULL()
END TYPE MeshFacetData_
meshMap contains the connectivity of meshes of dimension nsd (that is, meshes of cell ).
Let us say there are meshes of cell elements. That is,
- In 1D, cell means line elements
- In 2D, cell means surface elements
- In 3D, cell means volume elements
Then, we constructs a sparse matrix, , of dimension . If is 1 then mesh-I and mesh-J are connected with each other. Otherwise, they are not connected with each other. This information is stored in an instance of CSRSparsity in meshMap