ply_l2_projection Subroutine

private subroutine ply_l2_projection(nDofs, nIndeps, projected, original, matrix)

Actual implementation of the matrix operation to change between nodal and modal representations.

The operation is applied simultaneously to nIndeps 1D sections of the provided original data. These 1D sections have to run fastest in the original array and will be transposed (running slowest in the projected array). The actual direction of the operation depends on the passed matrix. matrix = l2p%leg2node will do the modal to nodal transformation matrix = l2p%node2leg will do the nodal to modal transformation

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nDofs

Number of degree of freedoms

integer, intent(in) :: nIndeps

Number of values that can be computed independently.

real(kind=rk), intent(out) :: projected(nIndeps,nDofs)

Projected data.

Size has to be nIndeps*size(matrix,1), and the layout is changed here when compared to the original array, as the projected direction moves to the end.

real(kind=rk), intent(in) :: original(nDofs,nIndeps)

Original data.

Size has to be size(matrix,1) and the direction to be projected has to be the fastest running one.

real(kind=rk), intent(in) :: matrix(nDofs,nDofs)

Matrix to apply in this operation.

The matrix defines wether this is a modal to nodal transformation or the other way around.


Called by

proc~~ply_l2_projection~~CalledByGraph proc~ply_l2_projection ply_l2_projection proc~ply_l2p_trafo_1d ply_l2p_trafo_1D proc~ply_l2p_trafo_1d->proc~ply_l2_projection proc~ply_l2p_trafo_2d ply_l2p_trafo_2D proc~ply_l2p_trafo_2d->proc~ply_l2_projection proc~ply_l2p_trafo_3d ply_l2p_trafo_3D proc~ply_l2p_trafo_3d->proc~ply_l2_projection