MappedScalar3D Derived Type

type, public, extends(MappedScalar3D_t) :: MappedScalar3D


Inherits

type~~mappedscalar3d~~InheritsGraph type~mappedscalar3d MappedScalar3D c_ptr c_ptr type~mappedscalar3d->c_ptr jas_gpu type~mappedscalar3d_t MappedScalar3D_t type~mappedscalar3d->type~mappedscalar3d_t type~semhex SEMHex type~mappedscalar3d_t->type~semhex geometry type~scalar3d Scalar3D type~mappedscalar3d_t->type~scalar3d type~semhex->type~scalar3d nScale, J type~vector3d Vector3D type~semhex->type~vector3d x, nHat type~tensor3d Tensor3D type~semhex->type~tensor3d dxds, dsdx type~scalar3d->c_ptr blas_handle, interior_gpu, boundary_gpu, boundarynormal_gpu, extBoundary_gpu, avgBoundary_gpu, interpWork1, interpWork2 type~scalar3d_t Scalar3D_t type~scalar3d->type~scalar3d_t type~vector3d->c_ptr blas_handle, interior_gpu, boundary_gpu, extBoundary_gpu, avgBoundary_gpu, boundaryNormal_gpu, interpWork1, interpWork2 type~vector3d_t Vector3D_t type~vector3d->type~vector3d_t type~tensor3d->c_ptr blas_handle, interior_gpu, boundary_gpu, extBoundary_gpu type~tensor3d_t Tensor3D_t type~tensor3d->type~tensor3d_t type~self_dataobj SELF_DataObj type~scalar3d_t->type~self_dataobj type~vector3d_t->type~self_dataobj type~lagrange Lagrange type~self_dataobj->type~lagrange interp type~metadata Metadata type~self_dataobj->type~metadata meta EquationParser EquationParser type~self_dataobj->EquationParser eqn type~tensor3d_t->type~self_dataobj type~lagrange->c_ptr qWeights_gpu, iMatrix_gpu, dMatrix_gpu, dgMatrix_gpu, bMatrix_gpu type~lagrange_t Lagrange_t type~lagrange->type~lagrange_t type~lagrange_t->c_ptr blas_handle

Inherited by

type~~mappedscalar3d~~InheritedByGraph type~mappedscalar3d MappedScalar3D type~dgmodel3d_t DGModel3D_t type~dgmodel3d_t->type~mappedscalar3d solution, source, fluxDivergence, dSdt, workSol type~dgmodel3d DGModel3D type~dgmodel3d->type~dgmodel3d_t type~dgmodel3d~2 DGModel3D type~dgmodel3d~2->type~dgmodel3d_t type~lineareuler3d_t LinearEuler3D_t type~lineareuler3d_t->type~dgmodel3d type~nulldgmodel3d_t NullDGModel3D_t type~nulldgmodel3d_t->type~dgmodel3d type~advection_diffusion_3d_t advection_diffusion_3d_t type~advection_diffusion_3d_t->type~dgmodel3d type~lineareuler3d LinearEuler3D type~lineareuler3d->type~lineareuler3d_t type~lineareuler3d~2 LinearEuler3D type~lineareuler3d~2->type~lineareuler3d_t type~advection_diffusion_3d~2 advection_diffusion_3d type~advection_diffusion_3d~2->type~advection_diffusion_3d_t type~advection_diffusion_3d advection_diffusion_3d type~advection_diffusion_3d->type~advection_diffusion_3d_t type~nulldgmodel3d~2 NullDGModel3D type~nulldgmodel3d~2->type~nulldgmodel3d_t type~nulldgmodel3d NullDGModel3D type~nulldgmodel3d->type~nulldgmodel3d_t

Contents

Source Code


Components

TypeVisibilityAttributesNameInitial
integer, public :: M
integer, public :: N
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: avgBoundary
type(c_ptr), public :: avgBoundary_gpu
character(len=3), public :: backend ="gpu"
type(c_ptr), public :: blas_handle
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: boundary
type(c_ptr), public :: boundary_gpu
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: boundarynormal
type(c_ptr), public :: boundarynormal_gpu
type(EquationParser), public, allocatable:: eqn(:)
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: extBoundary
type(c_ptr), public :: extBoundary_gpu
type(SEMHex), public, pointer:: geometry=> null()
logical, public :: geometry_associated =.false.
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: interior
type(c_ptr), public :: interior_gpu
type(Lagrange), public, pointer:: interp
type(c_ptr), public :: interpWork1
type(c_ptr), public :: interpWork2
type(c_ptr), public :: jas_gpu
type(Metadata), public, allocatable:: meta(:)
integer, public :: nElem
integer, public :: nVar

Type-Bound Procedures

procedure, public :: AssociateGeometry => AssociateGeometry_MappedScalar3D_t

procedure, public :: AverageSides => AverageSides_Scalar3D

procedure, public :: BoundaryInterp => BoundaryInterp_Scalar3D

procedure, public :: DissociateGeometry => DissociateGeometry_MappedScalar3D_t

procedure, public :: Free => Free_MappedScalar3D

generic, public :: Gradient => Gradient_Scalar3D_t, Gradient_Scalar3D

  • public subroutine Gradient_Scalar3D_t(this, df)

    Arguments

    TypeIntentOptionalAttributesName
    class(Scalar3D_t), intent(in) :: this
    real(kind=prec), intent(out) :: df(1:this%N+1,1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar,1:3)
  • public subroutine Gradient_Scalar3D(this, df)

    Arguments

    TypeIntentOptionalAttributesName
    class(Scalar3D), intent(in) :: this
    type(c_ptr), intent(inout) :: df

generic, public :: GridInterp => GridInterp_Scalar3D_t, GridInterp_Scalar3D

  • public subroutine GridInterp_Scalar3D_t(this, f)

    Arguments

    TypeIntentOptionalAttributesName
    class(Scalar3D_t), intent(in) :: this
    real(kind=prec), intent(out) :: f(1:this%M+1,1:this%M+1,1:this%M+1,1:this%nelem,1:this%nvar)

    (Output) Array of function values, defined on the target grid

  • public subroutine GridInterp_Scalar3D(this, f)

    Arguments

    TypeIntentOptionalAttributesName
    class(Scalar3D), intent(inout) :: this
    type(c_ptr), intent(inout) :: f

procedure, public :: Init => Init_MappedScalar3D

  • public subroutine Init_MappedScalar3D(this, interp, nVar, nElem)

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D), intent(out) :: this
    type(Lagrange), intent(in), target:: interp
    integer, intent(in) :: nVar
    integer, intent(in) :: nElem

procedure, private :: MPIExchangeAsync => MPIExchangeAsync_MappedScalar3D

  • public subroutine MappedDGGradient_MappedScalar3D_t(this, df)

    Calculates the gradient of a function using the weak form of the gradient and the average boundary state. This method will compute the average boundary state from the and attributes of

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D_t), intent(in) :: this
    real(kind=prec), intent(out) :: df(1:this%N+1,1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar,1:3)
  • public subroutine MappedDGGradient_MappedScalar3D(this, df)

    Calculates the gradient of a function using the weak form of the gradient and the average boundary state. This method will compute the average boundary state from the and attributes of

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D), intent(in) :: this
    type(c_ptr), intent(inout) :: df

procedure, private :: MappedDGGradient_MappedScalar3D

  • public subroutine MappedDGGradient_MappedScalar3D(this, df)

    Calculates the gradient of a function using the weak form of the gradient and the average boundary state. This method will compute the average boundary state from the and attributes of

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D), intent(in) :: this
    type(c_ptr), intent(inout) :: df

generic, public :: MappedGradient => MappedGradient_MappedScalar3D_t, MappedGradient_MappedScalar3D

  • public subroutine MappedGradient_MappedScalar3D_t(this, df)

    Calculates the gradient of a function using the strong form of the gradient in mapped coordinates.

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D_t), intent(in) :: this
    real(kind=prec), intent(out) :: df(1:this%N+1,1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar,1:3)
  • public subroutine MappedGradient_MappedScalar3D(this, df)

    Calculates the gradient of a function using the strong form of the gradient in mapped coordinates.

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D), intent(inout) :: this
    type(c_ptr), intent(out) :: df

procedure, private :: MappedGradient_MappedScalar3D

  • public subroutine MappedGradient_MappedScalar3D(this, df)

    Calculates the gradient of a function using the strong form of the gradient in mapped coordinates.

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D), intent(inout) :: this
    type(c_ptr), intent(out) :: df

procedure, public :: SetDescription => SetDescription_DataObj

  • public subroutine SetDescription_DataObj(this, ivar, description)

    Set the description of the ivar-th variable

    Arguments

    TypeIntentOptionalAttributesName
    class(SELF_DataObj), intent(inout) :: this
    integer, intent(in) :: ivar
    character, intent(in) :: description

generic, public :: SetEquation => SetEquation_DataObj

  • public subroutine SetEquation_DataObj(this, ivar, eqnChar)

    Sets the equation parser for the ivar-th variable

    Arguments

    TypeIntentOptionalAttributesName
    class(SELF_DataObj), intent(inout) :: this
    integer, intent(in) :: ivar
    character, intent(in) :: eqnChar

procedure, public :: SetInteriorFromEquation => SetInteriorFromEquation_MappedScalar3D

  • public subroutine SetInteriorFromEquation_MappedScalar3D(this, geometry, time)

    Sets the this % interior attribute using the eqn attribute, geometry (for physical positions), and provided simulation time.

    Arguments

    TypeIntentOptionalAttributesName
    class(MappedScalar3D), intent(inout) :: this
    type(SEMHex), intent(in) :: geometry
    real(kind=prec), intent(in) :: time

procedure, public :: SetName => SetName_DataObj

  • public subroutine SetName_DataObj(this, ivar, name)

    Set the name of the ivar-th variable

    Arguments

    TypeIntentOptionalAttributesName
    class(SELF_DataObj), intent(inout) :: this
    integer, intent(in) :: ivar
    character, intent(in) :: name

procedure, public :: SetUnits => SetUnits_DataObj

  • public subroutine SetUnits_DataObj(this, ivar, units)

    Set the units of the ivar-th variable

    Arguments

    TypeIntentOptionalAttributesName
    class(SELF_DataObj), intent(inout) :: this
    integer, intent(in) :: ivar
    character, intent(in) :: units

procedure, public :: SideExchange => SideExchange_MappedScalar3D

procedure, public :: UpdateDevice => UpdateDevice_Scalar3D

procedure, public :: UpdateHost => UpdateHost_Scalar3D

generic, public :: WriteHDF5 => WriteHDF5_MPI_Scalar3D_t, WriteHDF5_Scalar3D_t

  • public subroutine WriteHDF5_MPI_Scalar3D_t(this, fileId, group, elemoffset, nglobalelem)

    Arguments

    TypeIntentOptionalAttributesName
    class(Scalar3D_t), intent(in) :: this
    integer(kind=HID_T), intent(in) :: fileId
    character, intent(in) :: group
    integer, intent(in) :: elemoffset
    integer, intent(in) :: nglobalelem
  • public subroutine WriteHDF5_Scalar3D_t(this, fileId, group)

    Arguments

    TypeIntentOptionalAttributesName
    class(Scalar3D_t), intent(in) :: this
    integer(kind=HID_T), intent(in) :: fileId
    character, intent(in) :: group

Source Code

  type,extends(MappedScalar3D_t),public :: MappedScalar3D

    type(c_ptr) :: jas_gpu ! jacobian weighted scalar for gradient calculation

  contains
    procedure,public :: Init => Init_MappedScalar3D
    procedure,public :: Free => Free_MappedScalar3D

    procedure,public :: SetInteriorFromEquation => SetInteriorFromEquation_MappedScalar3D

    procedure,public :: SideExchange => SideExchange_MappedScalar3D
    procedure,private :: MPIExchangeAsync => MPIExchangeAsync_MappedScalar3D

    generic,public :: MappedGradient => MappedGradient_MappedScalar3D
    procedure,private :: MappedGradient_MappedScalar3D

    generic,public :: MappedDGGradient => MappedDGGradient_MappedScalar3D
    procedure,private :: MappedDGGradient_MappedScalar3D

  endtype MappedScalar3D