Tensor2D Derived Type

type, public, extends(Tensor2D_t) :: Tensor2D


Inherits

type~~tensor2d~2~~InheritsGraph type~tensor2d~2 Tensor2D c_ptr c_ptr type~tensor2d~2->c_ptr blas_handle, interior_gpu, boundary_gpu, extBoundary_gpu type~tensor2d_t Tensor2D_t type~tensor2d~2->type~tensor2d_t type~self_dataobj SELF_DataObj type~tensor2d_t->type~self_dataobj type~lagrange Lagrange type~self_dataobj->type~lagrange interp EquationParser EquationParser type~self_dataobj->EquationParser eqn type~metadata Metadata type~self_dataobj->type~metadata meta type~lagrange_t Lagrange_t type~lagrange->type~lagrange_t type~lagrange_t->c_ptr blas_handle

Contents

Source Code


Components

TypeVisibilityAttributesNameInitial
integer, public :: M
integer, public :: N
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
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(Metadata), public, allocatable:: meta(:)
integer, public :: nElem
integer, public :: nVar

Type-Bound Procedures

procedure, public :: BoundaryInterp => BoundaryInterp_Tensor2D_t

generic, public :: Determinant => Determinant_Tensor2D_t

  • public subroutine Determinant_Tensor2D_t(this, det)

    Arguments

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

procedure, public :: Free => Free_Tensor2D

  • public subroutine Free_Tensor2D(this)

    Arguments

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

procedure, public :: Init => Init_Tensor2D

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

    Arguments

    TypeIntentOptionalAttributesName
    class(Tensor2D), 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

  • 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 :: 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_Tensor2D

procedure, public :: UpdateHost => UpdateHost_Tensor2D

Source Code

  type,extends(Tensor2D_t),public :: Tensor2D
    character(3) :: backend = "gpu"
    type(c_ptr) :: blas_handle
    type(c_ptr) :: interior_gpu
    type(c_ptr) :: boundary_gpu
    type(c_ptr) :: extBoundary_gpu

  contains

    procedure,public :: Init => Init_Tensor2D
    procedure,public :: Free => Free_Tensor2D

    procedure,public :: UpdateHost => UpdateHost_Tensor2D
    procedure,public :: UpdateDevice => UpdateDevice_Tensor2D

  endtype Tensor2D