hmap_knot_eval_gij Function

public function hmap_knot_eval_gij(sf, qL_in, q_G, qR_in) result(g_ab)

evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, 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)

Return Value real(kind=wp)


Calls

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

Called by

proc~~hmap_knot_eval_gij~~CalledByGraph proc~hmap_knot_eval_gij t_hmap_knot%hmap_knot_eval_gij proc~hmap_knot_test hmap_knot_test proc~hmap_knot_test->proc~hmap_knot_eval_gij 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( sf ,qL_in,q_G,qR_in) RESULT(g_ab)
  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)
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  REAL(wp)                       :: g_ab
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
  REAL(wp)                       :: A, B, C
!===================================================================================================================================
  ! 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  |
 ASSOCIATE(q1=>q_G(1),q2=>q_G(2),zeta=>q_G(3))
   A = - sf%l*sf%delta*SIN(sf%l*zeta)
   B = sf%l*sf%delta*COS(sf%l*zeta)
   C = sf%k**2 * sf%Rl(q_G)**2 + sf%l**2 * sf%delta**2
   g_ab=SUM(qL_in(:)*(/qR_in(1) + A*qR_in(3), qR_in(2) + B*qR_in(3), A*qR_in(1) + B*qR_in(2) + C*qR_in(3)/))
 END ASSOCIATE
END FUNCTION hmap_knot_eval_gij