Gradient_Vector3D Subroutine

public subroutine Gradient_Vector3D(this, df)

Arguments

TypeIntentOptionalAttributesName
class(Vector3D), intent(in) :: this
type(c_ptr), intent(inout) :: df

Calls

proc~~gradient_vector3d~~CallsGraph proc~gradient_vector3d Gradient_Vector3D interface~scalargradient_3d_gpu ScalarGradient_3D_gpu proc~gradient_vector3d->interface~scalargradient_3d_gpu

Contents

Source Code


Source Code

  subroutine Gradient_Vector3D(this,df)
    implicit none
    class(Vector3D),intent(in) :: this
    type(c_ptr),intent(inout) :: df

    ! The vector gradient is the tensor df(i,j,k,e,v,idir,dir) = d(f_idir)/dxi^dir.
    ! Treating the three vector components as 3*nvar scalar fields, this is the
    ! scalar gradient of each, with the derivative direction written to separate
    ! slots (matching Gradient_Vector3D_t).
    call ScalarGradient_3D_gpu(this%interp%dMatrix_gpu,this%interior_gpu,df, &
                               this%interp%N,3*this%nvar,this%nelem)

  endsubroutine Gradient_Vector3D