hmap_knot_get_ddx_dqij Subroutine

public subroutine hmap_knot_get_ddx_dqij(sf, q_in, ddx_dq11, ddx_dq12, ddx_dq13, ddx_dq22, ddx_dq23, ddx_dq33)

evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=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(out), DIMENSION(3) :: ddx_dq11
real(kind=wp), intent(out), DIMENSION(3) :: ddx_dq12
real(kind=wp), intent(out), DIMENSION(3) :: ddx_dq13
real(kind=wp), intent(out), DIMENSION(3) :: ddx_dq22
real(kind=wp), intent(out), DIMENSION(3) :: ddx_dq23
real(kind=wp), intent(out), DIMENSION(3) :: ddx_dq33

Calls

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

Called by

proc~~hmap_knot_get_ddx_dqij~~CalledByGraph proc~hmap_knot_get_ddx_dqij t_hmap_knot%hmap_knot_get_ddx_dqij proc~hmap_knot_test hmap_knot_test proc~hmap_knot_test->proc~hmap_knot_get_ddx_dqij 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

SUBROUTINE hmap_knot_get_ddx_dqij( sf ,q_in,ddx_dq11,ddx_dq12,ddx_dq13,ddx_dq22,ddx_dq23,ddx_dq33)
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
  CLASS(t_hmap_knot), INTENT(IN) :: sf
  REAL(wp)          , INTENT(IN) :: q_in(3)
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
  REAL(wp),DIMENSION(3),INTENT(OUT):: ddx_dq11,ddx_dq12,ddx_dq13,ddx_dq22,ddx_dq23,ddx_dq33
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! LOCAL VARIABLES
  REAL(wp) :: coskzeta,sinkzeta,dsinlzeta,dcoslzeta
  !===================================================================================================================================
  ASSOCIATE(zeta=>q_in(3))
  coskzeta=COS(sf%k*zeta)
  sinkzeta=SIN(sf%k*zeta)
  dsinlzeta=sf%delta*SIN(sf%l*zeta)
  dcoslzeta=sf%delta*COS(sf%l*zeta)
  !   Rl = R0 + delta * cos(l*zeta) + q1
  !   Zl = delta * sin(l*zeta) + q2
  ddx_dq11=0.0_wp
  ddx_dq12=0.0_wp
  ddx_dq13=(/ -sf%k*sinkzeta,-sf%k*coskzeta, 0.0_wp /)
  ddx_dq22=0.0_wp
  ddx_dq23=0.0_wp
  ddx_dq33(1)= -sf%k*sf%k*sf%Rl(q_in)*coskzeta+sf%l*sf%k*dsinlzeta*sinkzeta &
               +sf%k*sf%l*dsinlzeta  *sinkzeta-sf%l*sf%l*dcoslzeta*coskzeta
  ddx_dq33(2)=  sf%k*sf%k*sf%Rl(q_in)*sinkzeta+sf%l*sf%k*dsinlzeta*coskzeta  &
               +sf%k*sf%l*dsinlzeta  *coskzeta+sf%l*sf%l*dcoslzeta*sinkzeta
  ddx_dq33(3)= -sf%l*sf%l*dsinlzeta
  END ASSOCIATE
  END SUBROUTINE hmap_knot_get_ddx_dqij