initialize the aux variable
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_hmap_frenet), | intent(in) | :: | sf |
self |
||
| real(kind=wp), | intent(in) | :: | zeta | |||
| logical, | intent(in) | :: | do_2nd_der |
compute second derivative and store second derivative terms |
FUNCTION hmap_frenet_init_aux( sf ,zeta,do_2nd_der) RESULT(xv) ! MODULES IMPLICIT NONE !----------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(t_hmap_frenet),INTENT(IN) :: sf !! self REAL(wp) ,INTENT(IN) :: zeta LOGICAL ,INTENT(IN) :: do_2nd_der !! compute second derivative and store second derivative terms !----------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES TYPE(t_hmap_frenet_auxvar) :: xv !----------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES REAL(wp),DIMENSION(3) :: X0p,X0pp,X0ppp,X0p4,Bloc REAL(wp) :: absB,absB_p !=================================================================================================================================== xv%do_2nd_der=do_2nd_der xv%zeta = zeta IF(xv%do_2nd_der)THEN CALL sf%eval_X0(zeta, xv%X0, X0p, X0pp, X0ppp,X0p4=X0p4) ELSE CALL sf%eval_X0(zeta, xv%X0, X0p, X0pp, X0ppp) END IF xv%lp = SQRT(SUM(X0p*X0p)) xv%T = X0p / xv%lp Bloc = CROSS(X0p, X0pp) absB = SQRT(SUM(Bloc*Bloc)) xv%kappa = absB / (xv%lp**3) IF(xv%kappa.LT.1.0e-8) & CALL abort(__STAMP__, & "hmap_frenet cannot evaluate frame at curvature < 1e-8 !", RealInfo=zeta) xv%sigma = sf%sigma(zeta) xv%tau = SUM(X0ppp*Bloc) / (absB**2) xv%B = Bloc / absB xv%N = CROSS(xv%B, xv%T) IF(xv%do_2nd_der)THEN xv%lp_p = SUM(X0pp*X0p) / xv%lp absB_p = SUM(Bloc*CROSS(X0p, X0ppp)) / absB xv%kappa_p = (absB_p*xv%lp -3*absB * xv%lp_p) / (xv%lp**4) xv%tau_p = (SUM(X0p4*Bloc)*absB -2*SUM(X0ppp*Bloc)*absB_p) / (absB**3) END IF END FUNCTION hmap_frenet_init_aux