Calculates the gradient of a function using the weak form of the gradient and the average boundary state. This method will compute the average boundary state from the and attributes of
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MappedScalar3D), | intent(in) | :: | this | |||
| type(c_ptr), | intent(inout) | :: | df |
subroutine MappedDGGradient_MappedScalar3D(this,df)
!! Calculates the gradient of a function using the weak form of the gradient
!! and the average boundary state.
!! This method will compute the average boundary state from the
!! and attributes of
implicit none
class(MappedScalar3D),intent(in) :: this
type(c_ptr),intent(inout) :: df
call ContravariantWeight_3D_gpu(this%interior_gpu, &
this%geometry%dsdx%interior_gpu,this%jas_gpu, &
this%interp%N,this%nvar,this%nelem)
! Weak-form (DG) divergence of the contravariant-weighted field (jas)
call VectorDivergence_3D_gpu(this%interp%dgMatrix_gpu,this%jas_gpu,df, &
this%interp%N,3*this%nvar,this%nelem)
! Do the boundary terms
call NormalWeight_3D_gpu(this%avgBoundary_gpu, &
this%geometry%nhat%boundary_gpu,this%geometry%nscale%boundary_gpu, &
this%boundarynormal_gpu, &
this%interp%N,this%nvar,this%nelem)
call DG_BoundaryContribution_3D_gpu(this%interp%bmatrix_gpu,this%interp%qweights_gpu, &
this%boundarynormal_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 MappedDGGradient_MappedScalar3D