Gradient_Vector2D Subroutine

public subroutine Gradient_Vector2D(this, df)

Arguments

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

Calls

proc~~gradient_vector2d~~CallsGraph proc~gradient_vector2d Gradient_Vector2D interface~scalargradient_2d_gpu ScalarGradient_2D_gpu proc~gradient_vector2d->interface~scalargradient_2d_gpu

Contents

Source Code


Source Code

  subroutine Gradient_Vector2D(this,df)
    implicit none
    class(Vector2D),intent(in) :: this
    type(c_ptr),intent(inout) :: df

    ! The vector gradient is the (row,col) tensor df(i,j,e,v,row,col) = d(f_row)/dxi^col.
    ! Treating the two vector components as 2*nvar scalar fields, this is the scalar
    ! gradient of each, with the direction index (col) written to separate slots.
    call ScalarGradient_2D_gpu(this%interp%dMatrix_gpu,this%interior_gpu,df, &
                               this%interp%N,2*this%nvar,this%nelem)

  endsubroutine Gradient_Vector2D