Vector3D Derived Type

type, public, extends(Vector3D_t) :: Vector3D


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
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: boundaryNormal
type(c_ptr), public :: boundaryNormal_gpu
type(c_ptr), public :: boundary_gpu
type(EquationParser), public, allocatable:: eqn(:)
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:,:):: extBoundary
type(c_ptr), public :: extBoundary_gpu
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(Metadata), public, allocatable:: meta(:)
integer, public :: nElem
integer, public :: nVar

Type-Bound Procedures

procedure, public :: AverageSides => AverageSides_Vector3D

procedure, public :: BoundaryInterp => BoundaryInterp_Vector3D

generic, public :: Curl => Curl_Vector3D_t

  • public subroutine Curl_Vector3D_t(this, curlf)

    Arguments

    TypeIntentOptionalAttributesName
    class(Vector3D_t), intent(in) :: this
    real(kind=prec), intent(out) :: curlf(1:this%N+1,1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar,1:3)

generic, public :: Divergence => Divergence_Vector3D_t, Divergence_Vector3D

  • public subroutine Divergence_Vector3D_t(this, df)

    Arguments

    TypeIntentOptionalAttributesName
    class(Vector3D_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)
  • public subroutine Divergence_Vector3D(this, df)

    Arguments

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

procedure, private :: Divergence_Vector3D

  • public subroutine Divergence_Vector3D(this, df)

    Arguments

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

procedure, public :: Free => Free_Vector3D

  • public subroutine Free_Vector3D(this)

    Arguments

    TypeIntentOptionalAttributesName
    class(Vector3D), intent(inout) :: this

generic, public :: Gradient => Gradient_Vector3D_t, Gradient_Vector3D

  • public subroutine Gradient_Vector3D_t(this, df)

    Arguments

    TypeIntentOptionalAttributesName
    class(Vector3D_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,1:3)
  • public subroutine Gradient_Vector3D(this, df)

    Arguments

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

procedure, private :: Gradient_Vector3D

  • public subroutine Gradient_Vector3D(this, df)

    Arguments

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

generic, public :: GridInterp => GridInterp_Vector3D_t, GridInterp_Vector3D

  • public subroutine GridInterp_Vector3D_t(this, f)

    Arguments

    TypeIntentOptionalAttributesName
    class(Vector3D_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,1:3)

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

  • public subroutine GridInterp_Vector3D(this, f)

    Arguments

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

procedure, private :: GridInterp_Vector3D

  • public subroutine GridInterp_Vector3D(this, f)

    Arguments

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

procedure, public :: Init => Init_Vector3D

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

    Arguments

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

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, SetEquation_Vector3D_t

  • 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
  • public subroutine SetEquation_Vector3D_t(this, idir, ivar, eqnChar)

    Sets the equation parser for the idir direction and ivar-th variable

    Arguments

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

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 :: UpdateDevice => UpdateDevice_Vector3D

procedure, public :: UpdateHost => UpdateHost_Vector3D

generic, public :: WriteHDF5 => WriteHDF5_MPI_Vector3D_t, WriteHDF5_Vector3D_t

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

    Arguments

    TypeIntentOptionalAttributesName
    class(Vector3D_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_Vector3D_t(this, fileId, group)

    Arguments

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

Source Code

  type,extends(Vector3D_t),public :: Vector3D
    character(3) :: backend = "gpu"
    type(c_ptr) :: blas_handle
    type(c_ptr) :: interior_gpu
    type(c_ptr) :: boundary_gpu
    type(c_ptr) :: extBoundary_gpu
    type(c_ptr) :: avgBoundary_gpu
    type(c_ptr) :: boundaryNormal_gpu
    type(c_ptr) :: interpWork1
    type(c_ptr) :: interpWork2

  contains

    procedure,public :: Init => Init_Vector3D
    procedure,public :: Free => Free_Vector3D

    procedure,public :: UpdateHost => UpdateHost_Vector3D
    procedure,public :: UpdateDevice => UpdateDevice_Vector3D

    procedure,public :: BoundaryInterp => BoundaryInterp_Vector3D
    procedure,public :: AverageSides => AverageSides_Vector3D

    generic,public :: GridInterp => GridInterp_Vector3D
    procedure,private :: GridInterp_Vector3D

    generic,public :: Gradient => Gradient_Vector3D
    procedure,private :: Gradient_Vector3D

    ! generic,public :: Curl => Curl_Vector3D
    ! procedure,private :: Curl_Vector3D

    generic,public :: Divergence => Divergence_Vector3D
    procedure,private :: Divergence_Vector3D

  endtype Vector3D