ObserverClass Derived Type

type, public :: ObserverClass


Components

Type Visibility Attributes Name Initial
integer, public :: ID
real(kind=RP), public, dimension(NDIM) :: x
integer, public :: numberOfFaces
class(ObserverSourcePairClass), public, dimension(:), allocatable :: sourcePair
real(kind=RP), public, dimension(:,:), allocatable :: Pac
real(kind=RP), public :: tDelay
real(kind=RP), public :: tDelayMax
logical, public :: active
character(len=STR_LEN_OBSERVER), public :: observerName
character(len=STR_LEN_OBSERVER), public :: fileName

Type-Bound Procedures

procedure, public :: construct => ObserverConstruct

  • public subroutine ObserverConstruct(self, sourceZone, mesh, ID, solution_file, FirstCall, interpolate, totalNumberOfFaces, elementSide)

    Arguments

    Type IntentOptional Attributes Name
    class(ObserverClass) :: self
    class(Zone_t), intent(in) :: sourceZone
    class(HexMesh), intent(in) :: mesh
    integer, intent(in) :: ID
    character(len=*), intent(in) :: solution_file
    logical, intent(in) :: FirstCall
    logical, intent(in) :: interpolate
    integer, intent(in) :: totalNumberOfFaces
    integer, intent(in), dimension(:) :: elementSide

procedure, public :: destruct => ObserverDestruct

procedure, public :: update => ObserverUpdate

  • public subroutine ObserverUpdate(self, mesh, isSolid, bufferPosition, interpolate)

    Arguments

    Type IntentOptional Attributes Name
    class(ObserverClass) :: self
    class(HexMesh), intent(in) :: mesh
    logical, intent(in) :: isSolid
    integer, intent(in), optional :: bufferPosition
    logical, intent(in) :: interpolate

procedure, public :: writeToFile => ObserverWriteToFile

  • public subroutine ObserverWriteToFile(self, iter, tsource, no_of_lines)

    Arguments

    Type IntentOptional Attributes Name
    class(ObserverClass) :: self
    integer, dimension(:) :: iter
    real(kind=RP), dimension(:) :: tsource
    integer :: no_of_lines

procedure, public :: updateTdelay => ObserverUpdateTdelay

  • public subroutine ObserverUpdateTdelay(self, totalNumberOfFaces)

    Arguments

    Type IntentOptional Attributes Name
    class(ObserverClass) :: self
    integer, intent(in) :: totalNumberOfFaces

procedure, public :: interpolateSol => ObserverInterpolateSol

  • public subroutine ObserverInterpolateSol(self, tsource, no_of_lines)

    Arguments

    Type IntentOptional Attributes Name
    class(ObserverClass) :: self
    real(kind=RP), intent(in), dimension(:) :: tsource
    integer, intent(in) :: no_of_lines

procedure, public :: sumIntegrals => ObserverSumIntegrals

  • public subroutine ObserverSumIntegrals(self, nDiscard, N, startIndex, no_of_lines)

    Arguments

    Type IntentOptional Attributes Name
    class(ObserverClass) :: self
    integer, intent(in), dimension(self % numberOfFaces) :: nDiscard
    integer, intent(in) :: N
    integer, intent(in) :: startIndex
    integer, intent(in) :: no_of_lines

procedure, public :: updateOneStep => ObserverUpdateOneStep

  • public subroutine ObserverUpdateOneStep(self, mesh, bufferPosition, isSolid, tsource)

    Arguments

    Type IntentOptional Attributes Name
    class(ObserverClass) :: self
    class(HexMesh), intent(in) :: mesh
    integer, intent(in) :: bufferPosition
    logical, intent(in) :: isSolid
    real(kind=RP), intent(in) :: tsource