hmap_knot_eval_dxdq Function

public function hmap_knot_eval_dxdq(sf, q_in, q_vec) result(dxdq_qvec)

evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) ,

Type Bound

t_hmap_knot

Arguments

Type IntentOptional Attributes Name
class(t_hmap_knot), intent(in) :: sf
real(kind=wp), intent(in) :: q_in(3)
real(kind=wp), intent(in) :: q_vec(3)

Return Value real(kind=wp), (3)


Calls

proc~~hmap_knot_eval_dxdq~~CallsGraph proc~hmap_knot_eval_dxdq t_hmap_knot%hmap_knot_eval_dxdq proc~hmap_knot_eval_rl t_hmap_knot%hmap_knot_eval_Rl proc~hmap_knot_eval_dxdq->proc~hmap_knot_eval_rl

Called by

proc~~hmap_knot_eval_dxdq~~CalledByGraph proc~hmap_knot_eval_dxdq t_hmap_knot%hmap_knot_eval_dxdq proc~hmap_knot_test hmap_knot_test proc~hmap_knot_test->proc~hmap_knot_eval_dxdq proc~hmap_knot_init_params hmap_knot_init_params proc~hmap_knot_init_params->proc~hmap_knot_test interface~t_hmap_knot t_hmap_knot interface~t_hmap_knot->proc~hmap_knot_init_params proc~hmap_knot_init hmap_knot_init interface~t_hmap_knot->proc~hmap_knot_init proc~hmap_knot_init->proc~hmap_knot_init_params

Source Code

FUNCTION hmap_knot_eval_dxdq( sf ,q_in,q_vec) RESULT(dxdq_qvec)
! MODULES
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(t_hmap_knot), INTENT(IN) :: sf
  REAL(wp)          , INTENT(IN) :: q_in(3)
  REAL(wp)          , INTENT(IN) :: q_vec(3)
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  REAL(wp)                       :: dxdq_qvec(3)
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  REAL(wp) :: coskzeta,sinkzeta
!===================================================================================================================================
 ASSOCIATE(zeta=>q_in(3))
 coskzeta=COS(sf%k*zeta)
 sinkzeta=SIN(sf%k*zeta)
 dxdq_qvec(1:3)=   (/ coskzeta*q_vec(1),-sinkzeta*q_vec(1),q_vec(2)/) &
                  +(/ -sf%k*sf%Rl(q_in)*sinkzeta-sf%l*sf%delta*SIN(sf%l*zeta)*coskzeta, &
                      -sf%k*sf%Rl(q_in)*coskzeta+sf%l*sf%delta*SIN(sf%l*zeta)*sinkzeta, &
                                                 sf%l*sf%delta*COS(sf%l*zeta)      /)*q_vec(3)
 END ASSOCIATE


END FUNCTION hmap_knot_eval_dxdq