Init_ColumnOperators3D Subroutine

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

Calls

proc~~init_columnoperators3d~~CallsGraph proc~init_columnoperators3d Init_ColumnOperators3D proc~init_columnoperators3d_t Init_ColumnOperators3D_t proc~init_columnoperators3d->proc~init_columnoperators3d_t interface~hipmalloc hipMalloc proc~init_columnoperators3d->interface~hipmalloc proc~gpucheck gpuCheck proc~init_columnoperators3d->proc~gpucheck interface~hipmemcpy hipMemcpy proc~init_columnoperators3d->interface~hipmemcpy proc~invertmatrix~3 InvertMatrix proc~init_columnoperators3d_t->proc~invertmatrix~3

Contents


Source Code

  subroutine Init_ColumnOperators3D(this,interp,mesh,geometry)
    !! Init_ColumnOperators3D_t, followed by a copy of the two sweep inverses to the device
    implicit none
    class(ColumnOperators3D),intent(out) :: this
    type(Lagrange),target,intent(in) :: interp
    type(Mesh3D),intent(in) :: mesh
    type(SEMHex),target,intent(in) :: geometry

    call Init_ColumnOperators3D_t(this,interp,mesh,geometry)

    if(this%lobatto) then
      call gpuCheck(hipMalloc(this%upInverse_gpu,sizeof(this%upInverse)))
      call gpuCheck(hipMalloc(this%downInverse_gpu,sizeof(this%downInverse)))
      call gpuCheck(hipMemcpy(this%upInverse_gpu, &
                              c_loc(this%upInverse), &
                              sizeof(this%upInverse), &
                              hipMemcpyHostToDevice))
      call gpuCheck(hipMemcpy(this%downInverse_gpu, &
                              c_loc(this%downInverse), &
                              sizeof(this%downInverse), &
                              hipMemcpyHostToDevice))
    endif

  endsubroutine Init_ColumnOperators3D