TessellationTypes Module



Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: FORCING_POINT = 1
integer, public, parameter :: NOT_FORCING_POINT = 0
integer, public, parameter :: POINT_ON_PLANE = 0
integer, public, parameter :: POINT_IN_FRONT_PLANE = 1
integer, public, parameter :: POINT_BEHIND_PLANE = 2
integer, public, parameter :: NumOfVertices = 3
character(len=8), public :: ROTATION = "rotation"
character(len=6), public :: LINEAR = "linear"

Interfaces

public interface ObjsDataLinkedList_t

public interface ObjsRealDataLinkedList_t

public interface PointLinkedList

public interface ObjectLinkedList


Derived Types

type, public ::  PointLinkedList

Components

Type Visibility Attributes Name Initial
class(point_type), public, pointer :: head => null()
integer, public :: NumOfPoints

Constructor

public function PointLinkedList_Construct ()

Type-Bound Procedures

procedure, public :: add => PointLinkedList_Add
procedure, public :: remove => PointLinkedList_Remove
procedure, public :: removeLast => PointLinkedList_RemoveLast
procedure, public :: destruct => PointLinkedList_Destruct

type, public ::  point_type

Components

Type Visibility Attributes Name Initial
class(point_type), public, pointer :: next => null()
class(point_type), public, pointer :: prev => null()
real(kind=rp), public, dimension(NDIM) :: coords
real(kind=rp), public, dimension(NDIM) :: ImagePoint_coords
real(kind=rp), public, dimension(NDIM) :: normal
real(kind=rp), public, dimension(NDIM) :: xi
real(kind=rp), public, dimension(NDIM) :: VectorValue
real(kind=rp), public :: theta
real(kind=rp), public :: dist
real(kind=rp), public :: Rank
real(kind=rp), public :: ScalarValue
integer, public :: index
integer, public :: element_index
integer, public :: NumOfIntersections
integer, public :: Translate = 0
integer, public :: partition
integer, public :: objIndex
integer, public :: isForcingPoint
integer, public :: STLNum
integer, public :: element_in
integer, public :: faceID
integer, public, dimension(NDIM) :: local_Position
logical, public :: delete = .false.
logical, public :: isInsideBody = .false.
logical, public :: forcingPoint = .false.
logical, public :: isInsideBox = .false.
real(kind=RP), public, allocatable :: invPhi(:,:)
real(kind=RP), public, allocatable :: b(:)
real(kind=RP), public, allocatable :: V(:,:,:)
real(kind=RP), public, allocatable :: bb(:,:)
real(kind=RP), public, allocatable :: Q(:,:)
integer, public, allocatable :: nearestPoints(:)

Type-Bound Procedures

procedure, public :: copy => point_type_copy

type, public ::  ObjectLinkedList

Components

Type Visibility Attributes Name Initial
class(Object_type), public, pointer :: head => null()
integer, public :: NumOfObjs

Constructor

public function ObjectLinkedList_Construct ()

Type-Bound Procedures

procedure, public :: add => ObjectLinkedList_Add
procedure, public :: destruct => ObjectLinkedList_Destruct

type, public ::  Object_type

Components

Type Visibility Attributes Name Initial
class(Object_type), public, pointer :: next => null()
class(Object_type), public, pointer :: prev => null()
type(point_type), public, dimension(:), allocatable :: vertices
real(kind=rp), public, dimension(NDIM) :: normal
real(kind=rp), public, dimension(NDIM) :: tangent
real(kind=rp), public, dimension(NDIM) :: coords
integer, public :: index
integer, public :: NumOfVertices
integer, public, dimension(2) :: partition

Type-Bound Procedures

procedure, public :: copy => object_type_copy
procedure, public :: build => object_type_build
procedure, public :: destruct => object_type_destruct

type, public ::  STLfile

Components

Type Visibility Attributes Name Initial
type(Object_type), public, dimension(:), allocatable :: ObjectsList
integer, public :: NumOfObjs
integer, public :: partition
integer, public :: motionAxis
integer, public :: body
integer, public :: NumOfObjs_OLD
real(kind=RP), public :: angularVelocity
real(kind=RP), public :: ds
real(kind=RP), public :: Velocity
real(kind=RP), public :: rotationMatrix(NDIM,NDIM)
real(kind=RP), public :: rotationCenter(NDIM)
logical, public :: move
logical, public :: show
logical, public :: construct = .false.
character(len=LINE_LENGTH), public :: filename
character(len=LINE_LENGTH), public :: motionType

Type-Bound Procedures

procedure, public :: ReadTessellation
procedure, public :: getRotationaMatrix => STLfile_getRotationaMatrix
procedure, public :: getDisplacement => STLfile_getDisplacement
procedure, public :: Clip => STL_Clip
procedure, public :: updateNormals => STL_updateNormals
procedure, public :: SetIntegration => STL_SetIntegration
procedure, public :: ComputeVectorIntegral => STL_ComputeVectorIntegral
procedure, public :: ComputeScalarIntegral => STL_ComputeScalarIntegral
procedure, public :: destroy => STLfile_destroy
procedure, public :: Describe => Describe_STLfile
procedure, public :: Copy => STLfile_copy
procedure, public :: plot => STLfile_plot
procedure, public :: SetIntegrationPoints => STL_SetIntegrationPoints

type, public ::  ObjsDataLinkedList_t

Components

Type Visibility Attributes Name Initial
type(ObjData_t), public, pointer :: head => null()
integer, public :: no_of_entries = 0

Constructor

public function ConstructObjsDataLinkedList ()

Type-Bound Procedures

procedure, public :: Add => ObjsDataLinkedList_Add
procedure, public :: check => CheckObj
procedure, public :: Destruct => ObjsDataLinkedList_Destruct

type, public ::  ObjData_t

Components

Type Visibility Attributes Name Initial
integer, public :: value
type(ObjData_t), public, pointer :: next

type, public ::  ObjsRealDataLinkedList_t

Components

Type Visibility Attributes Name Initial
class(ObjRealData_t), public, pointer :: head => NULL()
integer, public :: no_of_entries = 0

Constructor

public function ConstructObjsRealDataLinkedList ()

Type-Bound Procedures

procedure, public :: Add => ObjsRealDataLinkedList_Add
procedure, public :: check => CheckReal
procedure, public :: Destruct => ObjsRealDataLinkedList_Destruct

type, public ::  ObjRealData_t

Components

Type Visibility Attributes Name Initial
real(kind=RP), public :: value
class(ObjRealData_t), public, pointer :: next

Functions

public function ConstructObjsDataLinkedList()

Arguments

None

Return Value type(ObjsDataLinkedList_t)

Arguments

None

Return Value type(ObjsRealDataLinkedList_t)

public function CheckObj(this, value) result(found)

Arguments

Type IntentOptional Attributes Name
class(ObjsDataLinkedList_t), intent(inout) :: this
integer, intent(in) :: value

Return Value logical

public function CheckReal(this, value) result(found)

Arguments

Type IntentOptional Attributes Name
class(ObjsRealDataLinkedList_t), intent(inout) :: this
real(kind=RP), intent(in) :: value

Return Value logical

public function PointLinkedList_Construct()

Arguments

None

Return Value type(PointLinkedList)

public function ObjectLinkedList_Construct()

Arguments

None

Return Value type(ObjectLinkedList)

public function STL_ComputeScalarIntegral(this)

Arguments

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

Return Value real(kind=RP)

public function STL_ComputeVectorIntegral(this)

Arguments

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

Return Value real(kind=RP), (NDIM)

public function TriangleScalarIntegral(obj, ScalarVar) result(Val)

Arguments

Type IntentOptional Attributes Name
type(Object_type), intent(in) :: obj
real(kind=RP), intent(in) :: ScalarVar(NumOfVertices+4)

Return Value real(kind=RP)

public function TriangleVectorIntegral(obj, VectorVar) result(Val)

Arguments

Type IntentOptional Attributes Name
type(Object_type), intent(in) :: obj
real(kind=RP), intent(in) :: VectorVar(NDIM,NumOfVertices+4)

Return Value real(kind=RP), (NDIM)

public function Point_wrt_Plane(plane_normal, plane_point, point) result(PointIs)

Arguments

Type IntentOptional Attributes Name
real(kind=RP), intent(in), dimension(:) :: plane_normal
real(kind=RP), intent(in), dimension(:) :: plane_point
real(kind=RP), intent(in), dimension(:) :: point

Return Value integer

public function EdgePlaneIntersection(plane_normal, plane_point, PointA, PointB) result(Point_inters)

Arguments

Type IntentOptional Attributes Name
real(kind=RP), intent(in) :: plane_normal(:)
real(kind=RP), intent(in) :: plane_point(:)
real(kind=RP), intent(in) :: PointA(:)
real(kind=RP), intent(in) :: PointB(:)

Return Value real(kind=RP), (NDIM)

public function EvaluateInterp(coeff, x, y, z) result(value)

Arguments

Type IntentOptional Attributes Name
real(kind=rp), intent(in) :: coeff(:)
real(kind=rp), intent(in) :: x
real(kind=rp), intent(in) :: y
real(kind=rp), intent(in) :: z

Return Value real(kind=rp)


Subroutines

public subroutine ObjsDataLinkedList_Add(this, value)

Arguments

Type IntentOptional Attributes Name
class(ObjsDataLinkedList_t), intent(inout) :: this
integer, intent(in) :: value

public subroutine ObjsRealDataLinkedList_Add(this, value)

Arguments

Type IntentOptional Attributes Name
class(ObjsRealDataLinkedList_t), intent(inout) :: this
real(kind=RP), intent(in) :: value

public elemental subroutine ObjsDataLinkedList_Destruct(this)

Arguments

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

public elemental subroutine ObjsRealDataLinkedList_Destruct(this)

Arguments

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

public subroutine PointLinkedList_Add(this, point)

Arguments

Type IntentOptional Attributes Name
class(PointLinkedList) :: this
type(point_type) :: point

public subroutine PointLinkedList_Remove(this, p)

Arguments

Type IntentOptional Attributes Name
class(PointLinkedList), intent(inout) :: this
type(point_type), intent(inout), target :: p

public subroutine PointLinkedList_RemoveLast(this)

Arguments

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

public subroutine PointLinkedList_Destruct(this)

Arguments

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

public subroutine point_type_copy(this, point)

Arguments

Type IntentOptional Attributes Name
class(point_type), intent(inout) :: this
type(point_type), intent(in) :: point

public subroutine ObjectLinkedList_Add(this, object)

Arguments

Type IntentOptional Attributes Name
class(ObjectLinkedList) :: this
type(Object_type) :: object

public subroutine ObjectLinkedList_Destruct(this)

Arguments

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

public subroutine object_type_build(this, Points, normal, NumOfVertices, index)

Arguments

Type IntentOptional Attributes Name
class(Object_type), intent(inout) :: this
real(kind=RP), intent(in) :: Points(:,:)
real(kind=RP), intent(in) :: normal(:)
integer, intent(in) :: NumOfVertices
integer, intent(in) :: index

public subroutine object_type_copy(this, Object)

Arguments

Type IntentOptional Attributes Name
class(Object_type), intent(inout) :: this
type(Object_type), intent(in) :: Object

public subroutine object_type_destruct(this)

Arguments

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

public subroutine addObj(ObjList, Object)

Arguments

Type IntentOptional Attributes Name
type(Object_type), intent(inout), target :: ObjList
type(Object_type), intent(in) :: Object

public subroutine Describe_STLfile(this, filename)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
character(len=*), intent(in) :: filename

public subroutine DescribeSTLPartitions(partition, NumOfObjs)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: partition
integer, intent(in) :: NumOfObjs

public subroutine ReadTessellation(this, filename)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
character(len=*), intent(in) :: filename

public subroutine STL_SetIntegrationPoints(this)

Arguments

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

public subroutine STLfile_plot(this, iter)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
integer, intent(in) :: iter

public subroutine STLfile_copy(this, STL)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
type(STLfile), intent(in) :: STL

public subroutine STLfile_GetMotionInfo(this, STLfilename, NumOfSTL)

Arguments

Type IntentOptional Attributes Name
type(STLfile), intent(inout) :: this
character(len=*), intent(in) :: STLfilename
integer, intent(in) :: NumOfSTL

public subroutine STLfile_getRotationaMatrix(this, t, angle)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
real(kind=RP), intent(in) :: t
real(kind=RP), intent(in), optional :: angle

public subroutine STLfile_getDisplacement(this, t)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
real(kind=RP), intent(in) :: t

public subroutine STL_updateNormals(this)

Arguments

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

public subroutine STLfile_destroy(this)

Arguments

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

public subroutine STL_Clip(this, minplane, maxplane, axis, describe)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
real(kind=RP), intent(in) :: minplane
real(kind=RP), intent(in) :: maxplane
integer, intent(in) :: axis
logical, intent(in) :: describe

public subroutine ClipPloy(obj, plane_normal, plane_point, ObjectsLinkedList)

Arguments

Type IntentOptional Attributes Name
type(Object_type), intent(in) :: obj
real(kind=rp), intent(in) :: plane_normal(:)
real(kind=rp), intent(in) :: plane_point(:)
type(ObjectLinkedList), intent(inout) :: ObjectsLinkedList

public subroutine STL_SetIntegration(this, NumOfInterPoints)

Arguments

Type IntentOptional Attributes Name
class(STLfile), intent(inout) :: this
integer, intent(in) :: NumOfInterPoints

public subroutine TecFileHeader(FileName, Title, I, J, K, funit, DATAPACKING, ZONETYPE)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: FileName
character(len=*), intent(in) :: Title
integer, intent(in) :: I
integer, intent(in) :: J
integer, intent(in) :: K
integer, intent(out) :: funit
character(len=*), intent(in) :: DATAPACKING
character(len=*), optional :: ZONETYPE

public subroutine PolynomialVector(x, y, z, v)

Arguments

Type IntentOptional Attributes Name
real(kind=rp), intent(in) :: x
real(kind=rp), intent(in) :: y
real(kind=rp), intent(in) :: z
real(kind=rp), intent(inout) :: v(:)

public subroutine buildMatrixPolySpline(Phi, P, P_T, V)

Arguments

Type IntentOptional Attributes Name
real(kind=rp), intent(in) :: Phi(:,:)
real(kind=rp), intent(in) :: P(:,:)
real(kind=rp), intent(in) :: P_T(:,:)
real(kind=rp), intent(inout) :: V(:,:)