transformCanoND_single Subroutine

private subroutine transformCanoND_single(canoND, transform)

This routine apply transformation to canonical objects.

Arguments

Type IntentOptional Attributes Name
type(tem_canonicalND_type), intent(inout) :: canoND

canonical geometry object type

type(tem_transformation_type), intent(in) :: transform

transformation for spatial object


Called by

proc~~transformcanond_single~~CalledByGraph proc~transformcanond_single transformCanoND_single interface~tem_transformcanond tem_transformCanoND interface~tem_transformcanond->proc~transformcanond_single proc~transformcanond transformCanoND interface~tem_transformcanond->proc~transformcanond proc~transformcanond->proc~transformcanond_single proc~tem_load_onecanonicalnd tem_load_oneCanonicalND proc~tem_load_onecanonicalnd->interface~tem_transformcanond interface~tem_load_canonicalnd tem_load_canonicalND interface~tem_load_canonicalnd->proc~tem_load_onecanonicalnd proc~tem_load_canonicalnd_vec tem_load_canonicalND_vec interface~tem_load_canonicalnd->proc~tem_load_canonicalnd_vec proc~tem_load_canonicalnd_vec->proc~tem_load_onecanonicalnd proc~tem_load_shape_single tem_load_shape_single proc~tem_load_shape_single->interface~tem_load_canonicalnd

Source Code

  subroutine transformCanoND_single(canoND, transform)
    !--------------------------------------------------------------------------!
    !> canonical geometry object type
    type( tem_canonicalND_type ), intent(inout) :: canoND
    !> transformation for spatial object
    type(tem_transformation_type), intent(in) :: transform
    !--------------------------------------------------------------------------!
    integer :: iVec
    !--------------------------------------------------------------------------!
    if(transform%active) then
      if(transform%deform%active) then
        canoND%origin = matmul( transform%deform%matrix, &
          &                     canoND%origin )
        do iVec=1,canoND%nDim
          canoND%vec(:,iVec) = matmul( transform%deform%matrix, &
            &                         canoND%vec(:,iVec) )
        enddo
      endif
      if(transform%translate%active) then
        canoND%origin = transform%translate%vec + canoND%origin
      endif
    endif

  end subroutine transformCanoND_single