MappedDGDivergence_MappedVector3D Subroutine

public subroutine MappedDGDivergence_MappedVector3D(this, df)

Computes the divergence of a 3-D vector using the weak form On input, the attribute of the vector is assigned and the attribute is set to the physical directions of the vector. This method will project the vector onto the contravariant basis vectors.

Arguments

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

Calls

proc~~mappeddgdivergence_mappedvector3d~~CallsGraph proc~mappeddgdivergence_mappedvector3d MappedDGDivergence_MappedVector3D interface~mappedcontravariantdivergence_3d_gpu MappedContravariantDivergence_3D_gpu proc~mappeddgdivergence_mappedvector3d->interface~mappedcontravariantdivergence_3d_gpu interface~dg_boundarycontribution_jacobianweight_3d_gpu DG_BoundaryContribution_JacobianWeight_3D_gpu proc~mappeddgdivergence_mappedvector3d->interface~dg_boundarycontribution_jacobianweight_3d_gpu

Contents


Source Code

  subroutine MappedDGDivergence_MappedVector3D(this,df)
      !! Computes the divergence of a 3-D vector using the weak form
      !! On input, the  attribute of the vector
      !! is assigned and the  attribute is set to the physical
      !! directions of the vector. This method will project the vector
      !! onto the contravariant basis vectors.
    implicit none
    class(MappedVector3D),intent(in) :: this
    type(c_ptr),intent(inout) :: df

    ! Fused contravariant projection + interior divergence (Jacobian weight is
    ! applied together with the boundary contribution below, so pass c_null_ptr).
    call MappedContravariantDivergence_3D_gpu(this%geometry%dsdx%interior_gpu,this%interp%dgMatrix_gpu, &
                                              this%interior_gpu,df,c_null_ptr, &
                                              this%interp%N,this%nvar,this%nelem)

    ! Boundary terms with the Jacobian weight (/J) folded into the same pass
    call DG_BoundaryContribution_JacobianWeight_3D_gpu(this%interp%bmatrix_gpu,this%interp%qweights_gpu, &
                                                       this%boundarynormal_gpu,df,this%geometry%J%interior_gpu, &
                                                       this%interp%N,this%nvar,this%nelem)

  endsubroutine MappedDGDivergence_MappedVector3D