hmap_axisNB_eval_Jh_dq_aux Function

public function hmap_axisNB_eval_Jh_dq_aux(sf, q1, q2, q1_vec, q2_vec, q3_vec, xv) result(Jh_dq)

evaluate derivative of Jacobian of mapping h: sum_k q_vec^k dJ_h/dq^k, k=1,2,3 at q=(q^1,q^2,zeta)

NOTE: needs auxvar with do_2nd_der=.TRUE.!! not checked for performance reasons.

Type Bound

t_hmap_axisNB

Arguments

Type IntentOptional Attributes Name
class(t_hmap_axisNB), intent(in) :: sf
real(kind=wp), intent(in) :: q1
real(kind=wp), intent(in) :: q2
real(kind=wp), intent(in) :: q1_vec
real(kind=wp), intent(in) :: q2_vec
real(kind=wp), intent(in) :: q3_vec
class(c_hmap_auxvar), intent(in) :: xv

Return Value real(kind=wp)


Source Code

FUNCTION hmap_axisNB_eval_Jh_dq_aux( sf ,q1,q2,q1_vec,q2_vec,q3_vec,xv) RESULT(Jh_dq)
! MODULES
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(t_hmap_axisNB), INTENT(IN) :: sf
  REAL(wp)            , INTENT(IN) :: q1,q2
  REAL(wp)            , INTENT(IN) :: q1_vec,q2_vec,q3_vec
  CLASS(c_hmap_auxvar), INTENT(IN) :: xv
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  REAL(wp)                         :: Jh_dq
!===================================================================================================================================
  SELECT TYPE(xv); TYPE IS(t_hmap_axisNB_auxvar)
  Jh_dq=SUM(( q1_vec* xv%Np                 &
             +q2_vec* xv%Bp                 &
             +q3_vec*  (xv%Tp + xv%Npp*q1 + xv%Bpp*q2) )*xv%NxB     &
             +q3_vec*( (xv%T  + xv%Np *q1            )* xv%NxBp  &
                      +(xv%T              + xv%Bp *q2)* xv%NpxB  )  )
  END SELECT
END FUNCTION hmap_axisNB_eval_Jh_dq_aux