get_booz_newton_dFR Function

private function get_booz_newton_dFR(sf, x) result(dFF)

Derivative of the target function for finding the logical angle for given boozer angles

Type Bound

t_newton_Root2D_boozer

Arguments

Type IntentOptional Attributes Name
class(t_newton_Root2D_boozer), intent(in) :: sf
real(kind=wp), intent(in) :: x(2)

Return Value real(kind=wp), (2,2)


Calls

proc~~get_booz_newton_dfr~~CallsGraph proc~get_booz_newton_dfr t_newton_Root2D_boozer%get_booz_newton_dFR proc~fbase_eval t_fBase%fBase_eval proc~get_booz_newton_dfr->proc~fbase_eval proc~fbase_eval_xn t_fBase%fBase_eval_xn proc~fbase_eval->proc~fbase_eval_xn

Source Code

FUNCTION get_booz_newton_dFR(sf, x) RESULT(dFF)
  IMPLICIT NONE
  CLASS(t_newton_Root2D_boozer), INTENT(IN) :: sf
  REAL(wp), INTENT(IN) :: x(2)
  REAL(wp) :: dFF(2,2) !jacobian
  REAL(wp),DIMENSION(sf%AB_fbase_in%modes) :: base_dthet, base_dzeta

  base_dthet = sf%AB_fbase_in%eval(DERIV_THET, x) !dbase/dtheta
  base_dzeta = sf%AB_fbase_in%eval(DERIV_ZETA, x) !dbase/dtheta

  dFF(1,:) = (/1.0_wp + DOT_PRODUCT(base_dthet, sf%A_in),          DOT_PRODUCT(base_dzeta, sf%A_in)/)
  dFF(2,:) = (/         DOT_PRODUCT(base_dthet, sf%B_in), 1.0_wp + DOT_PRODUCT(base_dzeta, sf%B_in)/)
END FUNCTION get_booz_newton_dFR