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
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Source Code
FUNCTION hmap_knot_eval_gij(sf,qL_in,q_G,qR_in)RESULT(g_ab)IMPLICIT NONE!-----------------------------------------------------------------------------------------------------------------------------------! INPUT VARIABLESCLASS(t_hmap_knot),INTENT(IN)::sfREAL(wp),INTENT(IN)::qL_in(3)REAL(wp),INTENT(IN)::q_G(3)REAL(wp),INTENT(IN)::qR_in(3)!-----------------------------------------------------------------------------------------------------------------------------------! OUTPUT VARIABLESREAL(wp)::g_ab!-----------------------------------------------------------------------------------------------------------------------------------! LOCAL VARIABLESREAL(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**2g_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 ASSOCIATEEND FUNCTION hmap_knot_eval_gij