rProfile_drho2 Function

public function rProfile_drho2(sf, rho) result(derivative)

evaluate the 2nd derivative of a radial profile with respect to rho ~sqrt(magnetic flux).

Type Bound

c_rProfile

Arguments

Type IntentOptional Attributes Name
class(c_rProfile) :: sf

self

real(kind=wp), intent(in) :: rho

rho position rho ~sqrt(magnetic flux)

Return Value real(kind=wp)

2nd derivative of a radial profile with respect to rho ~sqrt(magnetic flux).


Calls

proc~~rprofile_drho2~~CallsGraph proc~rprofile_drho2 c_rProfile%rProfile_drho2 eval_at_rho2 eval_at_rho2 proc~rprofile_drho2->eval_at_rho2 proc~rho2_derivative rho2_derivative proc~rprofile_drho2->proc~rho2_derivative proc~poly_derivative_prefactor poly_derivative_prefactor proc~rho2_derivative->proc~poly_derivative_prefactor

Called by

proc~~rprofile_drho2~~CalledByGraph proc~rprofile_drho2 c_rProfile%rProfile_drho2 proc~rprofile_eval_at_rho c_rProfile%rProfile_eval_at_rho proc~rprofile_eval_at_rho->proc~rprofile_drho2 proc~evaluate_profile evaluate_profile proc~evaluate_profile->proc~rprofile_eval_at_rho proc~init_boozer init_boozer proc~init_boozer->proc~rprofile_eval_at_rho proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->proc~rprofile_eval_at_rho proc~initprofilesgp InitProfilesGP proc~initprofilesgp->proc~rprofile_eval_at_rho proc~initvmec InitVMEC proc~initvmec->proc~rprofile_eval_at_rho proc~vmec1d_visu VMEC1D_visu proc~vmec1d_visu->proc~rprofile_eval_at_rho proc~writestatetoascii WriteStateToASCII proc~writestatetoascii->proc~rprofile_eval_at_rho interface~writestate WriteState interface~writestate->proc~writestatetoascii proc~analyze Analyze proc~analyze->proc~vmec1d_visu proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~init_la_from_solution proc~initsolutionmhd3d->proc~initprofilesgp proc~initsolutionmhd3d->interface~writestate program~gvec_post GVEC_POST program~gvec_post->proc~initprofilesgp proc~minimizemhd3d_descent MinimizeMHD3D_descent proc~minimizemhd3d_descent->interface~writestate proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->proc~minimizemhd3d_descent

Source Code

  FUNCTION rProfile_drho2(sf, rho) RESULT(derivative)
  ! MODULES
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
    CLASS(c_rProfile)  :: sf !! self
    REAL(wp), INTENT(IN) :: rho                !! rho position rho ~sqrt(magnetic flux)
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
    REAL(wp) :: derivative   !! 2nd derivative of a radial profile with respect to rho ~sqrt(magnetic flux).
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! LOCAL VARIABLES
    REAL(wp) :: rho2
  !===================================================================================================================================
    rho2 = rho2_derivative(rho,deriv=0)
    ! d^2/dx^2 f(g(x)) = [g'(x)]^2 * f''(g(x))+g''(x) * f'(g(x))
    derivative =  rho2_derivative(rho,deriv=1)**2*sf%eval_at_rho2(rho2, deriv=2) &
                + rho2_derivative(rho,deriv=2)*   sf%eval_at_rho2(rho2, deriv=1)
  END FUNCTION rProfile_drho2