Init_ColumnOperators3D_t, followed by a copy of the two sweep inverses to the device
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D), | intent(out) | :: | this | |||
| type(Lagrange), | intent(in), | target | :: | interp | ||
| type(Mesh3D), | intent(in) | :: | mesh | |||
| type(SEMHex), | intent(in), | target | :: | geometry |
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