hmap_frenet_get_ddx_dqij_aux Subroutine

public subroutine hmap_frenet_get_ddx_dqij_aux(sf, q1, q2, xv, 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_frenet

Arguments

Type IntentOptional Attributes Name
class(t_hmap_frenet), intent(in) :: sf
real(kind=wp), intent(in) :: q1
real(kind=wp), intent(in) :: q2
class(c_hmap_auxvar), intent(in) :: xv
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

Source Code

SUBROUTINE hmap_frenet_get_ddx_dqij_aux( sf ,q1,q2,xv,ddx_dq11,ddx_dq12,ddx_dq13,ddx_dq22,ddx_dq23,ddx_dq33)
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
  CLASS(t_hmap_frenet), INTENT(IN) :: sf
  REAL(wp)            , INTENT(IN) :: q1,q2
  CLASS(c_hmap_auxvar), INTENT(IN) :: xv
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
  REAL(wp),DIMENSION(3),INTENT(OUT) :: ddx_dq11,ddx_dq12,ddx_dq13,ddx_dq22,ddx_dq23,ddx_dq33
  !===================================================================================================================================
  SELECT TYPE(xv); TYPE IS(t_hmap_frenet_auxvar)
  ddx_dq11=0.0_wp
  ddx_dq12=0.0_wp
  ddx_dq13=xv%sigma*xv%lp*(-xv%kappa*xv%T +xv%tau*xv%B)
  ddx_dq22=0.0_wp
  ddx_dq23=-xv%sigma*xv%lp*xv%tau*xv%N
  ddx_dq33(1:3)= xv%lp_p*((1.0_wp-xv%sigma*xv%kappa*q1)*xv%T +xv%sigma*xv%tau*(xv%B*q1-xv%N*q2)) &
                 +xv%lp*xv%sigma*( -xv%kappa_p*q1*xv%T +xv%tau_p*(xv%B*q1-xv%N*q2)                             &
                                  +xv%lp*( (1.0_wp-xv%sigma*xv%kappa*q1)*(xv%kappa*xv%N)                      &
                                          +xv%sigma*xv%tau*((-xv%tau*xv%N)*q1-((-xv%kappa*xv%T +xv%tau*xv%B))*q2)) )
  END SELECT !type(xv)
END SUBROUTINE hmap_frenet_get_ddx_dqij_aux