MeshClass Module


Uses


Variables

Type Visibility Attributes Name Initial
integer(kind=int32), public :: PF_GLYCINE_MAX = 1
integer(kind=int32), public :: PF_GLYCINE_SOJA = 1
integer(kind=int32), public :: PF_SOYBEAN = 1
integer(kind=int32), public :: PF_MAIZE = 2
integer(kind=int32), public :: PF_RICE = 3
integer(kind=int32), public :: PF_Arabidopsis = 4
integer(kind=int32), public :: PF_WHEAT = 3

Derived Types

type, public ::  Mesh_

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: FileName
real(kind=real64), public, allocatable :: NodCoord(:,:)
integer(kind=int32), public, allocatable :: ElemNod(:,:)
integer(kind=int32), public, allocatable :: ElemMat(:)
integer(kind=int32), public, allocatable :: MasterID(:)
integer(kind=int32), public, allocatable :: SlaveID(:)
integer(kind=int32), public, allocatable :: NTSMasterFacetID(:)
real(kind=real64), public, allocatable :: xi(:,:)
real(kind=real64), public, allocatable :: NodCoordInit(:,:)
integer(kind=int32), public :: BottomElemID
integer(kind=int32), public :: TopElemID
integer(kind=int32), public, allocatable :: FacetElemNod(:,:)
integer(kind=int32), public, allocatable :: NextFacets(:,:)
integer(kind=int32), public, allocatable :: SurfaceLine2D(:)
integer(kind=int32), public, allocatable :: SubMeshNodFromTo(:,:)
integer(kind=int32), public, allocatable :: SubMeshElemFromTo(:,:)
integer(kind=int32), public, allocatable :: SubMeshSurfFromTo(:,:)
integer(kind=int32), public :: surface = 1
integer(kind=int32), public, allocatable :: GlobalNodID(:)
character(len=36), public :: uuid
character(len=:), public, allocatable :: ElemType
character(len=:), public, allocatable :: ErrorMsg
character(len=:), public, allocatable :: meshtype
integer(kind=int32), public, allocatable :: elementType(:)

Type-Bound Procedures

procedure, public :: add => addMesh
procedure, public :: addElements => addElementsMesh
procedure, public :: adjustSphere => AdjustSphereMesh
procedure, public :: adjustCylinder => AdjustCylinderMesh
procedure, public :: assemble => assembleMesh
procedure, public :: arrangeNodeOrder => arrangeNodeOrderMesh
procedure, public, pass :: boxMesh
procedure, public, pass :: box_from_edge_Mesh
generic, public :: box => boxMesh
procedure, public :: copy => CopyMesh
procedure, public :: cut => cutMesh
procedure, public :: convertMeshType => ConvertMeshTypeMesh
procedure, public :: convertTetraToHexa => convertTetraToHexaMesh
procedure, public :: convertHigherOrder => convertHigherOrderMesh
procedure, public :: convertTriangleToRectangular => convertTriangleToRectangularMesh
procedure, public :: changeElementType => changeElementTypeMesh
procedure, public :: create => createMesh
procedure, public :: cube => cubeMesh
procedure, public :: check => checkMesh
procedure, public :: convert2Dto3D => Convert2Dto3DMesh
procedure, public :: clean => cleanMesh
procedure, public :: delete => DeallocateMesh
procedure, public :: detectIface => detectIfaceMesh
procedure, public :: displayMesh => DisplayMesh
procedure, public :: display => DisplayMesh
procedure, public :: divide => divideMesh
procedure, public :: delauneygetNewNode => DelauneygetNewNodeMesh
procedure, public :: delauneygetNewNode3D => DelauneygetNewNode3DMesh
procedure, public :: delauneygetNewTriangle => DelauneygetNewTriangleMesh
procedure, public :: delauneyremoveOverlaps => DelauneyremoveOverlapsMesh
procedure, public :: export => exportMeshObj
procedure, public :: exportElemNod => ExportElemNod
procedure, public :: exportNodCoord => ExportNodCoord
procedure, public :: exportSurface2D => ExportSurface2D
procedure, public :: empty => emptyMesh
procedure, public :: edit => editMesh
procedure, public :: getElementID => getElementIDMesh
procedure, public :: getElementType => getElementTypeMesh
procedure, public :: getNumOfGp => getNumOfGpMesh
procedure, public :: getCoordinate => getCoordinateMesh
procedure, public :: getNodeIDinElement => getNodeIDinElementMesh
procedure, public :: getFacetElement => GetFacetElement
procedure, public :: getFacetNodeID => getFacetNodeIDMesh
procedure, public :: getSurface => GetSurface
procedure, public :: getVertices => getVerticesMesh
procedure, public :: getInterface => GetInterface
procedure, public :: getInterfaceElemNod => GetInterfaceElemNod
procedure, public :: getBoundingBox => GetBoundingBox
procedure, public :: getFacetElemInsideBox => GetFacetElemInsideBox
procedure, public :: getInterSectBox => GetInterSectBox
procedure, public :: getNextFacets => GetNextFacets
procedure, public :: getElemType => GetElemTypeMesh
procedure, public :: getElement => getElementMesh
procedure, public :: getNumOfDomain => getNumOfDomainMesh
procedure, public :: getCircumscribedCircle => getCircumscribedCircleMesh
procedure, public :: getCircumscribedSphere => getCircumscribedSphereMesh
procedure, public :: getCircumscribedTriangle => getCircumscribedTriangleMesh
procedure, public :: getCircumscribedBox => getCircumscribedBoxMesh
procedure, public :: getCircumscribedSphereOfTetra => getCircumscribedSphereOfTetraMesh
procedure, public :: getNodeList => getNodeListMesh
procedure, public :: getFacetList => getFacetListMesh
procedure, public :: getElementList => getElementListMesh
procedure, public :: getVolume => getVolumeMesh
procedure, public :: getShapeFunction => getShapeFunctionMesh
procedure, public :: getCenterCoordinate => getCenterCoordinateMesh
procedure, public :: getNeighboringNode => getNeighboringNodeMesh
procedure, public :: getNeighboringElement => getNeighboringElementMesh
procedure, public :: BinaryTreeSearch => BinaryTreeSearchMesh
procedure, public :: getBinaryTreeSearch => BinaryTreeSearchMesh
procedure, public :: ShapeFunction => getShapeFunctionMesh
procedure, public :: gmsh => gmshMesh
procedure, public :: import => importMeshObj
procedure, public :: importElemNod => ImportElemNod
procedure, public :: importNodCoord => ImportNodCoord
procedure, public :: importElemMat => ImportElemMat
procedure, public :: init => InitializeMesh
procedure, public :: InsideOfElement => InsideOfElementMesh
procedure, public :: json => jsonMesh
procedure, public :: killElement => killElementMesh
procedure, public :: length => lengthMesh
procedure, public :: Line => Line_1D_Mesh
procedure, public :: Laplacian => LaplacianMesh
procedure, public :: mergeMesh => MergeMesh
procedure, public :: meltingSkelton => MeltingSkeltonMesh
procedure, public :: meshing => MeshingMesh
procedure, public :: numElements => numElementsMesh
procedure, public :: ne => numElementsMesh
procedure, public :: numNodes => numNodesMesh
procedure, public :: nn => numNodesMesh
procedure, public :: numNodesForEachElement => numNodesForEachElementMesh
procedure, public :: nne => numNodesForEachElementMesh
procedure, public :: numDimension => numDimensionMesh
procedure, public :: nd => numDimensionMesh
procedure, public :: nearestElementID => nearestElementIDMesh
procedure, public :: getNearestElementID => nearestElementIDMesh
procedure, public :: getNearestNodeID => getNearestNodeIDMesh
procedure, public :: HowManyDomain => HowManyDomainMesh
procedure, public :: open => openMesh
procedure, public :: position => positionMesh
procedure, public :: position_x => position_xMesh
procedure, public :: position_y => position_yMesh
procedure, public :: position_z => position_zMesh
procedure, public :: remove => removeMesh
procedure, public :: removeCircumscribedTriangle => removeCircumscribedTriangleMesh
procedure, public :: removeFailedTriangle => RemoveFailedTriangleMesh
procedure, public :: removeOverlappedNode => removeOverlappedNodeMesh
procedure, public :: removeElements => removeElementsMesh
procedure, public :: resize => resizeMeshobj
procedure, public :: remesh => remeshMesh
procedure, public :: save => saveMesh
procedure, public :: sortFacet => SortFacetMesh
procedure, public :: shift => shiftMesh
procedure, public :: showRange => showRangeMesh
procedure, public :: showMesh => ShowMesh
procedure, public :: show => ShowMesh
procedure, public :: sync => syncMeshClass
procedure, public :: to_HollowTube => to_HollowTube_MESH
procedure, public :: to_culm => to_culm_MESH

Functions

public function getCoordinateMesh(obj, NodeID, onlyX, onlyY, OnlyZ) result(x)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: NodeID
logical, intent(in), optional :: onlyX
logical, intent(in), optional :: onlyY
logical, intent(in), optional :: OnlyZ

Return Value real(kind=real64), allocatable, (:)

public function getNodeIDinElementMesh(obj, ElementID) result(NodeIDList)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: ElementID

Return Value integer(kind=int32), allocatable, (:)

public function detectIfaceMesh(obj, material1, material2) result(list)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: material1
integer(kind=int32), intent(in), optional :: material2

Return Value integer(kind=int32), allocatable, (:)

public function lengthMesh(obj) result(length)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value real(kind=real64), (3)

public function getFacetNodeIDMesh(obj, ElementID) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: ElementID

Return Value integer(kind=int32), allocatable, (:,:)

public function getNumOfDomainMesh(obj, ItrTol) result(dnum)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: ItrTol

Return Value integer(kind=int32)

public function getElementMesh(obj, ElementID) result(element)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: ElementID

Return Value type(Mesh_)

public function GetElemTypeMesh(obj) result(ElemType)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value character(len=:), allocatable

public function getShapeFunctionMesh(obj, ElementID, GaussPointID, ReducedIntegration) result(sobj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: ElementID
integer(kind=int32), intent(in) :: GaussPointID
logical, intent(in), optional :: ReducedIntegration

Return Value type(ShapeFunction_)

public pure function emptyMesh(obj) result(res)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value logical

public function divideMesh(obj, n) result(meshes)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: n

Return Value class(Mesh_), allocatable, (:)

public function HowManyDomainMesh(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public function getNodeListMesh(obj, BoundingBox, xmin, xmax, ymin, ymax, zmin, zmax) result(NodeList)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
type(Mesh_), intent(inout), optional :: BoundingBox
real(kind=real64), intent(in), optional :: xmin
real(kind=real64), intent(in), optional :: xmax
real(kind=real64), intent(in), optional :: ymin
real(kind=real64), intent(in), optional :: ymax
real(kind=real64), intent(in), optional :: zmin
real(kind=real64), intent(in), optional :: zmax

Return Value integer(kind=int32), allocatable, (:)

public function getFacetListMesh(obj, NodeID) result(FacetList)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: NodeID

Return Value integer(kind=int32), allocatable, (:,:)

public function getElementListMesh(obj, BoundingBox, xmin, xmax, ymin, ymax, zmin, zmax, NodeID) result(ElementList)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
type(Mesh_), intent(inout), optional :: BoundingBox
real(kind=real64), intent(in), optional :: xmin
real(kind=real64), intent(in), optional :: xmax
real(kind=real64), intent(in), optional :: ymin
real(kind=real64), intent(in), optional :: ymax
real(kind=real64), intent(in), optional :: zmin
real(kind=real64), intent(in), optional :: zmax
integer(kind=int32), intent(in), optional :: NodeID

Return Value integer(kind=int32), allocatable, (:)

public function getVolumeMesh(obj) result(volume)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

Return Value real(kind=real64), allocatable, (:)

public pure function numElementsMesh(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public pure function numNodesMesh(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public pure function numNodesForEachElementMesh(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public pure function numDimensionMesh(obj) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public function nearestElementIDMesh(obj, x, y, z) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z

Return Value integer(kind=int32)

public pure function InsideOfElementMesh(obj, ElementID, x, y, z) result(Inside)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: ElementID
real(kind=real64), intent(in) :: x
real(kind=real64), intent(in) :: y
real(kind=real64), intent(in) :: z

Return Value logical

public pure function getCenterCoordinateMesh(obj, elemid) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: elemid

Return Value real(kind=real64), allocatable, (:)

public function getNeighboringNodeMesh(obj, nodeid) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: nodeid

Return Value integer(kind=int32), allocatable, (:)

public function getNeighboringElementMesh(obj, elemid, withSurfaceID, interfaces) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: elemid
logical, intent(in), optional :: withSurfaceID
integer(kind=int32), intent(inout), optional, allocatable :: interfaces(:)

Return Value integer(kind=int32), allocatable, (:)

public function getNearestNodeIDMesh(obj, x, y, z, except, exceptlist) result(node_id)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z
integer(kind=int32), intent(in), optional :: except
integer(kind=int32), intent(in), optional :: exceptlist(:)

Return Value integer(kind=int32)

public pure function positionMesh(obj, id) result(x)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: id

Return Value real(kind=real64), (3)

public pure function position_xMesh(obj, id) result(x)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: id

Return Value real(kind=real64)

public pure function position_yMesh(obj, id) result(x)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: id

Return Value real(kind=real64)

public pure function position_zMesh(obj, id) result(x)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: id

Return Value real(kind=real64)

public recursive function BinaryTreeSearchMesh(obj, old_GroupID, min_elem_num) result(GroupID)

allocate(GroupID( sum(num_exist),elem_num_in_group-1 ) )

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in), allocatable :: old_GroupID(:,:)
integer(kind=int32), intent(in) :: min_elem_num

Return Value integer(kind=int32), allocatable, (:,:)

public function getElementIDMesh(this, x, debug, info) result(ElementID)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: this
real(kind=real64), intent(in) :: x(:)
logical, intent(in), optional :: debug
integer(kind=int32), intent(inout), optional, allocatable :: info(:)

Return Value integer(kind=int32)

public function getElementTypeMesh(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: this

Return Value integer(kind=int32), allocatable, (:)

public function getNumOfGpMesh(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: this

Return Value integer(kind=int32)


Subroutines

public subroutine cutMesh(obj, material1, material2)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: material1
integer(kind=int32), intent(in), optional :: material2

public subroutine saveMesh(obj, path, name)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in) :: path
character(len=*), intent(in), optional :: name

public subroutine openMesh(obj, path, name)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in) :: path
character(len=*), intent(in), optional :: name

public subroutine removeMesh(obj, all, x_min, x_max, y_min, y_max, z_min, z_max)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
logical, intent(in), optional :: all
real(kind=real64), intent(in), optional :: x_min
real(kind=real64), intent(in), optional :: x_max
real(kind=real64), intent(in), optional :: y_min
real(kind=real64), intent(in), optional :: y_max
real(kind=real64), intent(in), optional :: z_min
real(kind=real64), intent(in), optional :: z_max

public subroutine DeallocateMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine CopyMesh(obj, cobj, Minimum)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
class(Mesh_), intent(in) :: cobj
logical, intent(in), optional :: Minimum

public subroutine InitializeMesh(obj, MaterialID, NoFacetMode, simple)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: MaterialID
logical, intent(in), optional :: NoFacetMode
logical, intent(in), optional :: simple

public subroutine ImportElemNod(obj, elem_nod)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: elem_nod(:,:)

public subroutine ImportNodCoord(obj, nod_coord)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in) :: nod_coord(:,:)

public subroutine ImportElemMat(obj, elem_mat)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: elem_mat(:)

public subroutine resizeMeshobj(obj, x_rate, y_rate, z_rate, x_len, y_len, z_len)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: x_rate
real(kind=real64), intent(in), optional :: y_rate
real(kind=real64), intent(in), optional :: z_rate
real(kind=real64), intent(in), optional :: x_len
real(kind=real64), intent(in), optional :: y_len
real(kind=real64), intent(in), optional :: z_len

public subroutine importMeshObj(obj, FileName, extention, ElemType, Mesh)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in), optional :: FileName
character(len=*), intent(in), optional :: extention
character(len=*), intent(in), optional :: ElemType
type(Mesh_), intent(in), optional :: Mesh

public subroutine exportMeshObj(obj, restart, path, stl, scalar, vector, tensor, name)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
logical, intent(in), optional :: restart
character(len=*), intent(in), optional :: path
logical, intent(in), optional :: stl
real(kind=real64), intent(in), optional :: scalar(:)
real(kind=real64), intent(in), optional :: vector(:,:)
real(kind=real64), intent(in), optional :: tensor(:,:,:)
character(len=*), intent(in), optional :: name

public recursive subroutine GetFacetElementByDivideConquor(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine GetFacetElement(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine GetSurface2D(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine GetSurface(obj, sorting)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
logical, intent(in), optional :: sorting

public subroutine GetInterface(obj1, obj2, iface1, iface2, err)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj1
class(Mesh_), intent(inout) :: obj2
class(Mesh_), intent(inout) :: iface1
class(Mesh_), intent(inout) :: iface2
integer(kind=int32), intent(inout), optional :: err

public subroutine GetInterfaceElemNod(obj, iface)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
class(Mesh_), intent(inout) :: iface

public subroutine GetBoundingBox(obj, BBox)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
class(Mesh_), intent(inout) :: BBox

public subroutine GetFacetElemInsideBox(obj, BBox, iface)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
class(Mesh_), intent(in) :: BBox
class(Mesh_), intent(inout) :: iface

public subroutine GetInterSectBox(obj1, obj2, BBox)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj1
class(Mesh_), intent(in) :: obj2
class(Mesh_), intent(inout) :: BBox

public subroutine GetNextFacets(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine addMesh(obj, mesh, from, length, rot_x, rot_y, rot_z, x, y, z, dx, dy, dz)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
class(Mesh_), intent(inout), optional :: mesh
integer(kind=int32), intent(in), optional :: from
real(kind=real64), intent(in), optional :: length
real(kind=real64), intent(in), optional :: rot_x
real(kind=real64), intent(in), optional :: rot_y
real(kind=real64), intent(in), optional :: rot_z
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z
real(kind=real64), intent(in), optional :: dx
real(kind=real64), intent(in), optional :: dy
real(kind=real64), intent(in), optional :: dz

public subroutine MergeMesh(inobj1, inobj2, outobj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: inobj1
class(Mesh_), intent(in) :: inobj2
class(Mesh_), intent(out) :: outobj

public subroutine ExportElemNod(obj, elem_nod)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(inout), allocatable :: elem_nod(:,:)

public subroutine ExportNodCoord(obj, nod_coord)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(inout), allocatable :: nod_coord(:,:)

public subroutine ExportSurface2D(obj, surface_nod)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(inout), allocatable :: surface_nod(:)

public subroutine DisplayMesh(obj, OptionalFolderName, OptionalFormat, FileHandle, Name)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in), optional :: OptionalFolderName
character(len=*), intent(in), optional :: OptionalFormat
integer(kind=int32), intent(in), optional :: FileHandle
character(len=*), intent(in), optional :: Name

public subroutine ShowMesh(obj, FileHandle, OnlySurface)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: FileHandle
logical, intent(in), optional :: OnlySurface

public subroutine MeltingSkeltonMesh(obj, ItrTol)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: ItrTol

public subroutine SortFacetMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine MeshingMesh(obj, Mode, itr_tol, delaunay2d)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: Mode
integer(kind=int32), intent(in), optional :: itr_tol
logical, intent(in), optional :: delaunay2d

public subroutine LaplacianMesh(obj, itr_tol)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: itr_tol

public subroutine getCircumscribedCircleMesh(obj, centerx, centery, centerz, radius)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(out) :: centerx
real(kind=real64), intent(out) :: centery
real(kind=real64), intent(out) :: centerz
real(kind=real64), intent(out) :: radius

public subroutine getCircumscribedSphereOfTetraMesh(obj, center, radius)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
real(kind=real64), intent(inout) :: center(3)
real(kind=real64), intent(inout) :: radius

public subroutine getCircumscribedSphereMesh(obj, centerx, centery, centerz, radius)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(out) :: centerx
real(kind=real64), intent(out) :: centery
real(kind=real64), intent(out) :: centerz
real(kind=real64), intent(out) :: radius

public subroutine getCircumscribedTriangleMesh(obj, triangle)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(out), allocatable :: triangle(:,:)

public subroutine getCircumscribedBoxMesh(obj, box)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
type(Mesh_), intent(inout) :: box

public subroutine DelauneygetNewNode3DMesh(obj, NodeID)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: NodeID

public subroutine DelauneygetNewNodeMesh(obj, node_id, staged_node, triangle, box)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: node_id
integer(kind=int32), intent(inout), optional :: staged_node(:)
real(kind=real64), intent(inout), optional :: triangle(:,:)
type(Mesh_), intent(in), optional :: box

public subroutine DelauneygetNewTriangleMesh(obj, triangle_node_id, new_node_id)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: triangle_node_id(:)
integer(kind=int32), intent(in) :: new_node_id

public subroutine DelauneyremoveOverlapsMesh(obj, step, NoChange)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: step
logical, intent(inout), optional :: NoChange

public subroutine RemoveFailedTriangleMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine removeCircumscribedTriangleMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine ConvertMeshTypeMesh(obj, Option)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in) :: Option

public subroutine changeElementTypeMesh(this, ElementType)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: this
integer(kind=int32), intent(in) :: ElementType(:)

public subroutine convertTetraToHexaMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine convertTriangleToRectangularMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine removeOverlappedNodeMesh(obj, tolerance)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: tolerance

public subroutine AdjustSphereMesh(obj, rx, ry, rz, debug)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: rx
real(kind=real64), intent(in), optional :: ry
real(kind=real64), intent(in), optional :: rz
logical, intent(in), optional :: debug

public subroutine AdjustCylinderMesh(obj, rx, ry, rz, debug)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: rx
real(kind=real64), intent(in), optional :: ry
real(kind=real64), intent(in), optional :: rz
logical, intent(in), optional :: debug

public subroutine cubeMesh(obj, x, y, z)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in) :: y(:)
real(kind=real64), intent(in) :: z(:)

public subroutine boxMesh(obj, x, y)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in) :: y(:)

public subroutine box_from_edge_Mesh(this, edges, divisions)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: this
real(kind=real64), intent(in) :: edges(4,2)
integer(kind=int32), intent(in) :: divisions(1:2)

public recursive subroutine createMesh(obj, meshtype, x_num, y_num, x_len, y_len, Le, Lh, Dr, thickness, division, smooth, top, margin, inclineRate, shaperatio, master, slave, x, y, z, dx, dy, dz, coordinate, species, SoyWidthRatio)

!!!

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in), optional :: meshtype
integer(kind=int32), intent(in), optional :: x_num
integer(kind=int32), intent(in), optional :: y_num
real(kind=real64), intent(in), optional :: x_len
real(kind=real64), intent(in), optional :: y_len
real(kind=real64), intent(in), optional :: Le
real(kind=real64), intent(in), optional :: Lh
real(kind=real64), intent(in), optional :: Dr
real(kind=real64), intent(in), optional :: thickness
integer(kind=int32), intent(in), optional :: division
logical, intent(in), optional :: smooth
real(kind=real64), intent(in), optional :: top
real(kind=real64), intent(in), optional :: margin
real(kind=real64), intent(in), optional :: inclineRate
real(kind=real64), intent(in), optional :: shaperatio
type(Mesh_), intent(inout), optional :: master
type(Mesh_), intent(inout), optional :: slave
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z
real(kind=real64), intent(in), optional :: dx
real(kind=real64), intent(in), optional :: dy
real(kind=real64), intent(in), optional :: dz
real(kind=real64), intent(in), optional :: coordinate(:,:)
integer(kind=int32), intent(in), optional :: species
real(kind=real64), intent(in), optional :: SoyWidthRatio

public subroutine Convert2Dto3DMesh(obj, Thickness, division, smooth, z_points)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: Thickness
integer(kind=int32), intent(in), optional :: division
logical, intent(in), optional :: smooth
real(kind=real64), intent(in), optional :: z_points(:)

public subroutine remeshMesh(obj, meshtype, x_num, y_num, x_len, y_len, Le, Lh, Dr, thickness, division, smooth, top, margin, inclineRate, shaperatio, master, slave, x, y, z, dx, dy, dz, coordinate)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in), optional :: meshtype
integer(kind=int32), intent(in), optional :: x_num
integer(kind=int32), intent(in), optional :: y_num
real(kind=real64), intent(in), optional :: x_len
real(kind=real64), intent(in), optional :: y_len
real(kind=real64), intent(in), optional :: Le
real(kind=real64), intent(in), optional :: Lh
real(kind=real64), intent(in), optional :: Dr
real(kind=real64), intent(in), optional :: thickness
integer(kind=int32), intent(in), optional :: division
logical, intent(in), optional :: smooth
real(kind=real64), intent(in), optional :: top
real(kind=real64), intent(in), optional :: margin
real(kind=real64), intent(in), optional :: inclineRate
real(kind=real64), intent(in), optional :: shaperatio
type(Mesh_), intent(inout), optional :: master
type(Mesh_), intent(inout), optional :: slave
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z
real(kind=real64), intent(in), optional :: dx
real(kind=real64), intent(in), optional :: dy
real(kind=real64), intent(in), optional :: dz
real(kind=real64), intent(in), optional :: coordinate(:,:)

public subroutine shiftMesh(obj, x, y, z)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: x
real(kind=real64), intent(in), optional :: y
real(kind=real64), intent(in), optional :: z

public subroutine checkMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine gmshMesh(obj, OptionalContorName, OptionalAbb, OptionalStep, Name, withNeumannBC, withDirichletBC, onlyNeumannBC, onlyDirichletBC, asMsh, withMaterial, ElemValue, timestep)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in), optional :: OptionalContorName
character(len=1), intent(in), optional :: OptionalAbb*6
integer(kind=int32), intent(in), optional :: OptionalStep
character(len=*), intent(in), optional :: Name
logical, intent(in), optional :: withNeumannBC
logical, intent(in), optional :: withDirichletBC
logical, intent(in), optional :: onlyNeumannBC
logical, intent(in), optional :: onlyDirichletBC
logical, intent(in), optional :: asMsh
logical, intent(in), optional :: withMaterial
real(kind=real64), intent(in), optional :: ElemValue(:,:)
integer(kind=int32), intent(in), optional :: timestep

public subroutine showRangeMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj

public subroutine jsonMesh(obj, name, fh, endl)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(in) :: obj
character(len=*), intent(in), optional :: name
integer(kind=int32), intent(in), optional :: fh
logical, intent(in), optional :: endl

public subroutine cleanMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine editMesh(obj, x, altitude)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(in), optional :: x(:)
real(kind=real64), intent(in), optional :: altitude(:)

public recursive subroutine assembleMesh(obj)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj

public subroutine arrangeNodeOrderMesh(obj, NumberOfLayer)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: NumberOfLayer

public subroutine addElementsMesh(obj, connectivity)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: connectivity(:,:)

public subroutine removeElementsMesh(obj, ElementIDs)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: ElementIDs(:)

public subroutine syncMeshClass(obj, from, mpid)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: from
type(MPI_), intent(inout) :: mpid

public subroutine convertHigherOrderMesh(this)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: this

public subroutine to_HollowTube_MESH(this, r_num, theta_num, z_num, thickness, radius, length)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: this
integer(kind=int32), intent(in), optional :: r_num
integer(kind=int32), intent(in), optional :: theta_num
integer(kind=int32), intent(in), optional :: z_num
real(kind=real64), intent(in), optional :: thickness
real(kind=real64), intent(in), optional :: radius
real(kind=real64), intent(in), optional :: length

public subroutine to_culm_MESH(this, r_num, theta_num, z_num, thickness, radius, length, node_thickness)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: this
integer(kind=int32), intent(in), optional :: r_num
integer(kind=int32), intent(in), optional :: theta_num
integer(kind=int32), intent(in), optional :: z_num
real(kind=real64), intent(in), optional :: thickness
real(kind=real64), intent(in), optional :: radius
real(kind=real64), intent(in), optional :: length
real(kind=real64), intent(in), optional :: node_thickness

public subroutine killElementMesh(obj, blacklist, flag)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: blacklist(:)
integer(kind=int32), intent(in), optional :: flag

public recursive subroutine Line_1D_Mesh(this, x_num, x_axis, x_len)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: this
integer(kind=int32), intent(in), optional :: x_num
real(kind=real64), intent(in), optional :: x_axis(:)
real(kind=real64), intent(in), optional :: x_len

public subroutine changeElementType_3D8N_to_3D20N_Mesh(this)

Arguments

Type IntentOptional Attributes Name
type(Mesh_), intent(inout) :: this

public subroutine getVerticesMesh(this, vertices, vertexIDs)

Arguments

Type IntentOptional Attributes Name
class(Mesh_), intent(inout) :: this
real(kind=real64), intent(inout), allocatable :: vertices(:)
integer(kind=int32), intent(inout), allocatable :: vertexIDs(:)