MODgvec_rProfile_base Module

Module ** rProfile **

Abstract class for radial profiles


Uses

  • module~~modgvec_rprofile_base~~UsesGraph module~modgvec_rprofile_base MODgvec_rProfile_base module~modgvec_globals MODgvec_Globals module~modgvec_rprofile_base->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env

Used by

  • module~~modgvec_rprofile_base~~UsedByGraph module~modgvec_rprofile_base MODgvec_rProfile_base module~modgvec_mhd3d_vars MODgvec_MHD3D_Vars module~modgvec_mhd3d_vars->module~modgvec_rprofile_base module~modgvec_rprofile_bspl MODgvec_rProfile_bspl module~modgvec_rprofile_bspl->module~modgvec_rprofile_base module~modgvec_rprofile_poly MODgvec_rProfile_poly module~modgvec_rprofile_poly->module~modgvec_rprofile_base module~modgvec_vmec_vars MODgvec_VMEC_Vars module~modgvec_vmec_vars->module~modgvec_rprofile_base proc~evaluate_profile evaluate_profile proc~evaluate_profile->module~modgvec_rprofile_base proc~evaluate_profile->module~modgvec_mhd3d_vars proc~evaluate_rho2_profile evaluate_rho2_profile proc~evaluate_rho2_profile->module~modgvec_rprofile_base proc~evaluate_rho2_profile->module~modgvec_mhd3d_vars proc~initprofile InitProfile proc~initprofile->module~modgvec_rprofile_base proc~initprofile->module~modgvec_rprofile_bspl proc~initprofile->module~modgvec_rprofile_poly proc~addboundaryperturbation AddBoundaryPerturbation proc~addboundaryperturbation->module~modgvec_mhd3d_vars proc~analyze Analyze proc~analyze->module~modgvec_mhd3d_vars proc~applybc_fstrong ApplyBC_Fstrong proc~applybc_fstrong->module~modgvec_mhd3d_vars proc~buildprecond BuildPrecond proc~buildprecond->module~modgvec_mhd3d_vars proc~evalaux EvalAux proc~evalaux->module~modgvec_mhd3d_vars proc~evalenergy EvalEnergy proc~evalenergy->module~modgvec_mhd3d_vars proc~evalforce EvalForce proc~evalforce->module~modgvec_mhd3d_vars proc~evaluate_hmap evaluate_hmap proc~evaluate_hmap->module~modgvec_mhd3d_vars proc~evaluate_hmap_derivs evaluate_hmap_derivs proc~evaluate_hmap_derivs->module~modgvec_mhd3d_vars proc~evaluate_hmap_only evaluate_hmap_only proc~evaluate_hmap_only->module~modgvec_mhd3d_vars proc~evaluate_hmap_only_pw evaluate_hmap_only_pw proc~evaluate_hmap_only_pw->module~modgvec_mhd3d_vars proc~evaluate_hmap_pw evaluate_hmap_pw proc~evaluate_hmap_pw->module~modgvec_mhd3d_vars proc~evaluate_jac_h_derivs evaluate_jac_h_derivs proc~evaluate_jac_h_derivs->module~modgvec_mhd3d_vars proc~evaluate_jac_h_derivs_pw evaluate_jac_h_derivs_pw proc~evaluate_jac_h_derivs_pw->module~modgvec_mhd3d_vars proc~evaluate_metric_derivs evaluate_metric_derivs proc~evaluate_metric_derivs->module~modgvec_mhd3d_vars proc~finalizemhd3d t_functional_mhd3d%FinalizeMHD3D proc~finalizemhd3d->module~modgvec_mhd3d_vars proc~finalizemhd3d_evalfunc FinalizeMHD3D_EvalFunc proc~finalizemhd3d_evalfunc->module~modgvec_mhd3d_vars proc~finalizevmec FinalizeVMEC proc~finalizevmec->module~modgvec_vmec_vars proc~find_pest_angles_2d find_pest_angles_2D proc~find_pest_angles_2d->module~modgvec_mhd3d_vars proc~fitspline FitSpline proc~fitspline->module~modgvec_vmec_vars proc~fitsplinehalf FitSplineHalf proc~fitsplinehalf->module~modgvec_vmec_vars proc~get_boozer get_boozer proc~get_boozer->module~modgvec_mhd3d_vars proc~init Init proc~init->module~modgvec_mhd3d_vars proc~init_boozer init_boozer proc~init_boozer->module~modgvec_mhd3d_vars proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->module~modgvec_mhd3d_vars proc~initaverageaxis InitAverageAxis proc~initaverageaxis->module~modgvec_mhd3d_vars proc~initializemhd3d_evalfunc InitializeMHD3D_evalFunc proc~initializemhd3d_evalfunc->module~modgvec_mhd3d_vars proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->module~modgvec_mhd3d_vars proc~initmhd3d->module~modgvec_rprofile_poly proc~initmhd3d->module~modgvec_vmec_vars proc~initprofilesgp InitProfilesGP proc~initprofilesgp->module~modgvec_mhd3d_vars proc~initsolution InitSolution proc~initsolution->module~modgvec_mhd3d_vars proc~initsolution->module~modgvec_vmec_vars proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->module~modgvec_mhd3d_vars proc~initvmec InitVMEC proc~initvmec->module~modgvec_rprofile_bspl proc~initvmec->module~modgvec_vmec_vars proc~minimize minimize proc~minimize->module~modgvec_mhd3d_vars proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->module~modgvec_mhd3d_vars proc~restartfromstate RestartFromState proc~restartfromstate->module~modgvec_mhd3d_vars proc~select_base select_base proc~select_base->module~modgvec_mhd3d_vars proc~select_base_dofs select_base_dofs proc~select_base_dofs->module~modgvec_mhd3d_vars proc~vmec1d_visu VMEC1D_visu proc~vmec1d_visu->module~modgvec_vmec_vars proc~vmec3d_visu VMEC3D_visu proc~vmec3d_visu->module~modgvec_vmec_vars proc~vmec_evalsplmode VMEC_EvalSplMode proc~vmec_evalsplmode->module~modgvec_vmec_vars proc~writestatetoascii WriteStateToASCII proc~writestatetoascii->module~modgvec_mhd3d_vars

Abstract Interfaces

abstract interface

  • public function i_fun_eval_at_rho2(sf, rho2, deriv) result(profile_value)

    Arguments

    Type IntentOptional Attributes Name
    class(c_rProfile), intent(in) :: sf
    real(kind=wp), intent(in) :: rho2
    integer, intent(in), optional :: deriv

    Return Value real(kind=wp)

abstract interface

  • public function i_fun_antiderivative(sf) result(antideriv)

    Arguments

    Type IntentOptional Attributes Name
    class(c_rProfile), intent(in) :: sf

    Return Value class(c_rProfile), ALLOCATABLE


Derived Types

type, public, ABSTRACT ::  c_rProfile

Components

Type Visibility Attributes Name Initial
integer, public :: n_coefs
real(kind=wp), public, ALLOCATABLE :: coefs(:)

Type-Bound Procedures

procedure(i_fun_eval_at_rho2), public, deferred :: eval_at_rho2
procedure(i_fun_antiderivative), public, deferred :: antiderivative
procedure, public :: eval_at_rho => rProfile_eval_at_rho
procedure, public :: rProfile_drho2
procedure, public :: rProfile_drho3
procedure, public :: rProfile_drho4

Functions

public pure function poly_derivative_prefactor(D, deriv) result(prefactor)

calculate the prefactor for the d-th coefficient of the n-th derivative of a polynomial

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: D
integer, intent(in) :: deriv

Return Value real(kind=wp)

public pure function rho2_derivative(rho, deriv) result(rho2_prime)

evaluate the n-th derivative of (rho^2) with respect to rho ~sqrt(magnetic flux).

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: rho

rho position rho ~sqrt(magnetic flux)

integer, intent(in) :: deriv

derivative in rho

Return Value real(kind=wp)

n-th derivative of rho2 with respect to rho ~sqrt(magnetic flux).

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

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

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).

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

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

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)

3rd derivative of a radial profile with respect to rho ~sqrt(magnetic flux)

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

evaluate the 4th derivative of a radial profile with respect to rho ~sqrt(magnetic flux)

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)

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

public function rProfile_eval_at_rho(sf, rho, deriv) result(derivative)

evaluate the n-th derivative of a radial profile with respect to rho ~sqrt(magnetic flux). NOTE: n has to be in [0,4] due to an explicit implementation of the product rule.

Arguments

Type IntentOptional Attributes Name
class(c_rProfile) :: sf

self

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

rho position rho ~sqrt(magnetic flux)

integer, intent(in), optional :: deriv

derivative in rho

Return Value real(kind=wp)

n-th derivative of a radial profile with respect to rho ~sqrt(magnetic flux).