get_pest_newton Function

public function get_pest_newton(theta_star, zeta, LA_fbase_in, LA_in) result(thet_out)

Uses

  • proc~~get_pest_newton~~UsesGraph proc~get_pest_newton get_pest_newton module~modgvec_fbase MODgvec_fBase proc~get_pest_newton->module~modgvec_fbase module~modgvec_globals MODgvec_Globals proc~get_pest_newton->module~modgvec_globals module~modgvec_newton MODgvec_Newton proc~get_pest_newton->module~modgvec_newton module~modgvec_fbase->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env module~modgvec_newton->module~modgvec_globals

This function returns the result of the 1D newton root search for the pest theta angle

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: theta_star
real(kind=wp), intent(in) :: zeta
type(t_fBase), intent(in), TARGET :: LA_fbase_in
real(kind=wp), intent(in), TARGET :: LA_in(1:LA_fbase_in%modes)

Return Value real(kind=wp)


Calls

proc~~get_pest_newton~~CallsGraph proc~get_pest_newton get_pest_newton interface~newtonroot1d_fdf NewtonRoot1D_FdF proc~get_pest_newton->interface~newtonroot1d_fdf interface~newtonroot1d_fdf->interface~newtonroot1d_fdf

Called by

proc~~get_pest_newton~~CalledByGraph proc~get_pest_newton get_pest_newton proc~find_pest_angles find_pest_angles proc~find_pest_angles->proc~get_pest_newton proc~buildtransform_sfl t_transform_sfl%BuildTransform_SFL proc~buildtransform_sfl->proc~find_pest_angles proc~find_pest_angles_2d find_pest_angles_2D proc~find_pest_angles_2d->proc~find_pest_angles

Source Code

FUNCTION get_pest_newton(theta_star,zeta,LA_fbase_in,LA_in) RESULT(thet_out)
  USE MODgvec_fbase  ,ONLY: t_fbase
  USE MODgvec_Newton ,ONLY: NewtonRoot1D_FdF
  USE MODgvec_Globals,ONLY: PI
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
    REAL(wp)     ,INTENT(IN) :: theta_star !< initial guess = thet*
    REAL(wp)     ,INTENT(IN) :: zeta
    TYPE(t_fbase),INTENT(IN), TARGET ::LA_fbase_in     !<  basis of lambda
    REAL(wp)     ,INTENT(IN), TARGET :: LA_in(1:LA_fbase_in%modes) !< fourier coefficients of thet*=thet+LA(theta,zeta)
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
    REAL(wp)              :: thet_out !< theta position in original coordinates
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! LOCAL VARIABLES
    TYPE(t_newton_Root1D_FdF_pest) :: fobj
  !===================================================================================================================================
    fobj%zeta = zeta
    fobj%LA_fbase_in => LA_fbase_in
    fobj%LA_in => LA_in

    thet_out = NewtonRoot1D_FdF(1.0e-12_wp,theta_star-PI,theta_star+PI,0.1_wp*PI, &
                                theta_star, theta_star,fobj) !start, rhs,func
END FUNCTION get_pest_newton