evaluate sum_k q_vec^k * sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) , 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 | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_hmap_axisNB), | 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) |
FUNCTION hmap_axisNB_eval_gij_dq( sf ,qL_in,q_G,qR_in,q_vec) RESULT(g_ab_dq) CLASS(t_hmap_axisNB), 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 !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES REAL(wp),DIMENSION(3) :: X0,T,N,B,Np,Bp,Tq,Tq_p,Tp,Npp,Bpp REAL(wp) :: NpN,NpB,BpN,BpB,TqNp,TqBp !=================================================================================================================================== ! |q1 | |0 0 N'.N | |q1 | !q_i dG_ij/dq1 q_j = (dalpha |q2 | ) |0 0 N'.B | (dbeta |q2 | ) ! |q3 | |N.N' B.N' 2N'.Tq | |q3 | ASSOCIATE(q1=>q_G(1),q2=>q_G(2),zeta=>q_G(3)) CALL sf%eval_TNB(zeta,X0,T,N,B,Np,Bp,Tp=Tp,Npp=Npp,Bpp=Bpp) NpN=SUM(Np*N); BpN=SUM(Bp*N); NpB=SUM(Np*B); BpB=SUM(Bp*B) Tq=(T+q1*Np+q2*Bp) TqNp = SUM(Tq*Np) TqBp = SUM(Tq*Bp) Tq_p=(Tp+q1*Npp+q2*Bpp) !d/dzeta Tq g_ab_dq = 2.0_wp*( q_vec(3)*( NpN * (qL_in(1)*qR_in(1)) & + BpB * (qL_in(2)*qR_in(2)) ) & +( q_vec(1)* TqNp & +q_vec(2)* TqBp & +q_vec(3)* SUM(Tq*Tq_p) )*(qL_in(3)*qR_in(3)) ) & + q_vec(3)* ( BpN & + NpB )* (qL_in(1)*qR_in(2)+qL_in(2)*qR_in(1)) & + ( q_vec(1)* NpN & +q_vec(2)* BpN & +q_vec(3)* ( TqNp & +SUM(N *Tq_p) ) )*(qL_in(1)*qR_in(3)+qL_in(3)*qR_in(1)) & + ( q_vec(1)* NpB & +q_vec(2)* BpB & +q_vec(3)* ( TqBp & +SUM(B *Tq_p) ) )*(qL_in(2)*qR_in(3)+qL_in(3)*qR_in(2)) END ASSOCIATE END FUNCTION hmap_axisNB_eval_gij_dq