hmap_knot_eval_gij_dq Function

public function hmap_knot_eval_gij_dq(sf, qL_in, q_G, qR_in, q_vec) result(g_ab_dq)

evaluate sum_k sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) *q_vec^k, k=1,2,3 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta

Type Bound

t_hmap_knot

Arguments

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

Return Value real(kind=wp)


Calls

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

Called by

proc~~hmap_knot_eval_gij_dq~~CalledByGraph proc~hmap_knot_eval_gij_dq t_hmap_knot%hmap_knot_eval_gij_dq proc~hmap_knot_test hmap_knot_test proc~hmap_knot_test->proc~hmap_knot_eval_gij_dq 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_gij_dq( sf ,qL_in,q_G,qR_in,q_vec) RESULT(g_ab_dq)
! MODULES
  IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(t_hmap_knot), INTENT(IN) :: sf
  REAL(wp)          , INTENT(IN) :: qL_in(3)
  REAL(wp)          , INTENT(IN) :: q_G(3)
  REAL(wp)          , INTENT(IN) :: qR_in(3)
  REAL(wp)          , INTENT(IN) :: q_vec(3)
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  REAL(wp)                       :: g_ab_dq
!===================================================================================================================================
  ! Rl = R0 + delta * cos(l*zeta) + q1
  ! A = - l * delta * sin(l*zeta),
  ! B = l * delta * cos(l*zeta)
  ! C = k**2 * Rl**2 + l**2 * delta**2
  !                       |q1  |   |1  0  A|        |q1  |
  !q_i G_ij q_j = (dalpha |q2  | ) |0  1  B| (dbeta |q2  | )
  !                       |q3  |   |A  B  C|        |q3  |
  ! dA_dq1 = 0 , dA_dq2 = 0 , dA_dq3 = - l*l * delta * cos(l*zeta)
  ! dB_dq1 = 0 , dB_dq2 = 0 , dB_dq3 = - l*l * delta * sin(l*zeta)
  ! dC_dq1 = 2*k**2 *Rl , dC_dq2 = 0 , dC_dq3 = -2*k**2 *Rl *l *delta * sin(l*zeta)
  ASSOCIATE(q1=>q_G(1),q2=>q_G(2),zeta=>q_G(3))
  g_ab_dq =-sf%l*sf%l*sf%delta*( COS(sf%l*zeta)*(qL_in(1)*qR_in(3) + qL_in(3)*qR_in(1)) &
                                +SIN(sf%l*zeta)*(qL_in(2)*qR_in(3) + qL_in(3)*qR_in(2)) ) *q_vec(3) &
                  +2*sf%k**2 * sf%Rl(q_G) *qL_in(3)*qR_in(3)*(q_vec(1) - sf%l*sf%delta*SIN(sf%l*zeta)*q_vec(3))
  END ASSOCIATE
END FUNCTION hmap_knot_eval_gij_dq