IBM_type Derived Type

type, public :: IBM_type


Components

Type Visibility Attributes Name Initial
type(STLfile), public, allocatable :: stl(:)
type(STLfile), public, allocatable :: stlSurfaceIntegrals(:)
type(STLfile), public, allocatable :: stlMove(:)
type(KDtree), public, allocatable :: root(:)
type(KDtree), public, allocatable :: rootDistance(:)
type(KDtree), public, allocatable :: rootPoints(:)
type(PointLinkedList), public :: BandPoints
type(IBMpoints), public, allocatable :: BandRegion(:)
type(IBMpoints), public, allocatable :: BandRegion4Distance(:)
type(point_type), public, allocatable :: ImagePoints(:)
type(Integral_t), public, allocatable :: Integral(:)
character(len=LINE_LENGTH), public, allocatable :: STLfilename(:)
character(len=LINE_LENGTH), public :: filename
logical, public :: plotOBB = .false.
logical, public :: plotKDtree = .false.
logical, public :: active = .false.
logical, public :: TimePenal = .false.
logical, public :: semiImplicit = .false.
logical, public :: ComputeBandRegion = .false.
logical, public :: plotBandPoints = .false.
logical, public :: plotMask = .false.
logical, public :: ComputeInterpolation = .false.
logical, public :: Wallfunction = .false.
logical, public :: ComputeDistance = .false.
logical, public :: AAB = .false.
real(kind=rp), public :: eta
real(kind=rp), public :: BandRegionCoeff
real(kind=rp), public :: IP_Distance = 0.0_RP
real(kind=rp), public :: y_plus_target
real(kind=rp), public :: minCOORDS
real(kind=rp), public :: maxCOORDS
real(kind=rp), public :: penalCoeff
real(kind=rp), public, allocatable :: penalization(:)
integer, public :: KDtree_Min_n_of_Objs
integer, public :: NumOfInterPoints
integer, public :: n_of_INpoints
integer, public :: rank
integer, public :: lvl = 0
integer, public :: NumOfSTL
integer, public :: NumOfForcingPoints
integer, public :: Clipaxis = 0
integer, public :: Nx
integer, public :: Ny
integer, public :: Nz
integer, public :: LocClipAxis = 0
integer, public :: InterpolationType
integer, public, allocatable :: ImagePoint_NearestPoints(:,:)

Type-Bound Procedures

procedure, public :: read_info => IBM_read_info

procedure, public :: construct => IBM_construct

procedure, public :: constructMask => IBM_constructmask

  • public subroutine IBM_constructmask(this, elements, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: STLNum

procedure, public :: constructSTL_KDtree => IBM_constructSTL_KDtree

  • public subroutine IBM_constructSTL_KDtree(this, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: STLNum

procedure, public :: CheckPoint => IBM_CheckPoint

  • public subroutine IBM_CheckPoint(this, Point, STLNum, NumOfIntersections)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    real(kind=rp), intent(inout) :: Point(:)
    integer, intent(in) :: STLNum
    integer, intent(inout) :: NumOfIntersections

procedure, public :: constructBandRegion => IBM_constructBandRegion

  • public subroutine IBM_constructBandRegion(this, elements, no_of_elements, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: no_of_elements
    integer, intent(in) :: STLNum

procedure, public :: constructBandRegion4Distance => IBM_constructBandRegion4Distance

  • public subroutine IBM_constructBandRegion4Distance(this, elements, no_of_elements, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: no_of_elements
    integer, intent(in) :: STLNum

procedure, public :: build => IBM_build

  • public subroutine IBM_build(this, elements, no_of_elements, no_of_DoFs, isChild, movingSTL, iter)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: no_of_elements
    integer, intent(in) :: no_of_DoFs
    logical, intent(in) :: isChild
    integer, intent(in), optional :: movingSTL
    integer, intent(in), optional :: iter

procedure, public :: SetPolynomialOrder => IBM_SetPolynomialOrder

  • public subroutine IBM_SetPolynomialOrder(this, elements, corners)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    real(kind=RP), intent(in), optional :: corners(:,:)

procedure, public :: GetMask => IBM_GetMask

  • public subroutine IBM_GetMask(this, elements, no_of_elements, no_of_DoFs, STLNum, iter)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: no_of_elements
    integer, intent(in) :: no_of_DoFs
    integer, intent(in) :: STLNum
    integer, intent(in) :: iter

procedure, public :: MPI_sendOBB => IBM_MPI_sendOBB

  • public subroutine IBM_MPI_sendOBB(this, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: STLNum

procedure, public :: MPI_sendSTLpartitions => IBM_MPI_sendSTLpartitions

  • public subroutine IBM_MPI_sendSTLpartitions(this, STLNum, vertices)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: STLNum
    real(kind=RP), intent(inout) :: vertices(:,:)

procedure, public :: MPI_sendMask2Root => IBM_MPI_sendMask2Root

procedure, public :: MPI_sendMask2Partitions => IBM_MPI_sendMask2Partitions

procedure, public :: MPI_sendNormals2Root => IBM_MPI_sendNormals2Root

  • public subroutine IBM_MPI_sendNormals2Root(this, pointsList, ranks)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(IBMpoints), intent(inout) :: pointsList
    real(kind=RP), intent(in) :: ranks(:)

procedure, public :: MPI_sendDistNormals2partitions => IBM_MPI_sendDistNormals2partitions

procedure, public :: BandRegionPoints => IBM_bandRegionPoints

  • public subroutine IBM_bandRegionPoints(this, elements, n_of_elements, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: n_of_elements
    integer, intent(in) :: STLNum

procedure, public :: GetForcingPointsGeom => IBM_GetForcingPointsGeom

  • public subroutine IBM_GetForcingPointsGeom(this, elements)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)

procedure, public :: GetInfo => IBM_GetInfo

  • public subroutine IBM_GetInfo(this, controlVariables)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    class(FTValueDictionary) :: controlVariables

procedure, public :: SourceTerm => IBM_SourceTerm

  • public subroutine IBM_SourceTerm(this, eID, Q, Q_target, Source, Wallfunction)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: eID
    real(kind=rp), intent(in) :: Q(:)
    real(kind=rp), intent(in), optional :: Q_target(:)
    real(kind=rp), intent(inout) :: Source(:)
    logical, intent(in) :: Wallfunction

procedure, public :: ComputeIBMWallDistance => IBM_ComputeIBMWallDistance

  • public subroutine IBM_ComputeIBMWallDistance(this, elements, movingSTL)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in), optional :: movingSTL

procedure, public :: GetDistanceInsideBox => IBM_GetDistanceInsideBox

  • public subroutine IBM_GetDistanceInsideBox(this, elements, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: STLNum

procedure, public :: GetDistanceOutsideBox => IBM_GetDistanceOutsideBox

  • public subroutine IBM_GetDistanceOutsideBox(this, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: STLNum

procedure, public :: SemiImplicitCorrection => IBM_SemiImplicitCorrection

  • public subroutine IBM_SemiImplicitCorrection(this, elements, t, dt)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    real(kind=RP), intent(in) :: t
    real(kind=RP), intent(in) :: dt

procedure, public :: GetImagePoint_nearest => IBM_GetImagePoint_nearest

  • public subroutine IBM_GetImagePoint_nearest(this, elements)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)

procedure, public :: GetBandRegionStates => IBM_GetBandRegionStates

  • public subroutine IBM_GetBandRegionStates(this, elements)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(in) :: elements(:)

procedure, public :: GetDomainExtreme => IBM_GetDomainExtreme

  • public subroutine IBM_GetDomainExtreme(this, elements)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(in) :: elements(:)

procedure, public :: SourceTermTurbulence => IBM_SourceTermTurbulence

  • public subroutine IBM_SourceTermTurbulence(this, ImagePoint, Q, normal, dWall, STLNum, TurbulenceSource)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(point_type), intent(in) :: ImagePoint
    real(kind=rp), intent(in) :: Q(:)
    real(kind=rp), intent(in) :: normal(:)
    real(kind=rp), intent(in) :: dWall
    integer, intent(in) :: STLNum
    real(kind=rp), intent(inout) :: TurbulenceSource(NCONS)

procedure, public :: semiImplicitShiftJacobian => IBM_semiImplicitShiftJacobian

  • public subroutine IBM_semiImplicitShiftJacobian(this, eID, Q, dt, invdS_dQ)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: eID
    real(kind=rp), intent(in) :: Q(:)
    real(kind=rp), intent(in) :: dt
    real(kind=rp), intent(inout) :: invdS_dQ(:,:)

procedure, public :: semiImplicitTurbulenceShiftJacobian => IBM_SemiImplicitTurbulenceShiftJacobian

  • public subroutine IBM_SemiImplicitTurbulenceShiftJacobian(this, dt, invdS_dQ)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    real(kind=RP), intent(in) :: dt
    real(kind=RP), intent(inout) :: invdS_dQ(:,:)

procedure, public :: semiImplicitJacobian => IBM_semiImplicitJacobian

  • public subroutine IBM_semiImplicitJacobian(this, eID, Q, dS_dQ)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: eID
    real(kind=rp), intent(in) :: Q(:)
    real(kind=rp), intent(inout) :: dS_dQ(:,:)

procedure, public :: semiImplicitTurbulenceJacobian => IBM_semiImplicitTurbulenceJacobian

  • public subroutine IBM_semiImplicitTurbulenceJacobian(this, ImagePoint, Q, normal, dWall, STLNum, dS_dQ)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(point_type), intent(in) :: ImagePoint
    real(kind=rp), intent(in) :: Q(:)
    real(kind=rp), intent(in) :: normal(:)
    real(kind=rp), intent(in) :: dWall
    integer, intent(in) :: STLNum
    real(kind=rp), intent(inout) :: dS_dQ(:,:)

procedure, public :: GetSemiImplicitStep => IBM_GetSemiImplicitStep

  • public subroutine IBM_GetSemiImplicitStep(this, eID, dt, Q, Q_target)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: eID
    real(kind=rp), intent(in) :: dt
    real(kind=rp), intent(inout) :: Q(NCONS)
    real(kind=rp), intent(in), optional :: Q_target(NCONS)

procedure, public :: GetSemiImplicitStepTurbulence => IBM_GetSemiImplicitStepTurbulence

  • public subroutine IBM_GetSemiImplicitStepTurbulence(this, ImagePoint, dt, Q, normal, dWall, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(point_type), intent(in) :: ImagePoint
    real(kind=rp), intent(in) :: dt
    real(kind=rp), intent(inout) :: Q(:)
    real(kind=rp), intent(in) :: normal(:)
    real(kind=rp), intent(in) :: dWall
    integer, intent(in) :: STLNum

procedure, public :: SetIntegration => IBM_SetIntegration

  • public subroutine IBM_SetIntegration(this, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    integer, intent(in) :: STLNum

procedure, public :: copy => IBM_copy

  • public subroutine IBM_copy(this, parent, lvl)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(IBM_type), intent(in), target :: parent
    integer, intent(in) :: lvl

procedure, public :: MoveBody => IBM_MoveBody

  • public subroutine IBM_MoveBody(this, elements, no_of_elements, no_of_DoFs, isChild, t, iter, autosave)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: no_of_elements
    integer, intent(in) :: no_of_DoFs
    logical, intent(in) :: isChild
    real(kind=RP), intent(in) :: t
    integer, intent(in), optional :: iter
    logical, intent(in), optional :: autosave

procedure, public :: CleanMask => IBM_CleanMask

  • public subroutine IBM_CleanMask(this, elements, no_of_elements, STLNum)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(inout) :: elements(:)
    integer, intent(in) :: no_of_elements
    integer, intent(in) :: STLNum

procedure, public :: BandPoint_state => IBM_BandPoint_state

  • public subroutine IBM_BandPoint_state(this, elements, STLnum, gradients)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    type(element), intent(in) :: elements(:)
    integer, intent(in) :: STLnum
    logical, intent(in) :: gradients

procedure, public :: Describe => IBM_Describe

  • public subroutine IBM_Describe(this)

    Arguments

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

procedure, public :: plot_Mask => IBM_plot_Mask

  • public subroutine IBM_plot_Mask(this, iter, STLNum)

    Arguments

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

procedure, public :: Destruct => IBM_Destruct

  • public subroutine IBM_Destruct(this, isChild)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    logical, intent(in) :: isChild

procedure, public :: DestroyKDtree => IBM_DestroyKDtree

  • public subroutine IBM_DestroyKDtree(this, isChild, DistanceKDtree)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    logical, intent(in) :: isChild
    logical, intent(in), optional :: DistanceKDtree

procedure, public :: constructDistance_KDtree => IBM_constructDistance_KDtree

procedure, public :: MPI_PointsListOperations => IBM_MPI_PointsListOperations

procedure, public :: MaskVelocity => IBM_MaskVelocity

  • public function IBM_MaskVelocity(this, Q, nEqn, STLNum, x, t) result(Q_target)

    Arguments

    Type IntentOptional Attributes Name
    class(IBM_type), intent(inout) :: this
    real(kind=RP), intent(in) :: Q(nEqn)
    integer, intent(in) :: nEqn
    integer, intent(in) :: STLNum
    real(kind=RP), intent(in) :: x(NDIM)
    real(kind=RP), intent(in) :: t

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