ColumnOperators3D_t Derived Type

type, public :: ColumnOperators3D_t


Inherits

type~~columnoperators3d_t~~InheritsGraph type~columnoperators3d_t ColumnOperators3D_t type~lagrange Lagrange type~columnoperators3d_t->type~lagrange interp type~semhex SEMHex type~columnoperators3d_t->type~semhex geometry c_ptr c_ptr 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

Inherited by

type~~columnoperators3d_t~~InheritedByGraph type~columnoperators3d_t ColumnOperators3D_t type~columnoperators3d ColumnOperators3D type~columnoperators3d->type~columnoperators3d_t type~columnoperators3d~2 ColumnOperators3D type~columnoperators3d~2->type~columnoperators3d_t

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(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-Bound Procedures

procedure, public :: Broadcast => Broadcast_ColumnOperators3D_t

procedure, public :: ColumnIntegral => ColumnIntegral_ColumnOperators3D_t

procedure, public :: Free => Free_ColumnOperators3D_t

procedure, public :: Init => Init_ColumnOperators3D_t

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

    Binds the column operators to an extruded mesh and its geometry and, on Gauss-Lobatto nodes, precomputes the inverses of the two sweep matrices

    Read more…

    Arguments

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

procedure, public :: VerticalSweepUp => VerticalSweepUp_ColumnOperators3D_t

Source Code

  type,public :: ColumnOperators3D_t
    integer :: N = 0
    !! Polynomial degree of the solution
    integer :: nLayers = 0
    !! Layers per column, nz
    integer :: nColumns = 0
    !! Rank-local columns, which is the rank-local element count of the surface mesh
    integer :: nElem = 0
    !! Rank-local 3-D elements, nLayers*nColumns
    logical :: lobatto = .false.
    !! True when the control nodes are Gauss-Lobatto, which the sweeps require
    type(Lagrange),pointer :: interp => null()
    type(SEMHex),pointer :: geometry => null()
    real(prec),pointer,contiguous,dimension(:,:) :: upInverse => null()
    !! A^{-1} in SELF's matrix convention: (A^{-1} r)_l = sum_m upInverse(m,l) r_m
    real(prec),pointer,contiguous,dimension(:,:) :: downInverse => null()
    !! At^{-1} in the same convention

  contains

    procedure,public :: Init => Init_ColumnOperators3D_t
    procedure,public :: Free => Free_ColumnOperators3D_t
    procedure,public :: ColumnIntegral => ColumnIntegral_ColumnOperators3D_t
    procedure,public :: Broadcast => Broadcast_ColumnOperators3D_t
    procedure,public :: VerticalSweepUp => VerticalSweepUp_ColumnOperators3D_t
    procedure,public :: VerticalSweepDown => VerticalSweepDown_ColumnOperators3D_t

  endtype ColumnOperators3D_t