MeshClass Module


Uses


Contents


Variables

TypeVisibility AttributesNameInitial
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

Derived Types

type, public :: Mesh_

Components

TypeVisibility AttributesNameInitial
character(len=200), public :: 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, allocatable:: BottomElemID
integer(kind=int32), public, allocatable:: 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=70), public :: ElemType =" "
character(len=70), public :: ErrorMsg =" "
character(len=70), public :: meshtype

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 :: copy => CopyMesh
procedure, public :: cut => cutMesh
procedure, public :: convertMeshType => ConvertMeshTypeMesh
procedure, public :: convertTetraToHexa => convertTetraToHexaMesh
procedure, public :: convertTriangleToRectangular => convertTriangleToRectangularMesh
procedure, public :: create => createMesh
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 :: getCoordinate => getCoordinateMesh
procedure, public :: getNodeIDinElement => getNodeIDinElementMesh
procedure, public :: getFacetElement => GetFacetElement
procedure, public :: getFacetNodeID => getFacetNodeIDMesh
procedure, public :: getSurface => GetSurface
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 :: 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 :: length => lengthMesh
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

Functions

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(in) :: obj

Return Value real(kind=real64) (3)

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(in) :: obj
integer(kind=int32), intent(in) :: ElementID

Return Value type(Mesh_)

public function GetElemTypeMesh(obj) result(ElemType)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(in) :: obj

Return Value character(len=200)

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

Arguments

Type IntentOptional AttributesName
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 function emptyMesh(obj) result(res)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(in) :: obj

Return Value logical

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj

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

public function numElementsMesh(obj) result(ret)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public function numNodesMesh(obj) result(ret)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public function numNodesForEachElementMesh(obj) result(ret)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

public function numDimensionMesh(obj) result(ret)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(in) :: obj

Return Value integer(kind=int32)

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

Arguments

Type IntentOptional AttributesName
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 function InsideOfElementMesh(obj, ElementID, x, y, z) result(Inside)

Arguments

Type IntentOptional AttributesName
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 function getCenterCoordinateMesh(obj, elemid) result(ret)

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: 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 AttributesName
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 function positionMesh(obj, id) result(x)

Arguments

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

Return Value real(kind=real64) (3)

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

Arguments

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

Return Value real(kind=real64)

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

Arguments

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

Return Value real(kind=real64)

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

Arguments

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

Return Value real(kind=real64)


Subroutines

public subroutine cutMesh(obj, material1, material2)

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine CopyMesh(obj, cobj, Minimum)

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in) :: elem_nod(:,:)

public subroutine ImportNodCoord(obj, nod_coord)

Arguments

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

public subroutine ImportElemMat(obj, elem_mat)

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine GetFacetElement(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine GetSurface2D(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine GetSurface(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
class(Mesh_), intent(in) :: obj
class(Mesh_), intent(inout) :: iface

public subroutine GetBoundingBox(obj, BBox)

Arguments

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

public subroutine GetFacetElemInsideBox(obj, BBox, iface)

Arguments

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

public subroutine GetInterSectBox(obj1, obj2, BBox)

Arguments

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

public subroutine GetNextFacets(obj)

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(in) :: inobj1
class(Mesh_), intent(in) :: inobj2
class(Mesh_), intent(out) :: outobj

public subroutine ExportElemNod(obj, elem_nod)

Arguments

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

public subroutine ExportNodCoord(obj, nod_coord)

Arguments

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

public subroutine ExportSurface2D(obj, surface_nod)

Arguments

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

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: ItrTol

public subroutine SortFacetMesh(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: itr_tol

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj
real(kind=real64), intent(out), allocatable:: triangle(:,:)

public subroutine getCircumscribedBoxMesh(obj, box)

Arguments

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

public subroutine DelauneygetNewNode3DMesh(obj, NodeID)

Arguments

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

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: step
logical, intent(inout), optional :: NoChange

public subroutine RemoveFailedTriangleMesh(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine removeCircumscribedTriangleMesh(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine ConvertMeshTypeMesh(obj, Option)

Arguments

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

public subroutine convertTetraToHexaMesh(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine convertTriangleToRectangularMesh(obj)

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine removeOverlappedNodeMesh(obj, tolerance)

Arguments

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

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
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 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 AttributesName
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)

Arguments

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

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 AttributesName
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 AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj

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

Arguments

Type IntentOptional AttributesName
class(Mesh_), intent(inout) :: obj
character(len=*), intent(in), optional :: OptionalContorName
character, 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 AttributesName
class(Mesh_), intent(in) :: obj

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

Arguments

Type IntentOptional AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine editMesh(obj, x, altitude)

Arguments

Type IntentOptional AttributesName
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 AttributesName
class(Mesh_), intent(inout) :: obj

public subroutine arrangeNodeOrderMesh(obj, NumberOfLayer)

Arguments

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

public subroutine addElementsMesh(obj, connectivity)

Arguments

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

public subroutine removeElementsMesh(obj, ElementIDs)

Arguments

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