EvalScalar_3D_dev_Points Subroutine

public subroutine EvalScalar_3D_dev_Points(this, scalar, values_dev)

Arguments

TypeIntentOptionalAttributesName
class(Points), intent(in) :: this
class(MappedScalar3D), intent(in) :: scalar
type(c_ptr), intent(inout) :: values_dev

Calls

proc~~evalscalar_3d_dev_points~~CallsGraph proc~evalscalar_3d_dev_points EvalScalar_3D_dev_Points interface~evalscalarpoints_3d_gpu EvalScalarPoints_3D_gpu proc~evalscalar_3d_dev_points->interface~evalscalarpoints_3d_gpu

Contents


Source Code

  subroutine EvalScalar_3D_dev_Points(this,scalar,values_dev)
    implicit none
    class(Points),intent(in) :: this
    class(MappedScalar3D),intent(in) :: scalar
    type(c_ptr),intent(inout) :: values_dev

    if(this%nDim /= 3) then
      print*,"SELF_Points (gpu)::EvaluateScalar (3D): nDim must be 3"
      stop 1
    endif
    if(this%nCached /= scalar%interp%N .or. .not. c_associated(this%lS_cache_gpu) .or. &
       .not. c_associated(this%lU_cache_gpu)) then
      print*,"SELF_Points (gpu)::EvaluateScalar (3D): basis cache not synchronized; ", &
        "call LocatePoints (or UpdateDevice) first. nCached=", &
        this%nCached," scalar%N=",scalar%interp%N
      stop 1
    endif

    call EvalScalarPoints_3D_gpu(values_dev, &
                                 this%elements_gpu, &
                                 this%lS_cache_gpu,this%lT_cache_gpu,this%lU_cache_gpu, &
                                 scalar%interior_gpu, &
                                 scalar%interp%N,this%nPoints,scalar%nElem,scalar%nVar)

  endsubroutine EvalScalar_3D_dev_Points