GeometryClass Module



Contents


Derived Types

type, public :: Point_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public, allocatable:: coord(:)
character(len=30), public :: name

Type-Bound Procedures

procedure, public :: Init => InitPoint
procedure, public :: set => setPoint
procedure, public :: show => showPoint

type, public :: Line_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public, allocatable:: coord(:,:)

Type-Bound Procedures

procedure, public :: Init => InitLine
procedure, public :: setNode => SetNodeLine
procedure, public :: import => importLine
procedure, public :: show => showLine

type, public :: Circle_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public :: radius
real(kind=real64), public, allocatable:: center(:)

Type-Bound Procedures

procedure, public :: Init => InitCircle
procedure, public :: SetCenter => InitSetCenterCircle
procedure, public :: SetRadius => InitSetRadiusCircle
procedure, public :: getArea => getAreaCircle
procedure, public :: show => showCircle

type, public :: Sphere_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public :: radius
real(kind=real64), public :: center(3)

Type-Bound Procedures

procedure, public :: Init => InitSphere
procedure, public :: SetCenter => InitSetCenterSphere
procedure, public :: SetRadius => InitSetRadiusSphere
procedure, public :: show => showSphere

type, public :: Triangle_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public, allocatable:: NodCoord(:,:)
real(kind=real64), public, allocatable:: OuterNormal(:)
real(kind=real64), public, allocatable:: Center(:)

Type-Bound Procedures

procedure, public :: Init => InitTriangle
procedure, public :: setNode => setNodeTriangle
procedure, public :: import => importTriangle
procedure, public :: getCircle => getCircleTriangle
procedure, public :: getArea => getAreaTriangle
procedure, public :: show => showTriangle
procedure, public :: GetOuterNormal => GetOuterNormalTriangle

type, public :: Rectangle_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public, allocatable:: NodCoord(:,:)

Type-Bound Procedures

procedure, public :: Init => InitRectangle
procedure, public :: create => createRectangle
procedure, public :: move => moveRectangle
procedure, public :: setNode => setNodeRectangle
procedure, public :: import => importRectangle
procedure, public :: getCircle => getCircleRectangle
procedure, public :: getArea => getAreaRectangle
procedure, public :: show => showRectangle
procedure, public :: contact => contactRectangle

type, public :: Tetragon_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public, allocatable:: NodCoord(:,:)

type, public :: Tetrahedron_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public :: NodCoord(4,3)
real(kind=real64), public :: radius
real(kind=real64), public :: center(3)

Type-Bound Procedures

procedure, public :: Init => InitTetrahedron
procedure, public :: getCircle => getCircleTetrahedron

type, public :: Octahedron_

Components

TypeVisibility AttributesNameInitial
real(kind=real64), public, allocatable:: NodCoord(:,:)

Functions

public function getAreaCircle(obj) result(area)

Arguments

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

Return Value real(kind=real64)

public function getAreaTriangle(obj) result(area)

Arguments

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

Return Value real(kind=real64)

public function getAreaRectangle(obj) result(area)

Arguments

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

Return Value real(kind=real64)

public function contactRectangle(obj, Rectangle, threshold) result(contact)

Arguments

Type IntentOptional AttributesName
class(Rectangle_), intent(in) :: obj
class(Rectangle_), intent(in) :: Rectangle
integer(kind=int32), intent(in), optional :: threshold

Return Value logical


Subroutines

public subroutine InitPoint(obj, dim)

Arguments

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

public subroutine showPoint(obj, Name)

Arguments

Type IntentOptional AttributesName
class(Point_), intent(in) :: obj
character(len=*), intent(in), optional :: Name

public subroutine setPoint(obj, x, y, z, xvec)

Arguments

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

public subroutine InitLine(obj, dim)

Arguments

Type IntentOptional AttributesName
class(Line_), intent(inout) :: obj
integer(kind=int32), intent(inout), optional :: dim

public subroutine SetNodeLine(obj, Point, position)

Arguments

Type IntentOptional AttributesName
class(Line_), intent(inout) :: obj
class(Point_), intent(in) :: Point
integer(kind=int32), intent(in) :: position

public subroutine importLine(obj, NodCoord)

Arguments

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

public subroutine showLine(obj, Name)

Arguments

Type IntentOptional AttributesName
class(Line_), intent(in) :: obj
character(len=*), intent(in), optional :: Name

public subroutine InitCircle(obj, dim)

Arguments

Type IntentOptional AttributesName
class(Circle_), intent(inout) :: obj
integer(kind=int32), intent(inout), optional :: dim

public subroutine InitSetCenterCircle(obj, point)

Arguments

Type IntentOptional AttributesName
class(Circle_), intent(inout) :: obj
class(Point_), intent(in) :: point

public subroutine InitSetRadiusCircle(obj, radius)

Arguments

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

public subroutine showCircle(obj, Name)

Arguments

Type IntentOptional AttributesName
class(Circle_), intent(in) :: obj
character(len=*), intent(in), optional :: Name

public subroutine InitSphere(obj, dim)

Arguments

Type IntentOptional AttributesName
class(Sphere_), intent(inout) :: obj
integer(kind=int32), intent(inout), optional :: dim

public subroutine InitSetCenterSphere(obj, point)

Arguments

Type IntentOptional AttributesName
class(Sphere_), intent(inout) :: obj
class(Point_), intent(in) :: point

public subroutine InitSetRadiusSphere(obj, radius)

Arguments

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

public subroutine showSphere(obj, Name)

Arguments

Type IntentOptional AttributesName
class(Sphere_), intent(in) :: obj
character(len=*), intent(in), optional :: Name

public subroutine InitTriangle(obj, dim)

Arguments

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

public subroutine setNodeTriangle(obj, point, order)

Arguments

Type IntentOptional AttributesName
class(Triangle_), intent(inout) :: obj
class(Point_), intent(in) :: point
integer(kind=int32), intent(in) :: order

public subroutine importTriangle(obj, NodCoord, FileName)

Arguments

Type IntentOptional AttributesName
class(Triangle_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: NodCoord(:,:)
character(len=*), intent(in), optional :: FileName

public subroutine getCircleTriangle(obj, type_of_circle, circle)

Arguments

Type IntentOptional AttributesName
class(Triangle_), intent(in) :: obj
character(len=*), intent(in) :: type_of_circle
type(Circle_), intent(inout) :: circle

public subroutine showTriangle(obj, Name, option)

Arguments

Type IntentOptional AttributesName
class(Triangle_), intent(in) :: obj
character(len=*), intent(in), optional :: Name
character(len=*), intent(in), optional :: option

public subroutine GetOuterNormalTriangle(obj)

Arguments

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

public subroutine InitRectangle(obj, dim)

Arguments

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

public subroutine createRectangle(obj)

Arguments

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

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

Arguments

Type IntentOptional AttributesName
class(Rectangle_), 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 setNodeRectangle(obj, point, order)

Arguments

Type IntentOptional AttributesName
class(Rectangle_), intent(inout) :: obj
class(Point_), intent(in) :: point
integer(kind=int32), intent(in) :: order

public subroutine importRectangle(obj, NodCoord, FileName)

Arguments

Type IntentOptional AttributesName
class(Rectangle_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: NodCoord(:,:)
character(len=*), intent(in), optional :: FileName

public subroutine getCircleRectangle(obj, type_of_circle, circle)

Arguments

Type IntentOptional AttributesName
class(Rectangle_), intent(in) :: obj
character(len=*), intent(in) :: type_of_circle
type(Circle_), intent(inout) :: circle

public subroutine showRectangle(obj, Name, option)

Arguments

Type IntentOptional AttributesName
class(Rectangle_), intent(in) :: obj
character(len=*), intent(in), optional :: Name
character(len=*), intent(in), optional :: option

public subroutine InitTetrahedron(obj, NodCoord)

Arguments

Type IntentOptional AttributesName
class(Tetrahedron_), intent(inout) :: obj
real(kind=real64), intent(in) :: NodCoord(4,3)

public subroutine getCircleTetrahedron(obj)

Arguments

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