Skip to main content

GetProjectionOfdNdXt

There are several interfaces to this generic method. In general, it takes the projection dNdx\frac{dN}{dx} on the convective velocity cc, that is:

MI=ckNIxkM^{I}=c_{k}\frac{\partial N^{I}}{\partial x_{k}}

Here, cc is the convective velocity, (that is a vector variable). It can be

  • a constant
  • a function of spatial coordinates given in terms of
    • spatial nodal values
    • quadrature values

If cc changes in space then it should be wrapped inside an instance of [[FEVariable_]].

You can learn about this method from the following pages

  • [[ElemshapeData_test_11]] for [[ReferenceTriangle]], constant velocity cc
  • [[ElemshapeData_test_12]] for [[ReferenceTriangle]], nodal values of velocity cc
  • [[ElemshapeData_test_13]] for [[ReferenceTriangle]], velocity cc is defined at the quadrature points.

This subroutine computes the projcetion cdNdXt on the vector val. Here the vector val is constant in space and time.

PI=ciNIxiP^{I}=c_{i}\frac{\partial N^{I}}{\partial x_{i}}
  MODULE PURE SUBROUTINE GetProjectionOfdNdXt(obj, cdNdXt, val)
CLASS(ElemshapeData_), INTENT(IN) :: obj
REAL(DFP), ALLOCATABLE, INTENT(INOUT) :: cdNdXt(:, :)
!! returned $c_{i}\frac{\partial N^{I}}{\partial x_{i}}$
REAL(DFP), INTENT(IN) :: val(:)
!! constant value of vector
END SUBROUTINE GetProjectionOfdNdXt

The following subroutine computes the projcetion cdNdXt on the vector val. Here the vector val is constant in space and time.

PI=ciNIxiP^{I}=c_{i}\frac{\partial N^{I}}{\partial x_{i}}
  MODULE PURE SUBROUTINE GetProjectionOfdNdXt(obj, cdNdXt, val)
CLASS(ElemshapeData_), INTENT(IN) :: obj
!! ElemshapeData object
REAL(DFP), ALLOCATABLE, INTENT(INOUT) :: cdNdXt(:, :)
!! returned $c_{i}\frac{\partial N^{I}}{\partial x_{i}}$
CLASS(FEVariable_), INTENT(IN) :: val
!! constant value of vector
END SUBROUTINE GetProjectionOfdNdXt