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 | Intent | Optional | 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 |
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