ColumnOperators3D Derived Type

type, public, extends(ColumnOperators3D_t) :: ColumnOperators3D


Inherits

type~~columnoperators3d~~InheritsGraph type~columnoperators3d ColumnOperators3D c_ptr c_ptr type~columnoperators3d->c_ptr upInverse_gpu, downInverse_gpu type~columnoperators3d_t ColumnOperators3D_t type~columnoperators3d->type~columnoperators3d_t type~lagrange Lagrange type~columnoperators3d_t->type~lagrange interp type~semhex SEMHex type~columnoperators3d_t->type~semhex geometry type~lagrange->c_ptr qWeights_gpu, iMatrix_gpu, dMatrix_gpu, dgMatrix_gpu, dSplitMatrix_gpu, bMatrix_gpu, mortarR_gpu, mortarP_gpu type~lagrange_t Lagrange_t type~lagrange->type~lagrange_t type~semhex->type~lagrange meshToModel type~vector3d Vector3D type~semhex->type~vector3d x, nHat, xMesh type~scalar3d Scalar3D type~semhex->type~scalar3d nScale, J type~tensor3d Tensor3D type~semhex->type~tensor3d dxds, dsdx type~vector3d->c_ptr interior_gpu, boundary_gpu, extBoundary_gpu, avgBoundary_gpu, boundaryNormal_gpu type~vector3d_t Vector3D_t type~vector3d->type~vector3d_t type~scalar3d->c_ptr interior_gpu, boundary_gpu, boundarynormal_gpu, extBoundary_gpu, avgBoundary_gpu type~scalar3d_t Scalar3D_t type~scalar3d->type~scalar3d_t type~tensor3d->c_ptr interior_gpu, boundary_gpu, extBoundary_gpu type~tensor3d_t Tensor3D_t type~tensor3d->type~tensor3d_t type~self_dataobj SELF_DataObj type~vector3d_t->type~self_dataobj type~tensor3d_t->type~self_dataobj type~scalar3d_t->type~self_dataobj type~self_dataobj->type~lagrange interp type~metadata Metadata type~self_dataobj->type~metadata meta EquationParser EquationParser type~self_dataobj->EquationParser eqn

Contents

Source Code


Components

TypeVisibilityAttributesNameInitial
integer, public :: N =0

Polynomial degree of the solution

real(kind=prec), public, pointer, contiguous, dimension(:,:):: downInverse=> null()

At^{-1} in the same convention

type(c_ptr), public :: downInverse_gpu =c_null_ptr
type(SEMHex), public, pointer:: geometry=> null()
type(Lagrange), public, pointer:: interp=> null()
logical, public :: lobatto =.false.

True when the control nodes are Gauss-Lobatto, which the sweeps require

integer, public :: nColumns =0

Rank-local columns, which is the rank-local element count of the surface mesh

integer, public :: nElem =0

Rank-local 3-D elements, nLayers*nColumns

integer, public :: nLayers =0

Layers per column, nz

real(kind=prec), public, pointer, contiguous, dimension(:,:):: upInverse=> null()

A^{-1} in SELF's matrix convention: (A^{-1} r)_l = sum_m upInverse(m,l) r_m

type(c_ptr), public :: upInverse_gpu =c_null_ptr

Type-Bound Procedures

procedure, public :: Broadcast => Broadcast_ColumnOperators3D

procedure, public :: ColumnIntegral => ColumnIntegral_ColumnOperators3D

procedure, public :: Free => Free_ColumnOperators3D

procedure, public :: Init => Init_ColumnOperators3D

  • public subroutine Init_ColumnOperators3D(this, interp, mesh, geometry)

    Init_ColumnOperators3D_t, followed by a copy of the two sweep inverses to the device

    Arguments

    TypeIntentOptionalAttributesName
    class(ColumnOperators3D), intent(out) :: this
    type(Lagrange), intent(in), target:: interp
    type(Mesh3D), intent(in) :: mesh
    type(SEMHex), intent(in), target:: geometry

procedure, public :: VerticalSweepDown => VerticalSweepDown_ColumnOperators3D

procedure, public :: VerticalSweepUp => VerticalSweepUp_ColumnOperators3D

Source Code

  type,extends(ColumnOperators3D_t),public :: ColumnOperators3D
    type(c_ptr) :: upInverse_gpu = c_null_ptr
    type(c_ptr) :: downInverse_gpu = c_null_ptr

  contains

    procedure,public :: Init => Init_ColumnOperators3D
    procedure,public :: Free => Free_ColumnOperators3D
    procedure,public :: ColumnIntegral => ColumnIntegral_ColumnOperators3D
    procedure,public :: Broadcast => Broadcast_ColumnOperators3D
    procedure,public :: VerticalSweepUp => VerticalSweepUp_ColumnOperators3D
    procedure,public :: VerticalSweepDown => VerticalSweepDown_ColumnOperators3D

  endtype ColumnOperators3D