MODgvec_py_state Module


Uses

  • module~~modgvec_py_state~~UsesGraph module~modgvec_py_state MODgvec_py_state module~modgvec_base MODgvec_base module~modgvec_py_state->module~modgvec_base module~modgvec_c_functional MODgvec_c_functional module~modgvec_py_state->module~modgvec_c_functional module~modgvec_fbase MODgvec_fBase module~modgvec_base->module~modgvec_fbase module~modgvec_globals MODgvec_Globals module~modgvec_base->module~modgvec_globals module~modgvec_sbase MODgvec_sBase module~modgvec_base->module~modgvec_sbase module~modgvec_sgrid MODgvec_sGrid module~modgvec_base->module~modgvec_sgrid module~modgvec_c_functional->module~modgvec_globals module~modgvec_fbase->module~modgvec_globals iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env module~modgvec_sbase->module~modgvec_globals module~modgvec_sbase->module~modgvec_sgrid module~sll_m_bsplines sll_m_bsplines module~modgvec_sbase->module~sll_m_bsplines module~sll_m_spline_interpolator_1d sll_m_spline_interpolator_1d module~modgvec_sbase->module~sll_m_spline_interpolator_1d module~sll_m_spline_matrix sll_m_spline_matrix module~modgvec_sbase->module~sll_m_spline_matrix module~modgvec_sgrid->module~modgvec_globals module~sll_m_bsplines_base sll_m_bsplines_base module~sll_m_bsplines->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform sll_m_bsplines_non_uniform module~sll_m_bsplines->module~sll_m_bsplines_non_uniform module~sll_m_bsplines_uniform sll_m_bsplines_uniform module~sll_m_bsplines->module~sll_m_bsplines_uniform module~sll_m_working_precision sll_m_working_precision module~sll_m_bsplines->module~sll_m_working_precision module~sll_m_spline_interpolator_1d->module~sll_m_spline_matrix module~sll_m_boundary_condition_descriptors sll_m_boundary_condition_descriptors module~sll_m_spline_interpolator_1d->module~sll_m_boundary_condition_descriptors module~sll_m_spline_interpolator_1d->module~sll_m_bsplines_base module~sll_m_spline_1d sll_m_spline_1d module~sll_m_spline_interpolator_1d->module~sll_m_spline_1d module~sll_m_spline_interpolator_1d->module~sll_m_working_precision module~sll_m_spline_matrix_banded sll_m_spline_matrix_banded module~sll_m_spline_matrix->module~sll_m_spline_matrix_banded module~sll_m_spline_matrix_base sll_m_spline_matrix_base module~sll_m_spline_matrix->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense sll_m_spline_matrix_dense module~sll_m_spline_matrix->module~sll_m_spline_matrix_dense module~sll_m_spline_matrix->module~sll_m_working_precision module~sll_m_bsplines_base->module~sll_m_working_precision module~sll_m_bsplines_non_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform->module~sll_m_working_precision module~sll_m_bsplines_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_uniform->module~sll_m_working_precision module~sll_m_spline_1d->module~sll_m_bsplines_base module~sll_m_spline_1d->module~sll_m_working_precision module~sll_m_spline_matrix_banded->iso_fortran_env module~sll_m_spline_matrix_banded->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_banded->module~sll_m_working_precision module~sll_m_spline_matrix_base->module~sll_m_working_precision module~sll_m_spline_matrix_dense->iso_fortran_env module~sll_m_spline_matrix_dense->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense->module~sll_m_working_precision

Variables

Type Visibility Attributes Name Initial
class(t_functional), public, ALLOCATABLE :: functional
logical, public :: initialized = .FALSE.
integer, public :: nfp = 0

Functions

public function init_boozer(mn_max, mn_nyq, sin_cos, nrho, rho_pos, relambda) result(sfl_boozer)

initialize a SFL-Boozer object, with some parameters taken from the state (globals) Note: as of v0.2.16 (Thanks Christopher Albert) f90wrap supports ALLOCATABLEs in the return value

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: mn_max(2)

parameters for the Boozer object

integer, intent(in) :: mn_nyq(2)

parameters for the Boozer object

character(len=8), intent(in) :: sin_cos

can be either only sine: " sin" only cosine: " cos" or full: "sin_cos"

integer, intent(in) :: nrho

parameters for the Boozer object

real, intent(in), DIMENSION(nrho) :: rho_pos

radial positions

logical, intent(in) :: relambda

recompute lambda flag

Return Value type(t_sfl_boozer), ALLOCATABLE

SFL-Boozer object


Subroutines

public subroutine Init(parameterfile)

Arguments

Type IntentOptional Attributes Name
character(len=*) :: parameterfile

public subroutine InitSolution()

Arguments

None

public subroutine ReadState(statefile)

Arguments

Type IntentOptional Attributes Name
character(len=255) :: statefile

public subroutine select_base_dofs(var, base, dofs)

Handle the selection of the base, based on the selection string

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

class(t_base), intent(out), POINTER :: base

pointer to the base object (X1, X2, LA)

real, intent(out), POINTER :: dofs(:,:)

pointer to the solution dofs (U(0)%X1, U(0)%X2, U(0)%LA)

public subroutine select_base(var, base)

Handle the selection of the base, based on the selection string

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

class(t_base), intent(out), POINTER :: base

pointer to the base object (X1, X2, LA)

public subroutine evaluate_base_select(var, sel_deriv_s, sel_deriv_f, base, solution_dofs, seli_deriv_s, seli_deriv_f)

Handle the selection of the functional and derivatives, based on the selection strings

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

character(len=2), intent(in) :: sel_deriv_s

selection string: which derivative to evaluate for the spline

character(len=2), intent(in) :: sel_deriv_f

selection string: which derivative to evaluate for the fourier series

class(t_base), intent(out), POINTER :: base

pointer to the base object (X1, X2, LA)

real, intent(out), POINTER :: solution_dofs(:,:)

pointer to the solution dofs (U(0)%X1, U(0)%X2, U(0)%LA)

integer, intent(out) :: seli_deriv_s

integer values for the derivative selection

integer, intent(out) :: seli_deriv_f

integer values for the derivative selection

public subroutine get_integration_points_num(var, n_s, n_t, n_z)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

integer, intent(out) :: n_s

number of integration points

integer, intent(out) :: n_t

number of integration points

integer, intent(out) :: n_z

number of integration points

public subroutine get_integration_points(var, s_GP, s_w, t_w, z_w)

Retrieve the integration points and weights (gauss points for radial integration)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

real, intent(out), DIMENSION(:) :: s_GP

output arrays for the gauss points and weights

real, intent(out), DIMENSION(:) :: s_w

output arrays for the gauss points and weights

real, intent(out) :: t_w

output array for the fourier interpolation weights (equidistant points)

real, intent(out) :: z_w

output array for the fourier interpolation weights (equidistant points)

public subroutine get_modes(var, modes)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

integer, intent(out) :: modes

total number of modes in basis (depends if only sin/cos or sin & cos are used)

public subroutine get_mn_max(var, m_max, n_max)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

integer, intent(out) :: m_max

maximum number of poloidal, toroidal modes

integer, intent(out) :: n_max

maximum number of poloidal, toroidal modes

public subroutine get_mn_IP(var, mn_IP)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

integer, intent(out) :: mn_IP

=mn_nyq(1)*mn_nyq(2)

public subroutine get_s_nBase(var, s_nbase)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

integer, intent(out) :: s_nbase

total number of degree of freedom / global basis functions

public subroutine get_s_IP(var, s_IP)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: var

selection string: which variable to evaluate

real, intent(out), DIMENSION(:) :: s_IP

position of interpolation points for initialization, size(nBase)

public subroutine evaluate_base_list_tz(n_s, n_tz, s, thetazeta, var, sel_deriv_s, sel_deriv_f, result)

Evaluate the basis for a list of (theta, zeta) positions on all flux surfaces given by s

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_s

number of evaluation points

integer, intent(in) :: n_tz

number of evaluation points

real, intent(in) :: s(n_s)

evaluation points

real, intent(in) :: thetazeta(2,n_tz)

evaluation points

character(len=2), intent(in) :: var

selection string: which variable to evaluate

character(len=2), intent(in) :: sel_deriv_s

selection string: which derivative to evaluate for the spline

character(len=2), intent(in) :: sel_deriv_f

selection string: which derivative to evaluate for the fourier series

real, intent(out) :: result(n_s,n_tz)

output array

public subroutine evaluate_base_list_tz_all(n_s, n_tz, s, thetazeta, Qsel, Q, dQ_ds, dQ_dthet, dQ_dzeta, dQ_dss, dQ_dst, dQ_dsz, dQ_dtt, dQ_dtz, dQ_dzz)

Evaluate the basis and all derivatives for a list of (theta, zeta) positions on all flux surfaces given by s

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_s

number of evaluation points

integer, intent(in) :: n_tz

number of evaluation points

real, intent(in) :: s(n_s)

evaluation points

real, intent(in) :: thetazeta(2,n_tz)

evaluation points

character(len=2), intent(in) :: Qsel

selection string: which variable to evaluate

real, intent(out), DIMENSION(n_s,n_tz) :: Q

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_ds

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dthet

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dzeta

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dss

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dst

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dsz

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dtt

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dtz

reference space position and derivatives

real, intent(out), DIMENSION(n_s,n_tz) :: dQ_dzz

reference space position and derivatives

public subroutine evaluate_base_list_stz_all(n_stz, s, thetazeta, Qsel, Q, dQ_ds, dQ_dthet, dQ_dzeta, dQ_dss, dQ_dst, dQ_dsz, dQ_dtt, dQ_dtz, dQ_dzz)

Evaluate the basis and all derivatives for a list of (rho/s, theta, zeta) positions

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_stz

number of evaluation points

real, intent(in) :: s(n_stz)

evaluation points

real, intent(in) :: thetazeta(2,n_stz)

evaluation points

character(len=2), intent(in) :: Qsel

selection string: which variable to evaluate

real, intent(out), DIMENSION(n_stz) :: Q

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_ds

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dthet

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dzeta

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dss

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dst

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dsz

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dtt

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dtz

reference space position and derivatives

real, intent(out), DIMENSION(n_stz) :: dQ_dzz

reference space position and derivatives

public subroutine evaluate_base_tens(s, theta, zeta, var, sel_deriv_s, sel_deriv_f, result)

Evaluate the basis with a tensorproduct for the given 1D (s, theta, zeta) values

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: s(:)

evaluation points to construct a mesh

real, intent(in) :: theta(:)

evaluation points to construct a mesh

real, intent(in) :: zeta(:)

evaluation points to construct a mesh

character(len=2) :: var

selection string: which variable to evaluate

character(len=2) :: sel_deriv_s

selection string: which derivative to evaluate for the spline

character(len=2) :: sel_deriv_f

selection string: which derivative to evaluate for the fourier series

real, intent(out) :: result(:,:,:)

output array

public subroutine evaluate_base_tens_all(n_s, n_t, n_z, s, theta, zeta, Qsel, Q, dQ_ds, dQ_dthet, dQ_dzeta, dQ_dss, dQ_dst, dQ_dsz, dQ_dtt, dQ_dtz, dQ_dzz)

Evaluate the basis with a tensorproduct for the given 1D (s, theta, zeta) values

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_s

number of evaluation points

integer, intent(in) :: n_t

number of evaluation points

integer, intent(in) :: n_z

number of evaluation points

real, intent(in) :: s(n_s)

evaluation points to construct a mesh

real, intent(in) :: theta(n_t)

evaluation points to construct a mesh

real, intent(in) :: zeta(n_z)

evaluation points to construct a mesh

character(len=2) :: Qsel

selection string: which variable to evaluate

real, intent(out), DIMENSION(n_s,n_t,n_z) :: Q

reference space position & derivatives

real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_ds

reference space position & derivatives

real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dthet

reference space position & derivatives

real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dzeta

reference space position & derivatives

real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dss
real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dst
real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dsz
real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dtt
real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dtz
real, intent(out), DIMENSION(n_s,n_t,n_z) :: dQ_dzz

public subroutine evaluate_hmap_pw(n, X1, X2, zeta, dX1_ds, dX2_ds, dX1_dthet, dX2_dthet, dX1_dzeta, dX2_dzeta, coord, e_s, e_thet, e_zeta)

Evaluate the mapping from reference to physical space (hmap)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

number of evaluation points

real, intent(in), DIMENSION(n) :: X1

reference space position & derivatives

real, intent(in), DIMENSION(n) :: X2

reference space position & derivatives

real, intent(in), DIMENSION(n) :: zeta

reference space position & derivatives

real, intent(in), DIMENSION(n) :: dX1_ds

reference space position & derivatives

real, intent(in), DIMENSION(n) :: dX2_ds

reference space position & derivatives

real, intent(in), DIMENSION(n) :: dX1_dthet

reference space derivatives

real, intent(in), DIMENSION(n) :: dX2_dthet

reference space derivatives

real, intent(in), DIMENSION(n) :: dX1_dzeta

reference space derivatives

real, intent(in), DIMENSION(n) :: dX2_dzeta

reference space derivatives

real, intent(out), DIMENSION(3,n) :: coord

real space position and basis vectors

real, intent(out), DIMENSION(3,n) :: e_s

real space position and basis vectors

real, intent(out), DIMENSION(3,n) :: e_thet

real space position and basis vectors

real, intent(out), DIMENSION(3,n) :: e_zeta

real space position and basis vectors

public subroutine evaluate_hmap(n, X1, X2, zeta, dX1_ds, dX2_ds, dX1_dthet, dX2_dthet, dX1_dzeta, dX2_dzeta, coord, e_s, e_thet, e_zeta)

Evaluate the mapping from reference to physical space (hmap)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

number of evaluation points

real, intent(in), DIMENSION(n) :: X1

reference space position & derivatives

real, intent(in), DIMENSION(n) :: X2

reference space position & derivatives

real, intent(in), DIMENSION(n) :: zeta

reference space position & derivatives

real, intent(in), DIMENSION(n) :: dX1_ds

reference space position & derivatives

real, intent(in), DIMENSION(n) :: dX2_ds

reference space position & derivatives

real, intent(in), DIMENSION(n) :: dX1_dthet

reference space derivatives

real, intent(in), DIMENSION(n) :: dX2_dthet

reference space derivatives

real, intent(in), DIMENSION(n) :: dX1_dzeta

reference space derivatives

real, intent(in), DIMENSION(n) :: dX2_dzeta

reference space derivatives

real, intent(out), DIMENSION(3,n) :: coord

real space position and basis vectors

real, intent(out), DIMENSION(3,n) :: e_s

real space position and basis vectors

real, intent(out), DIMENSION(3,n) :: e_thet

real space position and basis vectors

real, intent(out), DIMENSION(3,n) :: e_zeta

real space position and basis vectors

public subroutine evaluate_hmap_only_pw(n, X1, X2, zeta, pos, dx_dq1, dx_dq2, dx_dq3)

Evaluate the mapping from reference to physical space (hmap) without logical coordinates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

number of evaluation points

real, intent(in), DIMENSION(n) :: X1

reference space position

real, intent(in), DIMENSION(n) :: X2

reference space position

real, intent(in), DIMENSION(n) :: zeta

reference space position

real, intent(out), DIMENSION(3,n) :: pos

real space position and reference tangent basis vectors

real, intent(out), DIMENSION(3,n) :: dx_dq1

real space position and reference tangent basis vectors

real, intent(out), DIMENSION(3,n) :: dx_dq2

real space position and reference tangent basis vectors

real, intent(out), DIMENSION(3,n) :: dx_dq3

real space position and reference tangent basis vectors

public subroutine evaluate_hmap_only(n, X1, X2, zeta, pos, dx_dq1, dx_dq2, dx_dq3)

Evaluate the mapping from reference to physical space (hmap) without logical coordinates

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

number of evaluation points

real, intent(in), DIMENSION(n) :: X1

reference space position

real, intent(in), DIMENSION(n) :: X2

reference space position

real, intent(in), DIMENSION(n) :: zeta

reference space position

real, intent(out), DIMENSION(3,n) :: pos

real space position and reference tangent basis vectors

real, intent(out), DIMENSION(3,n) :: dx_dq1

real space position and reference tangent basis vectors

real, intent(out), DIMENSION(3,n) :: dx_dq2

real space position and reference tangent basis vectors

real, intent(out), DIMENSION(3,n) :: dx_dq3

real space position and reference tangent basis vectors

public subroutine evaluate_metric_derivs(n, X1, X2, zeta, dX1_ds, dX2_ds, dX1_dt, dX2_dt, dX1_dz, dX2_dz, dX1_dss, dX2_dss, dX1_dst, dX2_dst, dX1_dsz, dX2_dsz, dX1_dtt, dX2_dtt, dX1_dtz, dX2_dtz, dX1_dzz, dX2_dzz, dg_ss_ds, dg_st_ds, dg_sz_ds, dg_tt_ds, dg_tz_ds, dg_zz_ds, dg_ss_dt, dg_st_dt, dg_sz_dt, dg_tt_dt, dg_tz_dt, dg_zz_dt, dg_ss_dz, dg_st_dz, dg_sz_dz, dg_tt_dz, dg_tz_dz, dg_zz_dz)

evaluate components of the metric tensor and their derivatives

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

number of evaluation points

real, intent(in), DIMENSION(n) :: X1

reference coordinates

real, intent(in), DIMENSION(n) :: X2

reference coordinates

real, intent(in), DIMENSION(n) :: zeta

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_ds

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_ds

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_dt

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_dt

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_dz

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_dz

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_dss

and their derivatives

real, intent(in), DIMENSION(n) :: dX2_dss

and their derivatives

real, intent(in), DIMENSION(n) :: dX1_dst

and their derivatives

real, intent(in), DIMENSION(n) :: dX2_dst

and their derivatives

real, intent(in), DIMENSION(n) :: dX1_dsz

and their derivatives

real, intent(in), DIMENSION(n) :: dX2_dsz

and their derivatives

real, intent(in), DIMENSION(n) :: dX1_dtt
real, intent(in), DIMENSION(n) :: dX2_dtt
real, intent(in), DIMENSION(n) :: dX1_dtz
real, intent(in), DIMENSION(n) :: dX2_dtz
real, intent(in), DIMENSION(n) :: dX1_dzz
real, intent(in), DIMENSION(n) :: dX2_dzz
real, intent(out), DIMENSION(n) :: dg_ss_ds

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_st_ds

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_sz_ds

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_tt_ds

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_tz_ds

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_zz_ds

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_ss_dt

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_st_dt

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_sz_dt

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_tt_dt

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_tz_dt

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_zz_dt

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_ss_dz

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_st_dz

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_sz_dz

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_tt_dz

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_tz_dz

derivatives of the m. coef.

real, intent(out), DIMENSION(n) :: dg_zz_dz

derivatives of the m. coef.

public subroutine evaluate_jac_h_derivs_pw(n, X1, X2, zeta, dX1_ds, dX2_ds, dX1_dt, dX2_dt, dX1_dz, dX2_dz, dJh_ds, dJh_dt, dJh_dz)

evaluate the jacobian determinant and its derivatives

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

number of evaluation points

real, intent(in), DIMENSION(n) :: X1

reference coordinates

real, intent(in), DIMENSION(n) :: X2

reference coordinates

real, intent(in), DIMENSION(n) :: zeta

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_ds

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_ds

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_dt

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_dt

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_dz

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_dz

reference coordinates

real, intent(out), DIMENSION(n) :: dJh_ds

jacobian det. and derivatives

real, intent(out), DIMENSION(n) :: dJh_dt

jacobian det. and derivatives

real, intent(out), DIMENSION(n) :: dJh_dz

jacobian det. and derivatives

public subroutine evaluate_jac_h_derivs(n, X1, X2, zeta, dX1_ds, dX2_ds, dX1_dt, dX2_dt, dX1_dz, dX2_dz, dJh_ds, dJh_dt, dJh_dz)

evaluate the jacobian determinant and its derivatives

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

number of evaluation points

real, intent(in), DIMENSION(n) :: X1

reference coordinates

real, intent(in), DIMENSION(n) :: X2

reference coordinates

real, intent(in), DIMENSION(n) :: zeta

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_ds

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_ds

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_dt

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_dt

reference coordinates

real, intent(in), DIMENSION(n) :: dX1_dz

reference coordinates

real, intent(in), DIMENSION(n) :: dX2_dz

reference coordinates

real, intent(out), DIMENSION(n) :: dJh_ds

jacobian det. and derivatives

real, intent(out), DIMENSION(n) :: dJh_dt

jacobian det. and derivatives

real, intent(out), DIMENSION(n) :: dJh_dz

jacobian det. and derivatives

public subroutine evaluate_rho2_profile(n_s, rho2, deriv, var, result)

evaluate iota/pressure profile and its derivatives with respect to rho2=rho^2

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_s

number of evaluation points

real, intent(in), DIMENSION(n_s) :: rho2

radial evaluation points (in rho^2)

integer, intent(in) :: deriv

order of the derivative in rho^2

character(len=*), intent(in) :: var

selection string: which profile to evaluate

real, intent(out), DIMENSION(n_s) :: result

values of the profile

public subroutine evaluate_profile(n_s, s, deriv, var, result)

evaluate 1D-radial profiles and their derivatives with respect to rho

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n_s

number of evaluation points

real, intent(in), DIMENSION(n_s) :: s

radial evaluation points

integer, intent(in) :: deriv

order of the derivative in rho

character(len=*), intent(in) :: var

selection string: which profile to evaluate

real, intent(out), DIMENSION(n_s) :: result

values of the profile

public subroutine get_boozer(sfl_boozer)

Arguments

Type IntentOptional Attributes Name
type(t_sfl_boozer), intent(inout) :: sfl_boozer

public subroutine evaluate_boozer_list_tz_all(sfl_boozer, n_s, n_tz, irho, thetazeta, Qsel, Q, dQ_dthet, dQ_dzeta, dQ_dtt, dQ_dtz, dQ_dzz)

Evaluate LA or NU and all derivatives for a list of (theta, zeta) positions on all flux surfaces given by s

Arguments

Type IntentOptional Attributes Name
type(t_sfl_boozer), intent(in), TARGET :: sfl_boozer
integer, intent(in) :: n_s
integer, intent(in) :: n_tz
integer, intent(in) :: irho(1:n_s)
real, intent(in) :: thetazeta(2,n_tz)
character(len=2), intent(in) :: Qsel
real, intent(out), DIMENSION(1:n_s,n_tz) :: Q
real, intent(out), DIMENSION(1:n_s,n_tz) :: dQ_dthet
real, intent(out), DIMENSION(1:n_s,n_tz) :: dQ_dzeta
real, intent(out), DIMENSION(1:n_s,n_tz) :: dQ_dtt
real, intent(out), DIMENSION(1:n_s,n_tz) :: dQ_dtz
real, intent(out), DIMENSION(1:n_s,n_tz) :: dQ_dzz

public subroutine Finalize()

Arguments

None