FWHObseverClass Module


Uses


Derived Types

type, public ::  ObserverSourcePairClass

Components

Type Visibility Attributes Name Initial
real(kind=RP), public, dimension(:,:,:), allocatable :: rVect
real(kind=RP), public, dimension(:,:), allocatable :: r
real(kind=RP), public, dimension(:,:), allocatable :: re
real(kind=RP), public, dimension(:,:,:), allocatable :: reUnitVect
real(kind=RP), public, dimension(:,:), allocatable :: reStar
real(kind=RP), public, dimension(:,:,:), allocatable :: reStarUnitVect
real(kind=RP), public :: tDelay
integer, public :: faceIDinMesh
integer, public :: elementSide
real(kind=RP), public :: normalCorrection
real(kind=RP), public, dimension(:,:), allocatable :: Pacc
real(kind=RP), public, dimension(:), allocatable :: tInterp

Type-Bound Procedures

procedure, public :: construct => ObserverSourcePairConstruct
procedure, public :: destruct => ObserverSourcePairDestruct
procedure, public :: allocPacc => ObserverSourcePairAllocSolution
procedure, public :: interpolateSolF => ObserverSourcePairInterpolateSolFirst
procedure, public :: newUpdate => ObserverSourcePairNewUpdate
procedure, public :: interpolateSolS => ObserverSourcePairInterpolateSolSecond
procedure, public :: updateOneStep => ObserverSourcePairUpdateOneStep
procedure, public :: FWHSurfaceIntegral

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
procedure, public :: destruct => ObserverDestruct
procedure, public :: update => ObserverUpdate
procedure, public :: writeToFile => ObserverWriteToFile
procedure, public :: updateTdelay => ObserverUpdateTdelay
procedure, public :: interpolateSol => ObserverInterpolateSol
procedure, public :: sumIntegrals => ObserverSumIntegrals
procedure, public :: updateOneStep => ObserverUpdateOneStep

Functions

public function FWHSurfaceIntegral(self, f, isSolid) result(Pacc)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self
class(Face), intent(in) :: f
logical, intent(in) :: isSolid

Return Value real(kind=RP), dimension(3)

public function linearInterpolation(x, x1, y1, x2, y2, N) result(y)

Arguments

Type IntentOptional Attributes Name
real(kind=RP), intent(in) :: x
real(kind=RP), intent(in) :: x1
real(kind=RP), intent(in), dimension(N) :: y1
real(kind=RP), intent(in) :: x2
real(kind=RP), intent(in), dimension(N) :: y2
integer, intent(in) :: N

Return Value real(kind=RP), dimension(N)


Subroutines

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

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

public subroutine ObserverUpdateTdelay(self, totalNumberOfFaces)

Arguments

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

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

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

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

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

public subroutine ObserverDestruct(self)

Arguments

Type IntentOptional Attributes Name
class(ObserverClass), intent(inout) :: self

public subroutine ObserverSourcePairConstruct(self, x, f, fID, FirstCall, elementSide)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self
real(kind=RP), intent(in), dimension(NDIM) :: x
type(face), intent(in) :: f
integer, intent(in) :: fID
logical, intent(in) :: FirstCall
integer, intent(in) :: elementSide

public elemental subroutine ObserverSourcePairDestruct(self)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass), intent(inout) :: self

public subroutine ObserverSourcePairAllocSolution(self, buffer_size)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self
integer, intent(in) :: buffer_size

public subroutine ObserverSourcePairInterpolateSolFirst(self, N, M, tobserver, tsource, nd)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self
integer, intent(in) :: N
integer, intent(in) :: M
real(kind=RP), intent(in), dimension(N) :: tobserver
real(kind=RP), intent(in), dimension(:) :: tsource
integer, intent(out) :: nd

public subroutine ObserverSourcePairNewUpdate(self, N, NDiscard, M, tsource, sameDelay)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self
integer, intent(in) :: N
integer, intent(in) :: NDiscard
integer, intent(in) :: M
real(kind=RP), intent(in), dimension(:) :: tsource
logical, intent(in) :: sameDelay

public subroutine ObserverSourcePairUpdateOneStep(self)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self

public subroutine ObserverSourcePairInterpolateSolSecond(self, tobserver, tsource)

Arguments

Type IntentOptional Attributes Name
class(ObserverSourcePairClass) :: self
real(kind=RP), intent(in) :: tobserver
real(kind=RP), intent(in) :: tsource

public subroutine SourceProlongSolution(source_zone, mesh, eSides)

$omp& t)

Arguments

Type IntentOptional Attributes Name
class(Zone_t), intent(in) :: source_zone
class(HexMesh), intent(inout), target :: mesh
integer, intent(in), dimension(:) :: eSides

public subroutine calculateFWHVariables(Q, Qdot, isSolid, Qi, Qidot, Lij, LijDot)

Arguments

Type IntentOptional Attributes Name
real(kind=RP), intent(in), dimension(NCONS) :: Q
real(kind=RP), intent(in), dimension(NCONS) :: Qdot
logical, intent(in) :: isSolid
real(kind=RP), intent(out), dimension(NDIM) :: Qi
real(kind=RP), intent(out), dimension(NDIM) :: Qidot
real(kind=RP), intent(out), dimension(NDIM,NDIM) :: Lij
real(kind=RP), intent(out), dimension(NDIM,NDIM) :: LijDot