diff --git a/docs/docs-api/Mesh/BoundaryFacetData_.md b/docs/docs-api/Mesh/BoundaryFacetData_.md deleted file mode 100644 index 0be57431..00000000 --- a/docs/docs-api/Mesh/BoundaryFacetData_.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: BoundaryFacetData -sidebar_position: 5 ---- - -Data storage for boundary elements (i.e., facets which coincides with the boundary of mesh) - -`BoundaryFacetData_` represents the domain boundary elements which are located -on the boundary of the domain. - -Of course `domainFacet` elements are located on the mesh's boundary with only difference that these elements do not have `slaveCellNumber` - -## Structure - -```fortran -TYPE BoundaryFacetData_ - INTEGER( I4B ) :: masterCellNumber = 0 - INTEGER( I4B ) :: masterLocalFacetID = 0 - INTEGER( I4B ) :: elementType = 0 - CONTAINS - PROCEDURE, PUBLIC, PASS( obj ) :: Display => BoundaryFacetData_Display -END TYPE BoundaryFacetData_ -``` - -:::info `masterCellNumber` -::: - -Master cell number. - -:::info `masterLocalFacetID` -::: - -Local face number in the master cell. - -:::info `elementType` -::: - -This variable distinguishes between domain boundary element and mesh boundary element. - -## Implementation details - -This data structure is initiated by the method called [`InitiateFacetElements`](./InitiateFacetElements.md). - -The information is further refined by [`SetDomainFacetElement`](../Domain/SetDomainFacetElement.md) from [Domain_](../Domain/Domain_.md) class. - -### Mesh boundary element - -A mesh boundary element is a facet element which is located at the mesh's boundary. - -### Domain boundary element - -A domain boundary element is a facet element which is located at the mesh's boundary. diff --git a/docs/docs-api/Mesh/Deallocate.md b/docs/docs-api/Mesh/Deallocate.md new file mode 100644 index 00000000..5e98380c --- /dev/null +++ b/docs/docs-api/Mesh/Deallocate.md @@ -0,0 +1,16 @@ +# Deallocate + +Deallocate the data stored in the mesh object. + +:::info +This method is overloaded in Mesh. +::: + + +```fortran +INTERFACE + MODULE SUBROUTINE obj_Deallocate(obj) + CLASS(Mesh_), INTENT(INOUT) :: obj + END SUBROUTINE obj_Deallocate +END INTERFACE +``` diff --git a/docs/docs-api/Mesh/Display.md b/docs/docs-api/Mesh/Display.md index d2d2d04f..3c54a420 100644 --- a/docs/docs-api/Mesh/Display.md +++ b/docs/docs-api/Mesh/Display.md @@ -1,5 +1,11 @@ # Display +Display the contents of the mesh object. + +:::info +This method is overloaded in Mesh. +::: + ## Interface ```fortran diff --git a/docs/docs-api/Mesh/DisplayBoundaryFacetData.md b/docs/docs-api/Mesh/DisplayBoundaryFacetData.md deleted file mode 100644 index e5548186..00000000 --- a/docs/docs-api/Mesh/DisplayBoundaryFacetData.md +++ /dev/null @@ -1,13 +0,0 @@ -# DisplayBoundaryFacetData - -## Interface - -```fortran -INTERFACE - MODULE SUBROUTINE mesh_DisplayBoundaryFacetData(obj, msg, unitno) - CLASS(Mesh_), INTENT(IN) :: obj - CHARACTER(*), INTENT(IN) :: msg - INTEGER(I4B), OPTIONAL, INTENT(IN) :: unitno - END SUBROUTINE mesh_DisplayBoundaryFacetData -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/DisplayElementData.md b/docs/docs-api/Mesh/DisplayElementData.md deleted file mode 100644 index 22b7ad6a..00000000 --- a/docs/docs-api/Mesh/DisplayElementData.md +++ /dev/null @@ -1,13 +0,0 @@ -# DisplayElementData - -## Interface - -```fortran -INTERFACE - MODULE SUBROUTINE mesh_DisplayElementData(obj, msg, unitno) - CLASS(Mesh_), INTENT(IN) :: obj - CHARACTER(*), INTENT(IN) :: msg - INTEGER(I4B), OPTIONAL, INTENT(IN) :: unitno - END SUBROUTINE mesh_DisplayElementData -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/DisplayFacetElemSD.md b/docs/docs-api/Mesh/DisplayFacetElemSD.md deleted file mode 100644 index 7ebb5a9e..00000000 --- a/docs/docs-api/Mesh/DisplayFacetElemSD.md +++ /dev/null @@ -1,13 +0,0 @@ -# DisplayFacetElemSD - -## Interface - -```fortran -INTERFACE - MODULE SUBROUTINE mesh_DisplayFacetElements(obj, msg, unitno) - CLASS(Mesh_), INTENT(IN) :: obj - CHARACTER(*), INTENT(IN) :: msg - INTEGER(I4B), OPTIONAL, INTENT(IN) :: unitno - END SUBROUTINE mesh_DisplayFacetElements -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/DisplayFacetElements.md b/docs/docs-api/Mesh/DisplayFacetElements.md index f88e3b4e..2887d290 100644 --- a/docs/docs-api/Mesh/DisplayFacetElements.md +++ b/docs/docs-api/Mesh/DisplayFacetElements.md @@ -1,5 +1,7 @@ # DisplayFacetElements +Display the facet elements of a mesh. + ## Interface ```fortran diff --git a/docs/docs-api/Mesh/DisplayInternalFacetData.md b/docs/docs-api/Mesh/DisplayInternalFacetData.md deleted file mode 100644 index f4b66d68..00000000 --- a/docs/docs-api/Mesh/DisplayInternalFacetData.md +++ /dev/null @@ -1,13 +0,0 @@ -# DisplayInternalFacetData - -## Interface - -```fortran -INTERFACE - MODULE SUBROUTINE mesh_DisplayInternalFacetData(obj, msg, unitno) - CLASS(Mesh_), INTENT(IN) :: obj - CHARACTER(*), INTENT(IN) :: msg - INTEGER(I4B), OPTIONAL, INTENT(IN) :: unitno - END SUBROUTINE mesh_DisplayInternalFacetData -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/DisplayNodeData.md b/docs/docs-api/Mesh/DisplayNodeData.md deleted file mode 100644 index 1ea1ab9a..00000000 --- a/docs/docs-api/Mesh/DisplayNodeData.md +++ /dev/null @@ -1,13 +0,0 @@ -# DisplayNodeData - -## Interface - -```fortran -INTERFACE - MODULE SUBROUTINE mesh_DisplayNodeData(obj, msg, unitno) - CLASS(Mesh_), INTENT(IN) :: obj - CHARACTER(*), INTENT(IN) :: msg - INTEGER(I4B), OPTIONAL, INTENT(IN) :: unitno - END SUBROUTINE mesh_DisplayNodeData -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/ElemData_.md b/docs/docs-api/Mesh/ElemData_.md deleted file mode 100644 index c77d8740..00000000 --- a/docs/docs-api/Mesh/ElemData_.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_position: 3 ---- - -# ElemData - -It is a data type for storing the element-data information. - -The methods related to this data structure are in ElementDataMethods, BoundaryDataMethods, FacetDataMethods - -```fortran -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_ -``` - -- `globalElemNum` global element number -- `localElemNum` local element number -- `elementType` following element types are defined: - - `BOUNDARY_ELEMENT`: If the element contains the boundary node of the mesh, then it will be called the boundary element - - `INTERNAL_ELEMENT`: If the element does not contain the boundary node of the mesh, then it will be called the internal element -- `globalNodes` nodes contained in the element, i.e., connectivity -- `globalElements` contains 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] )` contains `globalElem1`, `pFace`, `nFace` -- `globalElements( [4,5,6] )` contains `globalElem2`, `pFace`, `nFace` -- `globalElements( [7,8,9] )` contains `globalElem3`, `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. - -- `boundaryData` If an element contains the boundary node of the mesh, then it is considered as a boundary element. If `iel` is a boundary element, then `boudnaryData` contains the local-facet-numbers of `iel` which coincides with the mesh boundary. It may happen that a boundary element has no boundary face (but only a single boundary node), in this case `boundaryData` will have zero size. diff --git a/docs/docs-api/Mesh/Export.md b/docs/docs-api/Mesh/Export.md new file mode 100644 index 00000000..4f1be400 --- /dev/null +++ b/docs/docs-api/Mesh/Export.md @@ -0,0 +1 @@ +# Export diff --git a/docs/docs-api/Mesh/GetBoundaryElementData.md b/docs/docs-api/Mesh/GetBoundaryElementData.md deleted file mode 100644 index 90e563d1..00000000 --- a/docs/docs-api/Mesh/GetBoundaryElementData.md +++ /dev/null @@ -1,32 +0,0 @@ -# GetBoundaryElementData - -Returns the boundary element data. - -## Interface - - - - -```fortran -MODULE PURE FUNCTION getBoundaryElementData(obj, globalElement) & - & RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalElement - INTEGER(I4B), ALLOCATABLE :: ans(:) -END FUNCTION getBoundaryElementData -``` - - - - - -import EXAMPLE5 from "./examples/_GetBoundaryElementData_test_1.md"; - - - - - - - - - diff --git a/docs/docs-api/Mesh/GetBoundaryNptrs.md b/docs/docs-api/Mesh/GetBoundaryNptrs.md deleted file mode 100644 index 33066f82..00000000 --- a/docs/docs-api/Mesh/GetBoundaryNptrs.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetBoundaryNptrs - -## Interface - -```fortran - MODULE PURE FUNCTION getBoundaryNptrs(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), ALLOCATABLE :: ans(:) - END FUNCTION getBoundaryNptrs -``` diff --git a/docs/docs-api/Mesh/GetBoundingBox.md b/docs/docs-api/Mesh/GetBoundingBox.md deleted file mode 100644 index 346c34e2..00000000 --- a/docs/docs-api/Mesh/GetBoundingBox.md +++ /dev/null @@ -1,21 +0,0 @@ -# GetBoundingBox - -## Interface - -```fortran - MODULE PURE FUNCTION getBoundingBox(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - TYPE(BoundingBox_) :: ans - END FUNCTION getBoundingBox -``` - -```fortran - MODULE PURE FUNCTION getBoundingBox(obj, nodes, local_nptrs) & - & RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - REAL(DFP), INTENT(IN) :: nodes(:, :) - !! Nodal coordinates in XiJ format - INTEGER(I4B), OPTIONAL, INTENT(IN) :: local_nptrs(:) - TYPE(BoundingBox_) :: ans - END FUNCTION getBoundingBox -``` diff --git a/docs/docs-api/Mesh/GetBoundingEntity.md b/docs/docs-api/Mesh/GetBoundingEntity.md deleted file mode 100644 index 79df25d0..00000000 --- a/docs/docs-api/Mesh/GetBoundingEntity.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetBoundingEntity - -## Interface - -```fortran - MODULE PURE FUNCTION getBoundingEntity(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), ALLOCATABLE :: ans(:) - END FUNCTION getBoundingEntity -``` diff --git a/docs/docs-api/Mesh/GetCellNumber.md b/docs/docs-api/Mesh/GetCellNumber.md deleted file mode 100644 index 4999f68a..00000000 --- a/docs/docs-api/Mesh/GetCellNumber.md +++ /dev/null @@ -1,14 +0,0 @@ -# GetCellNumber - -## Interface - -```fortran - MODULE PURE FUNCTION getCellNumber( obj, facetElement, & - & elementType, facetBoundary ) RESULT( ans ) - CLASS( Mesh_ ), INTENT( IN ) :: obj - INTEGER( I4B ), INTENT( IN ) :: facetElement - INTEGER( I4B ), INTENT( IN ) :: elementType - INTEGER( I4B ), OPTIONAL, INTENT( IN ) :: facetBoundary - INTEGER( I4B ) :: ans( 2 ) - END FUNCTION getCellNumber -``` diff --git a/docs/docs-api/Mesh/GetConnectivity.md b/docs/docs-api/Mesh/GetConnectivity.md deleted file mode 100644 index 62517693..00000000 --- a/docs/docs-api/Mesh/GetConnectivity.md +++ /dev/null @@ -1,11 +0,0 @@ -# GetConnectivity - -## Interface - -```fortran - MODULE PURE FUNCTION getConnectivity(obj, globalElement) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalElement - INTEGER(I4B), ALLOCATABLE :: ans(:) - END FUNCTION getConnectivity -``` diff --git a/docs/docs-api/Mesh/GetElemNum.md b/docs/docs-api/Mesh/GetElemNum.md deleted file mode 100644 index 3b426591..00000000 --- a/docs/docs-api/Mesh/GetElemNum.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetElemNum - -## Interface - -```fortran - MODULE FUNCTION getElemNum(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), ALLOCATABLE :: ans(:) - END FUNCTION getElemNum -``` diff --git a/docs/docs-api/Mesh/GetElementToElements.md b/docs/docs-api/Mesh/GetElementToElements.md deleted file mode 100644 index 559abc7e..00000000 --- a/docs/docs-api/Mesh/GetElementToElements.md +++ /dev/null @@ -1,40 +0,0 @@ -# GetElementToElements - -Get element to elements connectivity information. - -## Interface - - - - -```fortran -MODULE PURE FUNCTION getElementToElements(obj, globalElement, & - & onlyElements) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - !! mesh data - INTEGER(I4B), INTENT(IN) :: globalElement - !! Global element number - LOGICAL(LGT), OPTIONAL, INTENT(IN) :: onlyElements - !! If onlyElements is absent or it is FALSE then full information - !! about the elements connected to element iel is given - !! If onlyElements is present and it is TRUE then only the - !! information about the elements connected to element iel is given - INTEGER(I4B), ALLOCATABLE :: ans(:, :) - !! list of elements surrounding elements -END FUNCTION getElementToElements -``` - - - - - -import EXAMPLE5 from "./examples/_GetElementToElements_test_1.md"; - - - - - - - - - diff --git a/docs/docs-api/Mesh/GetFacetConnectivity.md b/docs/docs-api/Mesh/GetFacetConnectivity.md deleted file mode 100644 index 0230d074..00000000 --- a/docs/docs-api/Mesh/GetFacetConnectivity.md +++ /dev/null @@ -1,31 +0,0 @@ -# GetFacetConnectivity - -## Interface - -```fortran - MODULE PURE FUNCTION getFacetConnectivity( obj, facetElement, & - & elementType, isMaster, facetBoundary ) RESULT( ans ) - CLASS( Mesh_ ), INTENT( IN ) :: obj - INTEGER( I4B ), INTENT( IN ) :: facetElement - INTEGER( I4B ), INTENT( IN ) :: elementType - LOGICAL( LGT ), INTENT( IN ) :: isMaster - !! if isMaster is true then connectivity of facet in master-cell - !! is returned, otherwise connectivity of facet in slave-cell - !! is returned. This is only applicable for internal facet element - !! because for domain facet we do not have slave-cell. - !! Currently, we do not support slave-cell for meshFacet because - !! the slave of meshFacet lives in different instance of - INTEGER( I4B ), OPTIONAL, INTENT( IN ) :: facetBoundary - INTEGER( I4B ), ALLOCATABLE :: ans( : ) - END FUNCTION getFacetConnectivity -``` - -```fortran - MODULE PURE FUNCTION getFacetConnectivity( obj, globalElement, & - & iface ) RESULT( ans ) - CLASS( Mesh_ ), INTENT( IN ) :: obj - INTEGER( I4B ), INTENT( IN ) :: globalElement - INTEGER( I4B ), INTENT( IN ) :: iface - INTEGER( I4B ), ALLOCATABLE :: ans( : ) - END FUNCTION getFacetConnectivity -``` diff --git a/docs/docs-api/Mesh/GetFacetElementType.md b/docs/docs-api/Mesh/GetFacetElementType.md deleted file mode 100644 index fae6cee9..00000000 --- a/docs/docs-api/Mesh/GetFacetElementType.md +++ /dev/null @@ -1,12 +0,0 @@ -# GetFacetElementType - -## Interface - -```fortran - MODULE PURE FUNCTION getFacetElementType( obj, globalElement ) & - & RESULT( ans ) - CLASS( Mesh_ ), INTENT( IN ) :: obj - INTEGER( I4B ), INTENT( IN ) :: globalElement - INTEGER( I4B ), ALLOCATABLE :: ans( : ) - END FUNCTION getFacetElementType -``` diff --git a/docs/docs-api/Mesh/GetGlobalElemNumber.md b/docs/docs-api/Mesh/GetGlobalElemNumber.md deleted file mode 100644 index 9c50f4d6..00000000 --- a/docs/docs-api/Mesh/GetGlobalElemNumber.md +++ /dev/null @@ -1,20 +0,0 @@ -# GetGlobalElemNumber - -## Interface - -```fortran - MODULE PURE FUNCTION getGlobalElemNumber(obj, LocalElement) & - & RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: LocalElement(:) - INTEGER(I4B) :: ans(SIZE(LocalElement)) - END FUNCTION getGlobalElemNumber -``` - -```fortran - MODULE PURE FUNCTION getGlobalElemNumber(obj, LocalElement) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: LocalElement - INTEGER(I4B) :: ans - END FUNCTION getGlobalElemNumber -``` diff --git a/docs/docs-api/Mesh/GetGlobalNodeNumber.md b/docs/docs-api/Mesh/GetGlobalNodeNumber.md deleted file mode 100644 index 5544b193..00000000 --- a/docs/docs-api/Mesh/GetGlobalNodeNumber.md +++ /dev/null @@ -1,19 +0,0 @@ -# GetGlobalNodeNumber - -## Interface - -```fortran - MODULE PURE FUNCTION getGlobalNodeNumber(obj, localNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: localNode(:) - INTEGER(I4B) :: ans(SIZE(localNode)) - END FUNCTION getGlobalNodeNumber -``` - -```fortran - MODULE PURE FUNCTION getGlobalNodeNumber(obj, localNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: localNode - INTEGER(I4B) :: ans - END FUNCTION getGlobalNodeNumber -``` diff --git a/docs/docs-api/Mesh/GetInternalNptrs.md b/docs/docs-api/Mesh/GetInternalNptrs.md deleted file mode 100644 index 1c513583..00000000 --- a/docs/docs-api/Mesh/GetInternalNptrs.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetInternalNptrs - -## Interface - -```fortran - MODULE PURE FUNCTION getInternalNptrs(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), ALLOCATABLE :: ans(:) - END FUNCTION getInternalNptrs -``` diff --git a/docs/docs-api/Mesh/GetLocalElemNumber.md b/docs/docs-api/Mesh/GetLocalElemNumber.md deleted file mode 100644 index ca8f534a..00000000 --- a/docs/docs-api/Mesh/GetLocalElemNumber.md +++ /dev/null @@ -1,19 +0,0 @@ -# GetLocalElemNumber - -## Interface - -```fortran - MODULE PURE FUNCTION getLocalElemNumber(obj, GlobalElement) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: GlobalElement(:) - INTEGER(I4B) :: ans(SIZE(GlobalElement)) - END FUNCTION getLocalElemNumber -``` - -```fortran - MODULE PURE FUNCTION getLocalElemNumber(obj, GlobalElement) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: GlobalElement - INTEGER(I4B) :: ans - END FUNCTION getLocalElemNumber -``` diff --git a/docs/docs-api/Mesh/GetLocalFacetID.md b/docs/docs-api/Mesh/GetLocalFacetID.md deleted file mode 100644 index ac258cbd..00000000 --- a/docs/docs-api/Mesh/GetLocalFacetID.md +++ /dev/null @@ -1,15 +0,0 @@ -# GetLocalFacetID - -## Interface - -```fortran - MODULE PURE FUNCTION getLocalFacetID( obj, facetElement, & - & elementType, isMaster, facetBoundary ) RESULT( ans ) - CLASS( Mesh_ ), INTENT( IN ) :: obj - INTEGER( I4B ), INTENT( IN ) :: facetElement - INTEGER( I4B ), INTENT( IN ) :: elementType - LOGICAL( LGT ), INTENT( IN ) :: isMaster - INTEGER( I4B ), OPTIONAL, INTENT( IN ) :: facetBoundary - INTEGER( I4B ) :: ans - END FUNCTION getLocalFacetID -``` diff --git a/docs/docs-api/Mesh/GetLocalNodeNumber.md b/docs/docs-api/Mesh/GetLocalNodeNumber.md deleted file mode 100644 index a3c5fa1d..00000000 --- a/docs/docs-api/Mesh/GetLocalNodeNumber.md +++ /dev/null @@ -1,19 +0,0 @@ -# GetLocalNodeNumber - -## Interface - -```fortran - MODULE PURE FUNCTION getLocalNodeNumber(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode(:) - INTEGER(I4B) :: ans(SIZE(globalNode)) - END FUNCTION getLocalNodeNumber -``` - -```fortran - MODULE PURE FUNCTION getLocalNodeNumber(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode - INTEGER(I4B) :: ans - END FUNCTION getLocalNodeNumber -``` diff --git a/docs/docs-api/Mesh/GetMasterCellNumber.md b/docs/docs-api/Mesh/GetMasterCellNumber.md deleted file mode 100644 index 939c6858..00000000 --- a/docs/docs-api/Mesh/GetMasterCellNumber.md +++ /dev/null @@ -1,15 +0,0 @@ -# GetMasterCellNumber - -## Interface - -```fortran - MODULE PURE FUNCTION getMasterCellNumber( obj, facetElement, & - & elementType, facetBoundary )& - & RESULT( ans ) - CLASS( Mesh_ ), INTENT( IN ) :: obj - INTEGER( I4B ), INTENT( IN ) :: facetElement - INTEGER( I4B ), INTENT( IN ) :: elementType - INTEGER( I4B ), OPTIONAL, INTENT( IN ) :: facetBoundary - INTEGER( I4B ) :: ans - END FUNCTION getMasterCellNumber -``` diff --git a/docs/docs-api/Mesh/GetNodeToElements.md b/docs/docs-api/Mesh/GetNodeToElements.md deleted file mode 100644 index 33552373..00000000 --- a/docs/docs-api/Mesh/GetNodeToElements.md +++ /dev/null @@ -1,51 +0,0 @@ -# GetNodeToElements - -Get node to elements connectivity. - -There are two interfaces to this method. - -## Interface - -### Interface 1 - - - - -```fortran -MODULE PURE FUNCTION getNodeToElements(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - !! mesh data - INTEGER(I4B), INTENT(IN) :: globalNode - !! global node number - INTEGER(I4B), ALLOCATABLE :: ans(:) - !! A vector of local element number -END FUNCTION getNodeToElements -``` - - - - - -import EXAMPLE5 from "./examples/_GetNodeToElements_test_1.md"; - - - - - - - - - - -### Interface 2 - -```fortran -MODULE PURE FUNCTION getNodeToElements(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - !! mesh data - INTEGER(I4B), INTENT(IN) :: globalNode(:) - !! global node number - INTEGER(I4B), ALLOCATABLE :: ans(:) - !! A vector of local element number -END FUNCTION getNodeToElements -``` diff --git a/docs/docs-api/Mesh/GetNodeToNodes.md b/docs/docs-api/Mesh/GetNodeToNodes.md deleted file mode 100644 index 03ff9155..00000000 --- a/docs/docs-api/Mesh/GetNodeToNodes.md +++ /dev/null @@ -1,51 +0,0 @@ -# GetNodeToNodes - -Returns node to node connectivity in the mess. - -## Interface - -There are two interfaces to this method - -### Interface 1 - - - - -```fortran -MODULE PURE FUNCTION getNodeToNodes(obj, globalNode, IncludeSelf) & - & RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode - LOGICAL(LGT), INTENT(IN) :: IncludeSelf - INTEGER(I4B), ALLOCATABLE :: ans(:) -END FUNCTION getNodeToNodes -``` - - - - - -```fortran -MODULE PURE FUNCTION getNodeToNodes(obj, globalNode, IncludeSelf) & - & RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode( : ) - LOGICAL(LGT), INTENT(IN) :: IncludeSelf - INTEGER(I4B), ALLOCATABLE :: ans(:) -END FUNCTION getNodeToNodes -``` - - - - - -import EXAMPLE11 from "./examples/_GetNodeToNodes_test_1.md"; - - - - - - - - - diff --git a/docs/docs-api/Mesh/GetNptrs.md b/docs/docs-api/Mesh/GetNptrs.md deleted file mode 100644 index 2a524c86..00000000 --- a/docs/docs-api/Mesh/GetNptrs.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetNptrs - -## Interface - -```fortran - MODULE PURE FUNCTION getNptrs(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), ALLOCATABLE :: ans(:) - END FUNCTION getNptrs -``` diff --git a/docs/docs-api/Mesh/GetOrder.md b/docs/docs-api/Mesh/GetOrder.md new file mode 100644 index 00000000..c2b401de --- /dev/null +++ b/docs/docs-api/Mesh/GetOrder.md @@ -0,0 +1,14 @@ +# GetOrder + +This function returns the order of the reference element associated with the mesh object. + +## Interface + +```fortran +INTERFACE + MODULE FUNCTION obj_GetOrder(obj) RESULT(ans) + CLASS(Mesh_), INTENT(IN) :: obj + INTEGER(I4B) :: ans + END FUNCTION obj_GetOrder +END INTERFACE +``` diff --git a/docs/docs-api/Mesh/GetParam.md b/docs/docs-api/Mesh/GetParam.md new file mode 100644 index 00000000..974ce802 --- /dev/null +++ b/docs/docs-api/Mesh/GetParam.md @@ -0,0 +1,34 @@ +# GetParam + +This subroutine returns the parameters of the mesh object. + +## Interface + +```fortran +INTERFACE + MODULE SUBROUTINE obj_GetParam(obj, & + & isInitiated, isNodeToElementsInitiated, isNodeToNodesInitiated, & + & isExtraNodeToNodesInitiated, isElementToElementsInitiated, & + & isBoundaryDataInitiated, isFacetDataInitiated, uid, & + & xidim, elemType, nsd, maxNptrs, minNptrs, & + & maxElemNum, minElemNum, tNodes, tElements, & + & minX, minY, minZ, maxX, maxY, maxZ, & + & x, y, z, tElements_topology_wise, tElemTopologies, elemTopologies) + CLASS(Mesh_), INTENT(IN) :: obj + LOGICAL(LGT), OPTIONAL, INTENT(OUT) :: isInitiated, & + & isNodeToElementsInitiated, isNodeToNodesInitiated, & + & isExtraNodeToNodesInitiated, isElementToElementsInitiated, & + & isBoundaryDataInitiated, isFacetDataInitiated + + INTEGER(I4B), OPTIONAL, INTENT(OUT) :: uid, & + & xidim, elemType, nsd, maxNptrs, minNptrs, & + & maxElemNum, minElemNum, tNodes, & + & tElements, tElements_topology_wise(8), tElemTopologies, & + & elemTopologies(8) + + REAL(DFP), OPTIONAL, INTENT(OUT) :: minX, & + & minY, minZ, maxX, maxY, maxZ, & + & x, y, z + END SUBROUTINE obj_GetParam +END INTERFACE +``` diff --git a/docs/docs-api/Mesh/GetRefElemPointer.md b/docs/docs-api/Mesh/GetRefElemPointer.md index 42c05dd9..0a51c7d3 100644 --- a/docs/docs-api/Mesh/GetRefElemPointer.md +++ b/docs/docs-api/Mesh/GetRefElemPointer.md @@ -1,5 +1,7 @@ # GetRefElemPointer +This function returns a pointer to the reference element object associated with the mesh object. + ## Interface ```fortran diff --git a/docs/docs-api/Mesh/GetSlaveCellNumber.md b/docs/docs-api/Mesh/GetSlaveCellNumber.md deleted file mode 100644 index 8796abc6..00000000 --- a/docs/docs-api/Mesh/GetSlaveCellNumber.md +++ /dev/null @@ -1,14 +0,0 @@ -# GetSlaveCellNumber - -## Interface - -```fortran - MODULE PURE FUNCTION getSlaveCellNumber( obj, facetElement, & - & elementType, facetBoundary ) RESULT( ans ) - CLASS( Mesh_ ), INTENT( IN ) :: obj - INTEGER( I4B ), INTENT( IN ) :: facetElement - INTEGER( I4B ), INTENT( IN ) :: elementType - INTEGER( I4B ), OPTIONAL, INTENT( IN ) :: facetBoundary - INTEGER( I4B ) :: ans - END FUNCTION getSlaveCellNumber -``` diff --git a/docs/docs-api/Mesh/GetTotalBoundaryElements.md b/docs/docs-api/Mesh/GetTotalBoundaryElements.md deleted file mode 100644 index c695323f..00000000 --- a/docs/docs-api/Mesh/GetTotalBoundaryElements.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetTotalBoundaryElements - -## Interface - -```fortran - MODULE PURE FUNCTION getTotalBoundaryElements(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B) :: ans - END FUNCTION getTotalBoundaryElements -``` diff --git a/docs/docs-api/Mesh/GetTotalBoundaryFacetElements.md b/docs/docs-api/Mesh/GetTotalBoundaryFacetElements.md deleted file mode 100644 index 1b2d9d9e..00000000 --- a/docs/docs-api/Mesh/GetTotalBoundaryFacetElements.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetTotalBoundaryFacetElements - -## Interface - -```fortran - MODULE PURE FUNCTION getTotalBoundaryFacetElements( obj ) RESULT(ans) - CLASS(Mesh_), INTENT( IN ) :: obj - INTEGER( I4B ) :: ans - END FUNCTION getTotalBoundaryFacetElements -``` diff --git a/docs/docs-api/Mesh/GetTotalBoundaryNodes.md b/docs/docs-api/Mesh/GetTotalBoundaryNodes.md deleted file mode 100644 index ff1eab32..00000000 --- a/docs/docs-api/Mesh/GetTotalBoundaryNodes.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetTotalBoundaryNodes - -## Interface - -```fortran - MODULE PURE FUNCTION getTotalBoundaryNodes(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B) :: ans - END FUNCTION getTotalBoundaryNodes -``` diff --git a/docs/docs-api/Mesh/GetTotalFacetElements.md b/docs/docs-api/Mesh/GetTotalFacetElements.md index e1375d5e..14558284 100644 --- a/docs/docs-api/Mesh/GetTotalFacetElements.md +++ b/docs/docs-api/Mesh/GetTotalFacetElements.md @@ -1,5 +1,7 @@ # GetTotalFacetElements +This function returns the total number of facet elements in the mesh. + ## Interface ```fortran diff --git a/docs/docs-api/Mesh/GetTotalInternalFacetElements.md b/docs/docs-api/Mesh/GetTotalInternalFacetElements.md deleted file mode 100644 index c05e987a..00000000 --- a/docs/docs-api/Mesh/GetTotalInternalFacetElements.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetTotalInternalFacetElements - -## Interface - -```fortran - MODULE PURE FUNCTION getTotalInternalFacetElements( obj ) RESULT(ans) - CLASS(Mesh_), INTENT( IN ) :: obj - INTEGER( I4B ) :: ans - END FUNCTION getTotalInternalFacetElements -``` diff --git a/docs/docs-api/Mesh/GetTotalNodes.md b/docs/docs-api/Mesh/GetTotalNodes.md deleted file mode 100644 index 214d6776..00000000 --- a/docs/docs-api/Mesh/GetTotalNodes.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetTotalNodes - -## Interface - -```fortran - MODULE PURE FUNCTION getTotalNodes(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B) :: ans - END FUNCTION getTotalNodes -``` diff --git a/docs/docs-api/Mesh/Import.md b/docs/docs-api/Mesh/Import.md new file mode 100644 index 00000000..0c62d1ef --- /dev/null +++ b/docs/docs-api/Mesh/Import.md @@ -0,0 +1,15 @@ +# Import + +This routine reads the mesh from the meshfile which is an HDF5 file. + +```fortran +INTERFACE + MODULE SUBROUTINE obj_Import(obj, hdf5, group, dim, entities) + CLASS(Mesh_), INTENT(INOUT) :: obj + TYPE(HDF5File_), INTENT(INOUT) :: hdf5 + CHARACTER(*), OPTIONAL, INTENT(IN) :: group + INTEGER(I4B), OPTIONAL, INTENT(IN) :: dim + INTEGER(I4B), OPTIONAL, INTENT(IN) :: entities(:) + END SUBROUTINE obj_Import +END INTERFACE +``` diff --git a/docs/docs-api/Mesh/Initiate.md b/docs/docs-api/Mesh/Initiate.md deleted file mode 100644 index 95ddb14d..00000000 --- a/docs/docs-api/Mesh/Initiate.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Initiate - -Initiate an instance of Mesh. - -# Structure - -```fortran -INTERFACE - MODULE SUBROUTINE obj_Initiate(obj, hdf5, group) - CLASS(Mesh_), INTENT(INOUT) :: obj - !! mesh object - TYPE(HDF5File_), INTENT(INOUT) :: hdf5 - !! Mesh file in hdf5 file format - CHARACTER(*), INTENT(IN) :: group - !! location in HDF5 file - END SUBROUTINE obj_Initiate -END INTERFACE -``` - -## Examples - -### Converting mesh from Gmsh to easifem format - -
-Click here to see example -
- -import EXAMPLE22 from "./examples/_Initiate_test_1.md"; - - - -
-
- -### Reading surface mesh in 2D - -
-Examples -
- -import EXAMPLE43 from "./examples/_Initiate_test_2.md"; - - - -
-
- -### Reading curve mesh in 2D - -
-Examples -
- -import EXAMPLE59 from "./examples/_Initiate_test_4.md"; - - - -
-
- -### Reading more than one mesh - -
-Examples -
- -import EXAMPLE71 from "./examples/_Initiate_test_6.md"; - - - -
-
diff --git a/docs/docs-api/Mesh/InitiateBoundaryData.md b/docs/docs-api/Mesh/InitiateBoundaryData.md deleted file mode 100644 index 6eda0b31..00000000 --- a/docs/docs-api/Mesh/InitiateBoundaryData.md +++ /dev/null @@ -1,30 +0,0 @@ -# InitiateBoundaryData - -This method construct the boundary-element data. - -- It marks elements of mesh as `DOMAIN_BOUNDARY_ELEMENT` and `INTERNAL_ELEMENT`. -- In this case boundary elements are those which contains the boundary node. -- Boundary-node information is available by reading the mesh file, see mesh import method. -- It also forms `obj%elementData(ii)%boundaryData`. - -:::note -This subroutine treats all boundary element as `DOMAIN_BOUNDARY_ELEMENT` because it does not have information of surrouding mesh. However, this is not correct. This is because, not all mesh boundary elements are domain boundary elements. For example, some mesh-boundary element may be interface element between two mesh regions. This information can be corrected by calling [SetFacetElementType](../Domain/SetFacetElementType.md) method from [Domain_](../Domain/Domain_.md). -::: - -:::info -If we call [InitiateBoundaryData](../Domain/InitiateBoundaryData.md), then we do not have to call [SetFacetElementType](../Domain/SetFacetElementType.md) because the former routine makes an internal call to the latter. -::: - -This method needs following information: - -- `ElementToElements` -- `refelem` to construct the FacetElements - -```fortran -INTERFACE - MODULE SUBROUTINE InitiateBoundaryData(obj) - CLASS(Mesh_), INTENT(INOUT) :: obj - !! mesh data - END SUBROUTINE InitiateBoundaryData -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/InitiateElemSD.md b/docs/docs-api/Mesh/InitiateElemSD.md deleted file mode 100644 index 49118b54..00000000 --- a/docs/docs-api/Mesh/InitiateElemSD.md +++ /dev/null @@ -1,111 +0,0 @@ -# InitiateElemSD - -```fortran - MODULE SUBROUTINE InitiateElemSD(obj, & - & orderSpace, & - & linSpaceElem, & - & spaceElem, & - & quadTypeForSpace, & - & continuityTypeForSpace, & - & interpolTypeForSpace ) - CLASS(Mesh_), INTENT(INOUT) :: obj - INTEGER(I4B), INTENT(IN) :: orderSpace - !! integrand order in space - CLASS(ReferenceElement_), TARGET, INTENT(IN) :: linSpaceElem - !! linear (simplex) space element - CLASS(ReferenceElement_), TARGET, INTENT(IN) :: spaceElem - !! space element - CHARACTER(LEN=*), INTENT(IN) :: quadTypeForSpace - !! quadrature for space - CHARACTER(LEN=*), INTENT(IN) :: continuityTypeForSpace - !! continuity for base in space - CHARACTER(LEN=*), INTENT(IN) :: interpolTypeForSpace - !! interpolation type for base in space - END SUBROUTINE InitiateElemSD -``` - -```fortran - MODULE SUBROUTINE mesh_initiateElemSD2(obj, & - & orderSpace, & - & linSpaceElem, & - & spaceElem, & - & quadTypeForSpace, & - & continuityTypeForSpace, & - & interpolTypeForSpace, & - & orderTime, & - & linTimeElem, & - & timeElem, & - & quadTypeForTime, & - & continuityTypeForTime, & - & interpolTypeForTime, & - & tvec) - CLASS(Mesh_), INTENT(INOUT) :: obj - INTEGER(I4B), INTENT(IN) :: orderSpace - !! integrand order in space - CLASS(ReferenceElement_), TARGET, INTENT(IN) :: linSpaceElem - !! linear space element - CLASS(ReferenceElement_), TARGET, INTENT(IN) :: spaceElem - !! space element - CHARACTER(LEN=*), INTENT(IN) :: quadTypeForSpace - !! quadrature type for space - CHARACTER(LEN=*), INTENT(IN) :: continuityTypeForSpace - !! continuity type of base in space - CHARACTER(LEN=*), INTENT(IN) :: interpolTypeForSpace - !! interpol type of base in space - INTEGER(I4B), INTENT(IN) :: orderTime - !! integrand order in time - TYPE(ReferenceLine_), INTENT(IN) :: linTimeElem - !! linear time element - TYPE(ReferenceLine_), INTENT(IN) :: timeElem - !! time element - CHARACTER(LEN=*), INTENT(IN) :: quadTypeForTime - !! quadrature type of base in time - CHARACTER(LEN=*), INTENT(IN) :: continuityTypeForTime - !! continuity type of base in time - CHARACTER(LEN=*), INTENT(IN) :: interpolTypeForTime - !! interpol type of base in time - REAL(DFP), INTENT(IN) :: tvec(:) - END SUBROUTINE mesh_initiateElemSD2 -``` - -```fortran - MODULE SUBROUTINE mesh_initiateElemSD3(obj, & - & orderSpace, & - & linSpaceElem, & - & spaceElem, & - & quadTypeForSpace, & - & continuityTypeForSpace, & - & interpolTypeForSpace, & - & orderTime, & - & linTimeElem, & - & timeElem, & - & quadTypeForTime, & - & continuityTypeForTime, & - & interpolTypeForTime ) - CLASS(Mesh_), INTENT(INOUT) :: obj - INTEGER(I4B), INTENT(IN) :: orderSpace - !! integrand order in space - CLASS(ReferenceElement_), TARGET, INTENT(IN) :: linSpaceElem - !! linear space element - CLASS(ReferenceElement_), TARGET, INTENT(IN) :: spaceElem - !! space element - CHARACTER(LEN=*), INTENT(IN) :: quadTypeForSpace - !! quadrature type of base in space - CHARACTER(LEN=*), INTENT(IN) :: continuityTypeForSpace - !! continuity type of base in space - CHARACTER(LEN=*), INTENT(IN) :: interpolTypeForSpace - !! interpolation type of base in space - INTEGER(I4B), INTENT(IN) :: orderTime - !! integrand order in time - TYPE(ReferenceLine_), INTENT(IN) :: linTimeElem - !! linear time element - TYPE(ReferenceLine_), INTENT(IN) :: timeElem - !! time element - CHARACTER(LEN=*), INTENT(IN) :: quadTypeForTime - !! quadrature type of base in time - CHARACTER(LEN=*), INTENT(IN) :: continuityTypeForTime - !! continuity type of base in time - CHARACTER(LEN=*), INTENT(IN) :: interpolTypeForTime - !! interpolation type of base in time - END SUBROUTINE mesh_initiateElemSD3 -``` diff --git a/docs/docs-api/Mesh/InitiateElementToElements.md b/docs/docs-api/Mesh/InitiateElementToElements.md deleted file mode 100644 index 03640493..00000000 --- a/docs/docs-api/Mesh/InitiateElementToElements.md +++ /dev/null @@ -1,22 +0,0 @@ -# InitiateElementToElements - -This routine creates the element surrounding a given element data - -- Before calling this routine, make sure the `refelem` in mesh is allocated. -- By using `refelem`, this routine forms the FacetElements. -- This routine needs `nodeToElements` information, therefore, if `nodeToElements` is not initiated then it calls `initiateNodeToelements` method. - -- This method forms following data: -- `obj%elementData(ielem)%globalElements` -- It also identifies those elements which are boundary element of mesh, and set `obj%elementData(ielem)%elementType=BOUNDARY_ELEMENT` for those elements. -- Note that at this point these boundary-elements can be interface element - between two meshs, or domain-boundary element. - -```fortran -INTERFACE - MODULE SUBROUTINE InitiateElementToElements(obj) - CLASS(Mesh_), INTENT(INOUT) :: obj - !! mesh data - END SUBROUTINE InitiateElementToElements -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/InitiateExtraNodeToNodes.md b/docs/docs-api/Mesh/InitiateExtraNodeToNodes.md deleted file mode 100644 index 189df003..00000000 --- a/docs/docs-api/Mesh/InitiateExtraNodeToNodes.md +++ /dev/null @@ -1,20 +0,0 @@ -# InitiateExtraNodetoNodes - -This routine generate the node to nodes mapping - -- This mapping is stored inside `obj%nodeData%extraGlobalNodeNum` -- For a local node number i, `obj%nodeData(i)%ExtraGlobalNodeNum` denotes the global node data surrounding the local node number used for edge-based stabilization. This list does not include self node. - -- It needs information about `nodeToNodes`, `nodeToElements`, and `elementToElements`. Therefore, -- If `nodeToNodes` is not initiated, then this method initiates it. -- If `nodeToElements` is not initiated, then this method initiates it. -- If `elementToElements` is not initiated, then this method initiates it. - -```fortran -INTERFACE - MODULE SUBROUTINE InitiateExtraNodetoNodes(obj) - CLASS(Mesh_), INTENT(INOUT) :: obj - !! mesh data - END SUBROUTINE InitiateExtraNodetoNodes -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/InitiateFacetElements.md b/docs/docs-api/Mesh/InitiateFacetElements.md deleted file mode 100644 index e42628b2..00000000 --- a/docs/docs-api/Mesh/InitiateFacetElements.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: InitiateFacetElements ---- - -This routine initiates the facet element data, such as [`BoundaryFacetData`](./BoundaryFacetData_.md) and [`InternalFacetData_`](./InternalFacetData_.md). - -This routine needs the following information: - -- `ElementToElements`, if this information is not available, then it calls [InitiateElementToElements](./InitiateElementToElements.md). -- `BoundaryData`, if this information is not available, then it calls [InitiateBoundaryData](./InitiateBoundaryData.md). - -It makes following data structures: - -- [InternalFacetData_](InternalFacetData_.md) -- [BoundaryFacetData_](BoundaryFacetData_.md) -- `FacetElementType` field in [Mesh_](Mesh_.md) - -:::info - -- This method cannot differentiate between a `BOUNDARY_ELEMENT`, which is a boundary-facet-element at the mesh-boundary, and `DOMAIN_BOUNDARY_ELEMENT`, which is facet element at the domain’s boundary. -- This is because, at this point we only know that a boundary-facet-element is a domain-boundary-element, as we have no information about the neighboring mesh. -- Therefore, all `boundaryFacet` elements, at this level, are of type `DOMAIN_BOUNDARY_ELEMENT`. This is because every `DOMAIN_BOUNDARY_ELEMENT` is a `BOUNDARY_ELEMENT`. -- This information can be corrected only when we call [`SetDomainFacetElement`](../Domain/SetDomainFacetElement.md) from [Domain_](../Domain/Domain_.md) class. -::: - -:::note -If we call [`SetDomainFacetElement`](../Domain/SetDomainFacetElement.md) then we do not have to worry about the above point. -::: - -Please check documentation of following methods: - -- [`SetDomainFacetElement`](../Domain/SetDomainFacetElement.md) -- [`SetMeshFacetElement`](../Domain/SetMeshFacetElement.md) -- [`SetFacetElementType`](../Domain/SetFacetElementType.md) - -## Interface - -```fortran -INTERFACE - MODULE SUBROUTINE InitiateFacetElements(obj) - CLASS(Mesh_), INTENT(INOUT) :: obj - END SUBROUTINE InitiateFacetElements -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/InitiateNodeToElements.md b/docs/docs-api/Mesh/InitiateNodeToElements.md deleted file mode 100644 index 1b7474a1..00000000 --- a/docs/docs-api/Mesh/InitiateNodeToElements.md +++ /dev/null @@ -1,24 +0,0 @@ -# InitiateNodeToElements - -- This subroutine generates elements surrounding a node mapping, in other words it generates node to element. -- Element numbers returned by this routine are global element number. -- This mapping is stored inside `obj%nodeData` array -- For a local node number `ii`, `obj%nodeData(ii)%globalElements(:)` contains the global element numbers. - -:::note -Always use method called `getNodeToElements()` to access this information. -This method requires global Node number -::: - -:::caution -Always use the mapping between global node number and local node number to -avoid segmentation fault -::: - -```fortran -INTERFACE - MODULE SUBROUTINE InitiateNodeToElements(obj) - CLASS(Mesh_), INTENT(INOUT) :: obj - END SUBROUTINE InitiateNodeToElements -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/InitiateNodeToNodes.md b/docs/docs-api/Mesh/InitiateNodeToNodes.md deleted file mode 100644 index e01a32db..00000000 --- a/docs/docs-api/Mesh/InitiateNodeToNodes.md +++ /dev/null @@ -1,18 +0,0 @@ -# InitiateNodeToNodes - -This routine generate the node to nodes mapping - -- In other words, it generates info of node-numbers in mesh surrounding a node number -- This mapping is stored inside `obj%nodeData%globalNodeNum` -- For a local node number i, obj%nodeData(i)%globalNodeNum denotes the global node data surrounding the local node number. -- This list does not include self node. -- The method needs node-to-elements data, therefore if this data is not initiated, then this method calls `InitiateNodeToElements()`. - -```fortran -INTERFACE - MODULE SUBROUTINE InitiateNodetoNodes(obj) - CLASS(Mesh_), INTENT(INOUT) :: obj - !! mesh data - END SUBROUTINE InitiateNodetoNodes -END INTERFACE -``` diff --git a/docs/docs-api/Mesh/InternalFacetData_.md b/docs/docs-api/Mesh/InternalFacetData_.md deleted file mode 100644 index cc5b49be..00000000 --- a/docs/docs-api/Mesh/InternalFacetData_.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -sidebar_position: 4 -title: InternalFacetData ---- - -Data storage for internal facet of mesh. - -The internal facet of mesh contains two cell elements; master cell and slave cell. - -## Structure - -```fortran -TYPE InternalFacetData_ - INTEGER( I4B ) :: masterCellNumber = 0 - INTEGER( I4B ) :: slaveCellNumber = 0 - INTEGER( I4B ) :: masterLocalFacetID = 0 - INTEGER( I4B ) :: slaveLocalFacetID = 0 - CONTAINS - PROCEDURE, PUBLIC, PASS( obj ) :: Display => InternalFacetData_Display -END TYPE InternalFacetData_ -``` - -- `masterCellNumber` master cell number (global element number) -- `slaveCellNumber` slave cell number (global element number) -- `masterLocalFacetID` local-facet-number in master cell -- `slaveLocalFacetID` slave-facet-number in slave cell - -## Implementation details - -This data structure is initiated by the method called [`InitiateFacetElements`](./InitiateFacetElements.md). diff --git a/docs/docs-api/Mesh/IsAllNodePresent.md b/docs/docs-api/Mesh/IsAllNodePresent.md deleted file mode 100644 index a8311b33..00000000 --- a/docs/docs-api/Mesh/IsAllNodePresent.md +++ /dev/null @@ -1,11 +0,0 @@ -# IsAllNodePresent - -## Interface - -```fortran - MODULE PURE FUNCTION isAllNodePresent(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode( : ) - LOGICAL(LGT) :: ans - END FUNCTION isAllNodePresent -``` diff --git a/docs/docs-api/Mesh/IsAnyNodePresent.md b/docs/docs-api/Mesh/IsAnyNodePresent.md deleted file mode 100644 index 13e4f999..00000000 --- a/docs/docs-api/Mesh/IsAnyNodePresent.md +++ /dev/null @@ -1,11 +0,0 @@ -# IsAnyNodePresent - -## Interface - -```fortran - MODULE PURE FUNCTION isAnyNodePresent(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode( : ) - LOGICAL(LGT) :: ans - END FUNCTION isAnyNodePresent -``` diff --git a/docs/docs-api/Mesh/IsBoundaryElement.md b/docs/docs-api/Mesh/IsBoundaryElement.md deleted file mode 100644 index eaa1ca27..00000000 --- a/docs/docs-api/Mesh/IsBoundaryElement.md +++ /dev/null @@ -1,12 +0,0 @@ -# IsBoundaryElement - -## Interface - -```fortran - MODULE PURE FUNCTION isBoundaryElement(obj, globalElement) & - & RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalElement - LOGICAL(LGT) :: ans - END FUNCTION isBoundaryElement -``` diff --git a/docs/docs-api/Mesh/IsBoundaryNode.md b/docs/docs-api/Mesh/IsBoundaryNode.md deleted file mode 100644 index 3649415a..00000000 --- a/docs/docs-api/Mesh/IsBoundaryNode.md +++ /dev/null @@ -1,11 +0,0 @@ -# IsBoundaryNode - -## Interface - -```fortran - MODULE PURE FUNCTION isBoundaryNode(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode - LOGICAL(LGT) :: ans - END FUNCTION isBoundaryNode -``` diff --git a/docs/docs-api/Mesh/IsDomainBoundaryElement.md b/docs/docs-api/Mesh/IsDomainBoundaryElement.md deleted file mode 100644 index b283dfc0..00000000 --- a/docs/docs-api/Mesh/IsDomainBoundaryElement.md +++ /dev/null @@ -1,12 +0,0 @@ -# IsDomainBoundaryElement - -## Interface - -```fortran - MODULE PURE FUNCTION isDomainBoundaryElement(obj, globalElement) & - & RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalElement - LOGICAL(LGT) :: ans - END FUNCTION isDomainBoundaryElement -``` diff --git a/docs/docs-api/Mesh/IsElementPresent.md b/docs/docs-api/Mesh/IsElementPresent.md deleted file mode 100644 index d742df22..00000000 --- a/docs/docs-api/Mesh/IsElementPresent.md +++ /dev/null @@ -1,11 +0,0 @@ -# IsElementPresent - -## Interface - -```fortran - MODULE PURE FUNCTION isElementPresent(obj, GlobalElement) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: GlobalElement - LOGICAL(LGT) :: ans - END FUNCTION isElementPresent -``` diff --git a/docs/docs-api/Mesh/IsFacetElement.md b/docs/docs-api/Mesh/IsFacetElement.md new file mode 100644 index 00000000..56d7ef70 --- /dev/null +++ b/docs/docs-api/Mesh/IsFacetElement.md @@ -0,0 +1,12 @@ +# IsFacetElement + +This functions returns true if the facetElements are allocated in the Mesh object. + +```fortran +INTERFACE + MODULE FUNCTION obj_isFacetElement(obj) RESULT(ans) + CLASS(Mesh_), INTENT(IN) :: obj + LOGICAL(LGT) :: ans + END FUNCTION obj_isFacetElement +END INTERFACE +``` diff --git a/docs/docs-api/Mesh/IsNodePresent.md b/docs/docs-api/Mesh/IsNodePresent.md deleted file mode 100644 index 82b515ce..00000000 --- a/docs/docs-api/Mesh/IsNodePresent.md +++ /dev/null @@ -1,11 +0,0 @@ -# IsNodePresent - -## Interface - -```fortran - MODULE PURE FUNCTION isNodePresent(obj, globalNode) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B), INTENT(IN) :: globalNode - LOGICAL(LGT) :: ans - END FUNCTION isNodePresent -``` diff --git a/docs/docs-api/Mesh/IsTotalInternalNodes.md b/docs/docs-api/Mesh/IsTotalInternalNodes.md deleted file mode 100644 index e49a09bf..00000000 --- a/docs/docs-api/Mesh/IsTotalInternalNodes.md +++ /dev/null @@ -1,10 +0,0 @@ -# GetTotalInternalNodes - -## Interface - -```fortran - MODULE PURE FUNCTION getTotalInternalNodes(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - INTEGER(I4B) :: ans - END FUNCTION getTotalInternalNodes -``` diff --git a/docs/docs-api/Mesh/Mesh_.md b/docs/docs-api/Mesh/Mesh_.md index dc328bdd..2669cad1 100644 --- a/docs/docs-api/Mesh/Mesh_.md +++ b/docs/docs-api/Mesh/Mesh_.md @@ -3,271 +3,27 @@ title: Structure sidebar_position: 2 --- -Mesh datatype is simply a collection of mesh elements. +Mesh datatype is simply a collection of mesh elements. It is a child of [AbstractMesh_](../AbstractMesh/AbstractMesh_.md). -In EASIFEM mesh is a homogeneous collection of reference elements. All elements in mesh should be of same type (i.e., triangle, quadrangle, tetrahedron, etc.). Two mesh can have different types of elements. For example, we can define a mesh of triangle element or a mesh of tetrahedron element. +:::warning Deprecated +The support for Mesh has stopped. In future version, the Mesh and FEMesh will be merged. So please use FEMesh instead. +::: + +:::info Mesh vs FEMesh +Mesh is a collection of homogeneous elements. All elements in a mesh should be of same type (i.e., triangle, quadrangle, tetrahedron, etc.). For example, we can define a mesh of triangle element or a mesh of tetrahedron element. In contrast, FEMesh is a collection of elements of same dimension. In FEMesh, all elements are either 1D, 2D or 3D. Therefore, FEMesh can contain some elements as triangle and some elements as quadrilateral. +::: ```fortran -TYPE :: Mesh_ +TYPE, EXTENDS(AbstractMesh_) :: Mesh_ PRIVATE - LOGICAL(LGT) :: readFromFile = .TRUE. - !! True if the mesh is read from a file - LOGICAL(LGT) :: isInitiated = .FALSE. - !! logical flag denoting for whether mesh data is Initiated or not - LOGICAL(LGT) :: isNodeToElementsInitiated = .FALSE. - !! Node to elements mapping - LOGICAL(LGT) :: isNodeToNodesInitiated = .FALSE. - !! Node to nodes mapping - LOGICAL(LGT) :: isExtraNodeToNodesInitiated = .FALSE. - !! Node to nodes mapping - LOGICAL(LGT) :: isElementToElementsInitiated = .FALSE. - !! Element to elements mapping - LOGICAL(LGT) :: isBoundaryDataInitiated = .FALSE. - !! Boundary data - LOGICAL(LGT), PUBLIC :: isFacetDataInitiated = .FALSE. - !! FacetData - !! TODO: Make isFacetDataInitiated PRIVATE - INTEGER(I4B) :: uid = 0 - !! Unique id of the mesh - INTEGER(I4B) :: xidim = 0 - !! xidimension of elements present inside the mesh INTEGER(I4B) :: elemType = 0 !! type of element present inside the mesh - INTEGER(I4B) :: nsd = 0 - !! number of spatial dimension of the mesh - INTEGER(I4B), PUBLIC :: maxNptrs = 0 - !! largest node number present inside the mesh - INTEGER(I4B), PUBLIC :: minNptrs = 0 - !! minimum node number present inside the mesh - INTEGER(I4B), PUBLIC :: maxElemNum = 0 - !! largest element number present inside the mesh - INTEGER(I4B), PUBLIC :: minElemNum = 0 - !! minimum element number present inside the mesh - INTEGER(I4B) :: tNodes = 0 - !! total number of nodes present inside the mesh - INTEGER(I4B) :: tIntNodes = 0 - !! total number of internal nodes inside the mesh - INTEGER(I4B) :: tElements = 0 - !! total number of elements present inside the mesh - !! It is the size of elemNumber vector - REAL(DFP) :: minX = 0.0 - !! minimum value of x coordinate - REAL(DFP) :: maxX = 0.0 - !! maximum value of x coordinate - REAL(DFP) :: minY = 0.0 - !! minimum value of y coordinate - REAL(DFP) :: maxY = 0.0 - !! maximum value of y coordinate - REAL(DFP) :: minZ = 0.0 - !! minimum value of z coordinate - REAL(DFP) :: maxZ = 0.0 - !! maximum value of z coordinate - REAL(DFP) :: X = 0.0 - !! x coorindate of centroid - REAL(DFP) :: Y = 0.0 - !! y coordinate of centroid - REAL(DFP) :: Z = 0.0 - !! z coordinate of centroid - INTEGER(I4B), ALLOCATABLE :: physicalTag(:) - !! Physical entities associated with the current entity (mesh) - INTEGER(I4B), ALLOCATABLE :: boundingEntity(:) - !! Bounding entity numbers of the current entity - INTEGER(I4B), ALLOCATABLE :: local_elemNumber(:) - !! List of local element numbers, the lowerbound is `minElemNum` - !! and upper bound is `maxElemNum`. In this way, local_elemNumber(iel) - !! returns the local element number of global element number iel. - INTEGER(I4B), ALLOCATABLE :: local_Nptrs(:) - !! Returns local node number from a global node number - !! Its length is from 1 to maxNptrs - !! Helpul in finding if a global node is present inside the mesh or not - INTEGER(I4B), ALLOCATABLE :: material(:) - !! materials mapped to the mesh - !! material(1) is the material id of medium 1 - !! material(2) is the material id of medium 2 - !! ... - !! material(n) is the material id of medium n - !! - !! For example, soil is a porous medium n = 1, - !! fluid is a medium n =2 - !! then material(1) denotes the type of soil => clay, sand, silt - !! and material(2) denotes the type of fluid, water, oil, air - TYPE(ReferenceElement_), PUBLIC, ALLOCATABLE :: facetElements(:) + + TYPE(ReferenceElement_), ALLOCATABLE :: facetElements(:) !! Facet Elements in the reference element - INTEGER(I4B), ALLOCATABLE :: facetElementType(:, :) - !! Number of rows of this array is same as the total number of - !! facets present in the mesh-reference elements - !! Number of columns of this array is equal to the total number of - !! elements inside the mesh - !! facetElementType(ii, iel) can be - !! INTERNAL_ELEMENT, BOUNDARY_ELEMENT, DOMAIN_BOUNDARY_ELEMENT - !! If the face is a part of the mesh boundary then it will be called - !! the BOUNDARY_ELEMENT - TYPE(NodeData_), ALLOCATABLE :: nodeData(:) - !! Node data - TYPE(ElemData_), ALLOCATABLE :: elementData(:) - !! element data - TYPE(InternalFacetData_), PUBLIC, ALLOCATABLE :: internalFacetData(:) - !! Internal facet data - TYPE(BoundaryFacetData_), PUBLIC, ALLOCATABLE :: boundaryFacetData(:) - !! Domain Facet Data - CLASS(ReferenceElement_), PUBLIC, POINTER :: refelem => NULL() + + CLASS(ReferenceElement_), POINTER :: refelem => NULL() !! Reference element of the mesh (spatial) !! TODO: Change refelem to Type(ReferenceElement_) - REAL(DFP), ALLOCATABLE :: quality(:, :) - !! number of rows are meshquality - !! number of columns are elements - INTEGER(I4B), PUBLIC :: ipType = Equidistance - !! interpolation point type - - ! Following variables are required during processing. - ! time - TYPE(QuadraturePoint_), PUBLIC :: quadForTime - !! quadrature point for time domain #STFEM - TYPE(ElemshapeData_), PUBLIC :: linTimeElemSD - !! Element shape data on linear time element #STFEM - TYPE(ElemshapeData_), PUBLIC :: timeElemSD - !! Element shape data on time element #STFEM - TYPE(String) :: quadTypeForTime - !! quadrature type for time - TYPE(String) :: continuityTypeForTime - !! continuity of base function for time - TYPE(String) :: interpolTypeForTime - !! interpolation of base function for time - INTEGER(I4B) :: orderTime - !! order for time - - ! space (cell) - TYPE(QuadraturePoint_), PUBLIC :: quadForSpace - !! quadrature point for space - TYPE(ElemshapeData_), PUBLIC :: linSpaceElemSD - !! Element shape data on linear space (simplex) element - TYPE(ElemshapeData_), PUBLIC :: spaceElemSD - !! Element shape data on space element - TYPE(STElemshapeData_), ALLOCATABLE, PUBLIC :: stelemsd(:) - !! Element shape data on space element - TYPE(String) :: quadTypeForSpace - !! quadrature type for space - TYPE(String) :: continuityTypeForSpace - !! continuity of base function for space - TYPE(String) :: interpolTypeForSpace - !! interoplation type of base function for space - INTEGER(I4B) :: orderSpace - !! order for space - - ! space (facets) - TYPE(QuadraturePoint_), ALLOCATABLE, PUBLIC :: quadForFacet(:) - !! quadrature point for facet elements - TYPE(QuadraturePoint_), ALLOCATABLE, PUBLIC :: quadForFacetCell(:) - !! quadrature point for facet-cell elements - TYPE(ElemshapeData_), ALLOCATABLE, PUBLIC :: linFacetElemSD(:) - !! Element shape data on linear facet (simplex) element - TYPE(ElemshapeData_), ALLOCATABLE, PUBLIC :: linFacetCellElemSD(:) - !! Element shape data on linear facet (simplex) cell element - TYPE(ElemshapeData_), ALLOCATABLE, PUBLIC :: facetElemSD(:) - !! Element shape data on facet element - TYPE(ElemshapeData_), ALLOCATABLE, PUBLIC :: facetCellElemSD(:) - !! Element shape data on facet cell element - TYPE(String) :: quadTypeForFacet - !! quadrature type for facet element - TYPE(String) :: continuityTypeForFacet - !! continuity of base function for facet element - TYPE(String) :: interpolTypeForFacet - !! interoplation type of base function for facet element - INTEGER(I4B) :: orderFacet - !! order for facet element - TYPE(STElemshapeData_), ALLOCATABLE, PUBLIC :: facetSTelemsd(:, :) - !! Element shape data on facet element END TYPE Mesh_ ``` - -- `readFromFile` is true if the mesh is read from a file. -- `isInitiated` is logical flag denoting whether mesh data is initiated or not. -- `isNodeToElementsInitiated` is true if node to elements mapping is initiated. -- `isNodeToNodesInitiated` is true of node to nodes mapping is initiated. -- `isElementToElementsInitiated` is true if element to elements mapping available. -- `isBoundaryDataInitiated` is true if boundary data is available. -- `uid` denotes the unique-id of the mesh. -- `xidim` denotes the `xidimension` of elements present inside the mesh, `xidim` = (0,1,2,3) for (point, line, surface, volume) elements. -- `elemType` denotes the type of element present inside the mesh. -- `nsd` denotes the number of spatial dimension of the mesh. -- `maxNptrs` stands for the largest node number present inside the mesh. -- `minNptrs` stands for the smallest node number present inside the mesh. -- `maxElemNum` denotes the largest element number present inside the mesh. -- `minElemNum` denotes the smallest element number present inside the mesh. -- `tNodes` is the total number of (local) nodes present inside the mesh. -- `tIntNodes` is the total number of internal nodes inside the mesh. -- `tElements` is the total number of elements present inside the mesh. It is the size of `elemNumber` vector. -- `minX` denotes the minimum value of x coordinate of `boundingbox`. -- `maxX` denotes the maximum value of x coordinate of `boundingbox`. -- `minY` is the minimum value of y coordinate of `boundingbox`. -- `maxY` is the maximum value of y coordinate of `boundingbox`. -- `minZ` is the minimum value of z coordinate of `boundingbox`. -- `maxZ` is the maximum value of z coordinate of `boundingbox`. -- `X` is the x coordinate of center of mesh. -- `Y` is the y coordinate of center of mesh. -- `Z` is the z coordinate of center of mesh. -- `physicalTag` denotes the physical entities associated with the current entity (mesh) -- `boundingEntity` denotes the bounding entity numbers of the current entity -- `local_elemNumber` denotes the list of local element numbers, the lower bound is `minElemNum` and upper bound is `maxElemNum`. In this way, `local_elemNumber(iel)` returns the local element number of global element number `iel`. -- `local_Nptrs` returns the local node number from a global node number. Its length is from 1 to `maxNptrs`. Helpful in finding if a global node is present inside the mesh or not. -- `material` materials mapped to the mesh, for example - - `material(1)` is the material-id of medium 1 - - `material(2)` is the material-id of medium 2 - - $\cdots$ - - `material(n)` is the material-id of medium n - - For example, soil is a porous medium n = 1, - - fluid is a medium n =2 - - then material(1) denotes the type of soil, that is, clay, sand, and silt. - - and material(2) denotes the type of fluid, water, oil, air. - -- `facetElements` denotes the facet Elements in the reference element -- `facetElementType` - - Number of rows of this array is same as the total number of facets present in the mesh’s reference-element. - - Number of columns of this array is equal to the total number of elements inside the mesh. - - In this way, `facetElementType(ii, iel)` denotes the `ii`th facet’s type of element local element number `iel` - - `facetElementType` can be - - `INTERNAL_ELEMENT`, - - `BOUNDARY_ELEMENT`, - - `DOMAIN_BOUNDARY_ELEMENT`. - - If the face is a part of the mesh boundary then it will be called the `BOUNDARY_ELEMENT` - - If the face is part of domain boundary, then it is a `DOMAIN_BOUNDARY_ELEMENT` - - If the facet is internal to a mesh, then it is a `INTERNAL_ELEMENT` - - Note that every, `DOMAIN_BOUNDARY_ELEMENT` is `BOUNDARY_ELEMENT` but not vice-versa. - -- `nodeData` node data -- `elementData` element data -- `internalFacetData` internal facet data -- `boundaryFacetData` boundary facet Data -- `refelem` Reference element of the mesh (spatial). - -Following variables are required during for time shape functions in space-time finite elements. - -- `quadForTime`, quadrature point for time domain -- `linTimeElemSD` Element shape data on linear time element -- `timeElemSD` Element shape data on time element -- `quadTypeForTime` quadrature type for time -- `continuityTypeForTime` continuity of base function for time -- `interpolTypeForTime` interpolation of base function for time -- `orderTime` order for time - -Following variables are required during for space-shape functions finite elements computations. - -- `quadForSpace` quadrature point for space -- `linSpaceElemSD` Element shape data on linear space (simplex) element -- `spaceElemSD` Element shape data on space element -- `stelemsd` Element shape data on space element -- `quadTypeForSpace` quadrature type for space -- `continuityTypeForSpace` continuity of base function for space -- `interpolTypeForSpace` interpolation type of base function for space -- `orderSpace` order for space - -Following variables are required during for shape functions on facet elements in finite elements computations. - -- `quadForFacet` quadrature point for facet elements -- `linFacetElemSD` Element shape data on linear facet (simplex) element -- `facetElemSD` Element shape data on facet element -- `facetSTelemsd` Element shape data on facet element -- `quadTypeForFacet` quadrature type for facet element -- `continuityTypeForFacet` continuity of base function for facet element -- `interpolTypeForFacet` interpolation type of base function for facet element -- `orderFacet` order for facet element diff --git a/docs/docs-api/Mesh/NodeData_.md b/docs/docs-api/Mesh/NodeData_.md deleted file mode 100644 index 44f30ea4..00000000 --- a/docs/docs-api/Mesh/NodeData_.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_position: 2 ---- - -# NodeData - -It is a data type for storing the information of node data in mesh. - -The methods related to this data-type are contained in [[Mesh_#NodeDataMethods]]. - -## Structure - -```fortran -TYPE :: NodeData_ - INTEGER(I4B) :: globalNodeNum = 0 - INTEGER(I4B) :: localNodeNum = 0 - INTEGER(I4B) :: nodeType = INTERNAL_NODE - INTEGER(I4B), ALLOCATABLE :: globalNodes(:) - INTEGER(I4B), ALLOCATABLE :: globalElements(:) - CONTAINS - PROCEDURE, PUBLIC, PASS( obj ) :: Display => nodeData_Display -END TYPE NodeData_ -``` - -- `globalNodeNum` Global node number -- `localNodeNum` local node number -- `nodeType` following node type are defined - - `INTERNAL_NODE` - - `BOUNDARY_NODE` - - `DOMAIN_BOUNDARY_NODE` -- `globalNodes` contains the global node number surrouding the node. Note that this list does not contain self-global-node-number -- `globalElements` contains the global element number surrounding the node. diff --git a/docs/docs-api/Mesh/Size.md b/docs/docs-api/Mesh/Size.md deleted file mode 100644 index 23e512e6..00000000 --- a/docs/docs-api/Mesh/Size.md +++ /dev/null @@ -1,11 +0,0 @@ -# Size - -## Interface - -```fortran - MODULE PURE FUNCTION size(obj) RESULT(ans) - CLASS(Mesh_), INTENT(IN) :: obj - !! mesh object - INTEGER(I4B) :: ans - END FUNCTION size -``` diff --git a/docs/docs-api/Mesh/index.md b/docs/docs-api/Mesh/index.md index bd8b3fb9..86f5e388 100644 --- a/docs/docs-api/Mesh/index.md +++ b/docs/docs-api/Mesh/index.md @@ -19,9 +19,10 @@ tags: `Mesh` datatype handles the finite element mesh. -- You can learn about the structure of `Mesh` [Here](./Mesh_.md) -- The information of `BoundaryFacetData` is given [Here](./BoundaryFacetData_.md) -- The information of `InternalFacetData` is given [Here](./InternalFacetData_.md) +:::warning Deprecated +The support for Mesh has stopped. In future version, the Mesh and FEMesh will be merged. So please use FEMesh instead. +::: + import DocCardList from '@theme/DocCardList';