TwoPointVector2D_t Derived Type

type, public, extends(SELF_DataObj) :: TwoPointVector2D_t

A two-point vector field for use in split-form DGSEM in 2-D.

Memory layout: interior(n, i, j, nEl, nVar, 1:2) dim 1 (n) : two-point index; looping over n is equivalent to looping over n in the split-form divergence sum (0:N in 0-based) dim 2 (i) : first computational coordinate direction (xi^1) dim 3 (j) : second computational coordinate direction (xi^2) dim 4 : element index dim 5 : variable index dim 6 (idir): vector direction (1 or 2)


Inherits

type~~twopointvector2d_t~~InheritsGraph type~twopointvector2d_t TwoPointVector2D_t type~self_dataobj SELF_DataObj type~twopointvector2d_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~lagrange_t Lagrange_t type~lagrange->type~lagrange_t c_ptr c_ptr type~lagrange_t->c_ptr blas_handle

Inherited by

type~~twopointvector2d_t~~InheritedByGraph type~twopointvector2d_t TwoPointVector2D_t type~twopointvector2d TwoPointVector2D type~twopointvector2d->type~twopointvector2d_t type~twopointvector2d~2 TwoPointVector2D type~twopointvector2d~2->type~twopointvector2d_t type~mappedtwopointvector2d_t MappedTwoPointVector2D_t type~mappedtwopointvector2d_t->type~twopointvector2d type~mappedtwopointvector2d MappedTwoPointVector2D type~mappedtwopointvector2d->type~mappedtwopointvector2d_t type~mappedtwopointvector2d~2 MappedTwoPointVector2D type~mappedtwopointvector2d~2->type~mappedtwopointvector2d_t type~ecdgmodel2d_t ECDGModel2D_t type~ecdgmodel2d_t->type~mappedtwopointvector2d twoPointFlux type~ecadvection2d_t ECAdvection2D_t type~ecadvection2d_t->type~ecdgmodel2d_t type~ecdgmodel2d ECDGModel2D type~ecdgmodel2d->type~ecdgmodel2d_t type~ecdgmodel2d~2 ECDGModel2D type~ecdgmodel2d~2->type~ecdgmodel2d_t type~ecadvection2d ECAdvection2D type~ecadvection2d->type~ecadvection2d_t type~ecadvection2d~2 ECAdvection2D type~ecadvection2d~2->type~ecadvection2d_t

Contents

Source Code


Components

TypeVisibilityAttributesNameInitial
integer, public :: M
integer, public :: N
type(EquationParser), public, allocatable:: eqn(:)
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:,:):: interior
type(Lagrange), public, pointer:: interp
type(Metadata), public, allocatable:: meta(:)
integer, public :: nElem
integer, public :: nVar

Type-Bound Procedures

generic, public :: Divergence => Divergence_TwoPointVector2D_t

  • public subroutine Divergence_TwoPointVector2D_t(this, df)

    Computes the split-form (two-point) divergence of a 2-D vector field in the reference element (computational coordinates).

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    class(TwoPointVector2D_t), intent(in) :: this
    real(kind=prec), intent(out) :: df(1:this%N+1,1:this%N+1,1:this%nElem,1:this%nVar)

procedure, private :: Divergence_TwoPointVector2D_t

  • public subroutine Divergence_TwoPointVector2D_t(this, df)

    Computes the split-form (two-point) divergence of a 2-D vector field in the reference element (computational coordinates).

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    class(TwoPointVector2D_t), intent(in) :: this
    real(kind=prec), intent(out) :: df(1:this%N+1,1:this%N+1,1:this%nElem,1:this%nVar)

procedure, public :: Free => Free_TwoPointVector2D_t

procedure, public :: Init => Init_TwoPointVector2D_t

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

    Allocate the interior array for a 2-D two-point vector field. The interior array has rank 6 with layout (n,i,j,nEl,nVar,idir).

    Read more…

    Arguments

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

procedure, public :: UpdateHost => UpdateHost_TwoPointVector2D_t

Source Code

  type,extends(SELF_DataObj),public :: TwoPointVector2D_t
    !! A two-point vector field for use in split-form DGSEM in 2-D.
    !!
    !! Memory layout: interior(n, i, j, nEl, nVar, 1:2)
    !!   dim 1 (n)   : two-point index; looping over n is equivalent to looping
    !!                 over n in the split-form divergence sum (0:N in 0-based)
    !!   dim 2 (i)   : first computational coordinate direction (xi^1)
    !!   dim 3 (j)   : second computational coordinate direction (xi^2)
    !!   dim 4       : element index
    !!   dim 5       : variable index
    !!   dim 6 (idir): vector direction (1 or 2)

    real(prec),pointer,contiguous,dimension(:,:,:,:,:,:) :: interior

  contains

    procedure,public :: Init => Init_TwoPointVector2D_t
    procedure,public :: Free => Free_TwoPointVector2D_t

    procedure,public :: UpdateHost => UpdateHost_TwoPointVector2D_t
    procedure,public :: UpdateDevice => UpdateDevice_TwoPointVector2D_t

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

  endtype TwoPointVector2D_t