MappedGradient_MappedScalar3D Subroutine

public subroutine MappedGradient_MappedScalar3D(this, df)

Calculates the gradient of a function using the strong form of the gradient in mapped coordinates.

Arguments

TypeIntentOptionalAttributesName
class(MappedScalar3D), intent(inout) :: this
type(c_ptr), intent(out) :: df

Calls

proc~~mappedgradient_mappedscalar3d~~CallsGraph proc~mappedgradient_mappedscalar3d MappedGradient_MappedScalar3D interface~contravariantweight_3d_gpu ContravariantWeight_3D_gpu proc~mappedgradient_mappedscalar3d->interface~contravariantweight_3d_gpu interface~vectordivergence_3d_gpu VectorDivergence_3D_gpu proc~mappedgradient_mappedscalar3d->interface~vectordivergence_3d_gpu interface~jacobianweight_3d_gpu JacobianWeight_3D_gpu proc~mappedgradient_mappedscalar3d->interface~jacobianweight_3d_gpu

Contents


Source Code

  subroutine MappedGradient_MappedScalar3D(this,df)
  !! Calculates the gradient of a function using the strong form of the gradient
  !! in mapped coordinates.
    implicit none
    class(MappedScalar3D),intent(inout) :: this
    type(c_ptr),intent(out) :: df

    call ContravariantWeight_3D_gpu(this%interior_gpu, &
                                    this%geometry%dsdx%interior_gpu,this%jas_gpu, &
                                    this%interp%N,this%nvar,this%nelem)

    ! Strong-form divergence of the contravariant-weighted field (jas)
    call VectorDivergence_3D_gpu(this%interp%dMatrix_gpu,this%jas_gpu,df, &
                                 this%interp%N,3*this%nvar,this%nelem)

    call JacobianWeight_3D_gpu(df,this%geometry%J%interior_gpu,this%N,3*this%nVar,this%nelem)

  endsubroutine MappedGradient_MappedScalar3D