| Procedure | Location | Procedure Type | Description |
|---|---|---|---|
| Abort | MODgvec_Globals | Subroutine | Terminate program correctly if an error has occurred (important in MPI mode!). Uses a MPI_ABORT which terminates FLUXO if a single proc calls this routine. |
| Abort | MODgvec_Globals | Interface | |
| AddBoundaryPerturbation | MODgvec_MHD3D | Subroutine | Add boundary perturbation |
| allocate_readin_vars | MODgvec_hmap_axisNB | Subroutine | |
| ALMOSTEQUAL | MODgvec_Basis1D | Function | Determines if two REAL(wp) numbers are equal up to a specified tolerance (=PP_RealTolerance, normaly set to machine precision) Takes into account that x,y are located in-between [-1;1] Based on Algorithm 139, Kopriva |
| Analyze | MODgvec_Analyze | Subroutine | |
| Analyze | MODgvec_Analyze | Interface | |
| ApplyBC_Fstrong | MODgvec_MHD3D_evalFunc | Subroutine | Applies strong boundary condition to force DOF |
| ApplyPrecond | MODgvec_MHD3D_evalFunc | Subroutine | Apply preconditioner matrix for single mode of one variable |
| BarycentricWeights | MODgvec_Basis1D | Subroutine | Computes barycentric (interpolation) weights for interpolation polynomial given by set of nodes. (Algorithm 30, Kopriva book) |
| BarycentricWeights | MODgvec_Basis1D | Interface | |
| base_change_base | MODgvec_base | Subroutine | change basis from old input base to new base, |
| base_compare | MODgvec_base | Subroutine | compare self and input type base |
| base_copy | MODgvec_base | Subroutine | copy from input type base to self |
| base_evalDOF | MODgvec_base | Subroutine | evaluate all degrees of freedom at all Gauss Points (deriv=0 solution, deriv=1 first derivative d/ds) |
| base_evalDOF_all | MODgvec_base | Subroutine | evaluate all degrees of freedom at all Gauss Points , for deriv=0 in s and deriv=0,theta,zeta in f |
| base_evalDOF_x | MODgvec_base | Function | evaluate all degrees of freedom at given s theta zeta position (deriv=0 solution, deriv=1 first derivative d/ds) |
| base_free | MODgvec_base | Subroutine | finalize the type base |
| Base_new | MODgvec_base | Subroutine | allocate and initialize the type base |
| Base_test | MODgvec_base | Subroutine | test base variable |
| bff_convert_to_modes | MODgvec_boundaryFromFile | Subroutine | convert from interpolation points X=> X1_b, Y=> X2_b to fourier modes, given from the input fbase convert to maximum allowable number of modes (ntheta>=2m_max+1, nzeta>=2n_max+1) the final m_max/n_max can be smaller or larger. If larger, a change of base is necessary |
| bff_free | MODgvec_boundaryFromFile | Subroutine | |
| bff_init | MODgvec_boundaryFromFile | Subroutine | initialize class: read file and save data to class structure |
| boundaryFromFile_new | MODgvec_boundaryFromFile | Subroutine | Allocate class and call init |
| boundaryFromFile_new | MODgvec_boundaryFromFile | Interface | |
| bsplProfile_antiderivative | MODgvec_rProfile_bspl | Function | get the exact spline antiderivative, with respect to rho2 the knotspan is increased by an extra multiplicity on both ends, and the new coefficients are computed as beta(i) = beta(i-1) + alpha(i)*(t(i+degree+1)-t(i))/(degree+1) From deBoor, "A practical guide to Splines", p.128 |
| bsplProfile_eval_at_rho2 | MODgvec_rProfile_bspl | Function | evaluate the n-th derivative of the bsplProfile at position s |
| bsplProfile_free | MODgvec_rProfile_bspl | Subroutine | finalize the type rProfile |
| bsplProfile_new | MODgvec_rProfile_bspl | Function | initialize the rProfile of type bspline |
| buildLegendreVdm | MODgvec_Basis1D | Subroutine | Build a 1D Vandermonde matrix from an orthonormal Legendre basis to a nodal basis and reverse |
| BuildLegendreVdm | MODgvec_Basis1D | Interface | |
| BuildPrecond | MODgvec_MHD3D_evalFunc | Subroutine | Build preconditioner matrices for X1,X2,LA and factorize, for all modes
the matrix is only radially dependent, and has the form
K_ij = int(s,0,1) d/ds sbase_i(s) |
| BuildTransform_SFL | MODgvec_Transform_SFL | Subroutine | Builds X1 and X2 in SFL coordinates |
| c_abort | sll_m_errors | Interface | |
| c_abort | sll_m_assert | Interface | |
| c_to_f_string | modgvec_gvec_to_gene_c_bind | Subroutine | |
| ChebyGaussLobNodesAndWeights | MODgvec_Basis1D | Subroutine | Compute Chebychev-Gauss-Lobatto nodes and integration weights (algorithm 27, Kopriva book) |
| ChebyGaussLobNodesAndWeights | MODgvec_Basis1D | Interface | |
| ChebyshevGaussNodesAndWeights | MODgvec_Basis1D | Subroutine | Compute Chebychev-Gauss nodes and integration weights (algorithm 27, Kopriva book) |
| ChebyshevGaussNodesAndWeights | MODgvec_Basis1D | Interface | |
| CheckFieldPeriodicity | MODgvec_hmap_axisNB | Subroutine | Check that the TNB frame really has the field periodicity of NFP: assumption for now is that the origin is fixed at rot_origin=(/0.,0.,0./) and the rotation axis is fixed at rot_axis=(/0.,0.,1./) sign of the rotation 'sgn_rot' is now accounted for in the transformation to xhat, so it has to be passed here. |
| checkZeroCurvature | MODgvec_hmap_frenet | Subroutine | Sample axis and check for zero (<1.e-12) curvature |
| cla_command_argument_count | MODgvec_cla | Function | |
| cla_eq | MODgvec_cla | Function | |
| cla_fatal | MODgvec_cla | Subroutine | |
| cla_get | MODgvec_cla | Interface | |
| cla_get_char | MODgvec_cla | Subroutine | |
| cla_get_command_argument | MODgvec_cla | Subroutine | |
| cla_get_flag | MODgvec_cla | Subroutine | |
| cla_get_float_r4 | MODgvec_cla | Subroutine | |
| cla_get_float_r8 | MODgvec_cla | Subroutine | |
| cla_get_int_i4 | MODgvec_cla | Subroutine | |
| cla_get_int_i8 | MODgvec_cla | Subroutine | |
| cla_get_logical | MODgvec_cla | Subroutine | |
| cla_help | MODgvec_cla | Subroutine | |
| cla_init | MODgvec_cla | Interface | |
| cla_init_default | MODgvec_cla | Subroutine | |
| cla_init_str | MODgvec_cla | Subroutine | |
| cla_key_arg_match | MODgvec_cla | Function | |
| cla_key_present | MODgvec_cla | Function | |
| cla_message | MODgvec_cla | Subroutine | |
| cla_posarg_register | MODgvec_cla | Subroutine | |
| cla_read_str | MODgvec_cla | Subroutine | |
| cla_register | MODgvec_cla | Subroutine | |
| cla_show | MODgvec_cla | Subroutine | |
| cla_str_eq | MODgvec_cla | Function | |
| cla_validate | MODgvec_cla | Subroutine | |
| cla_validate_info | MODgvec_cla | Subroutine | |
| ClenshawCurtisNodesAndWeights | MODgvec_Basis1D | Subroutine | Compute Clenshaw-Curtis nodes and integration weights |
| ClenshawCurtisNodesAndWeights | MODgvec_Basis1D | Interface | |
| CNTSTR | MODgvec_ReadInTools | Function | Counts all occurances of string named "key" from inifile and store in "CNTSTR". If keyword "Key" is not found in ini file, the default value "Proposal" is used for "CNTSTR" (error if "Proposal" not given). Inifile was read in before and is stored as list of character strings starting with "FirstString". |
| CNTSTR | MODgvec_ReadInTools | Interface | |
| ConvertToProposalStr | MODgvec_ReadInTools | Subroutine | Get logical, integer, real, integer array or real array and transform it to string in the proposal format |
| count_sep | MODgvec_ReadInTools | Function | |
| CROSS | MODgvec_Globals | Function | computes the cross product of to 3 dimensional vectors: cross=v1 x v2 |
| CROSS | MODgvec_Globals | Interface | |
| cubspl_eval | MODgvec_cubic_spline | Function | evaluate the n-th derivative of the bsplProfile at position s |
| cubspl_free | MODgvec_cubic_spline | Subroutine | finalize the type rProfile |
| cubspl_new | MODgvec_cubic_spline | Function | Interpolation of function values f(x_i)=f_i, i=1,n with a cubic spline, given left and right boundary condition types of boundary conditions: 0: not-a-knot 1: f'(x_boundary)=0 2: f''(x_boundary)=0 |
| DeleteString | MODgvec_ReadInTools | Subroutine | Remove string "Str" from list of strings witFirstString,h first element "DirstString" and delete string. |
| DeleteString | MODgvec_ReadInTools | Interface | |
| DET33 | MODgvec_Globals | Function | compute determinant of 3x3 matrix |
| DET33 | MODgvec_Globals | Interface | |
| EQUALTOTOLERANCE | MODgvec_Basis1D | Function | Determines if two REAL(wp) numbers are equal up to a given tolerance. Routine requires: x,y > tolerance |
| EQUALTOTOLERANCE | MODgvec_Basis1D | Interface | |
| errout | sll_m_errors | Subroutine | @brief Write error/warning message to a given unit. @details |
| Eval1DPoly | MODgvec_Globals | Function | evalute monomial polynomial c_1+c_2x+c_3x^2 ... |
| Eval1DPoly | MODgvec_Globals | Interface | |
| Eval1DPoly_deriv | MODgvec_Globals | Function | evalute first derivative monomial polynomial (c_1+c_2x+c_3x^2) -> (c_2+2c_3x+3c_4x^2 ... |
| eval_fourier1d | MODgvec_hmap_frenet | Subroutine | evaluate 1d fourier series from given cos/sin coefficients and mode numbers xn SUM(xc(0:n_max)COS(xn(0:n_max)zeta)+xs(0:n_max)SIN(xn(0:n_max)zeta) evaluate all derivatives 1,2,3 alongside |
| eval_iota_r | MODgvec_ReadState | Function | Evaluate iota profile from restart data |
| eval_iota_r | MODgvec_ReadState | Interface | |
| eval_phi_r | MODgvec_ReadState | Function | Evaluate phi profile from restart data |
| eval_phi_r | MODgvec_ReadState | Interface | |
| eval_phiPrime_r | MODgvec_ReadState | Function | Evaluate phiPrime profile from restart data |
| eval_phiPrime_r | MODgvec_ReadState | Interface | |
| eval_pres_r | MODgvec_ReadState | Function | Evaluate pressure profile from restart data |
| eval_pres_r | MODgvec_ReadState | Interface | |
| eval_prof_r | MODgvec_ReadState | Function | Evaluate profile/profile derivative given by index "iprof" from restart data |
| EvalAux | MODgvec_MHD3D_evalFunc | Subroutine | Evaluate auxiliary variables at input state, writes onto module variables!!! |
| EvalEnergy | MODgvec_MHD3D_evalFunc | Function | Evaluate 3D MHD energy NOTE: set callEvalaux >0 if not called before for the same Uin !! |
| EvalForce | MODgvec_MHD3D_evalFunc | Subroutine | Evaluate the variation of the Energy = Force... F_j=-(D_U W(U))_j = -DW(u_h)*testfunc_j NOTE: set callEvalaux TRUE if not called before for the same Uin !! |
| EvalTotals | MODgvec_MHD3D_evalFunc | Subroutine | Evaluate total volume and average surface |
| evaluate_base_list_stz_all | MODgvec_py_state | Subroutine | Evaluate the basis and all derivatives for a list of (rho/s, theta, zeta) positions |
| evaluate_base_list_tz | MODgvec_py_state | Subroutine | Evaluate the basis for a list of (theta, zeta) positions on all flux surfaces given by s |
| evaluate_base_list_tz_all | MODgvec_py_state | Subroutine | Evaluate the basis and all derivatives for a list of (theta, zeta) positions on all flux surfaces given by s |
| evaluate_base_select | MODgvec_py_state | Subroutine | Handle the selection of the functional and derivatives, based on the selection strings |
| evaluate_base_tens | MODgvec_py_state | Subroutine | Evaluate the basis with a tensorproduct for the given 1D (s, theta, zeta) values |
| evaluate_base_tens_all | MODgvec_py_state | Subroutine | Evaluate the basis with a tensorproduct for the given 1D (s, theta, zeta) values |
| evaluate_boozer_list_tz_all | MODgvec_py_state | Subroutine | Evaluate LA or NU and all derivatives for a list of (theta, zeta) positions on all flux surfaces given by s |
| evaluate_hmap | MODgvec_py_state | Subroutine | Evaluate the mapping from reference to physical space (hmap) |
| evaluate_hmap_only | MODgvec_py_state | Subroutine | Evaluate the mapping from reference to physical space (hmap) without logical coordinates |
| evaluate_hmap_only_pw | MODgvec_py_state | Subroutine | Evaluate the mapping from reference to physical space (hmap) without logical coordinates |
| evaluate_hmap_pw | MODgvec_py_state | Subroutine | Evaluate the mapping from reference to physical space (hmap) |
| evaluate_jac_h_derivs | MODgvec_py_state | Subroutine | evaluate the jacobian determinant and its derivatives |
| evaluate_jac_h_derivs_pw | MODgvec_py_state | Subroutine | evaluate the jacobian determinant and its derivatives |
| evaluate_metric_derivs | MODgvec_py_state | Subroutine | evaluate components of the metric tensor and their derivatives |
| evaluate_profile | MODgvec_py_state | Subroutine | evaluate 1D-radial profiles and their derivatives with respect to rho |
| evaluate_rho2_profile | MODgvec_py_state | Subroutine | evaluate iota/pressure profile and its derivatives with respect to rho2=rho^2 |
| f90wrap_abort | MODgvec_py_binding | Interface | |
| f_bsplines_non_uniform__find_cell | sll_m_bsplines_non_uniform | Function | Find which grid cell contains the given point |
| f_bsplines_uniform__find_cell | sll_m_bsplines_uniform | Function | Find which grid cell contains the given point |
| f_spline_1d__belongs_to_space | sll_m_spline_1d | Function | Check if 1D spline belongs to span of given B-splines |
| f_spline_1d__eval | sll_m_spline_1d | Function | Evaluate value of 1D spline at location x: y=S(x) |
| f_spline_1d__eval_deriv | sll_m_spline_1d | Function | Evaluate derivative of 1D spline at location x: y=S'(x) |
| fBase_alloc | MODgvec_fBase | Subroutine | allocate all variables in fBase |
| fBase_change_base | MODgvec_fBase | Subroutine | change data from oldBase to self. Forier modes are directly copied so, if new mode space is smaller, its like a Fourier cut-off. if new modes do not match old ones, they are set to zero. Note that a change of nfp is not possible· as well as a change from sine to cosine |
| fBase_compare | MODgvec_fBase | Subroutine | compare sf with the input type fBase |
| fBase_copy | MODgvec_fBase | Subroutine | copy the type fBase |
| fBase_eval | MODgvec_fBase | Function | evaluate all modes at specific given point in theta and zeta |
| fBase_eval1d_thet | MODgvec_fBase | Function | evaluate special 1D base in theta direction (cos(mt_i),sin(mt_i)) or its derivative(s) on a given set of points for tensor-product evaluation of 2D sin and cos base: sin(mthet-nzeta) = sin(mthet)cos(nzeta)-cos(mthet)sin(nzeta) == dot_product( (sin(mthet),-cos(mthet)) , (cos(nzeta),sin(nzeta))) cos(mthet-nzeta) = cos(mthet)cos(nzeta)+sin(mthet)sin(nzeta) == dot_product( (cos(mthet), sin(mthet)) , (cos(nzeta),sin(nzeta))) so for the 1D base, mTotal1d depends on using sin/cos/sin+cos base. |
| fBase_eval1d_zeta | MODgvec_fBase | Function | evaluate special 1D base in zeta direction (cos(mt_i),sin(mt_i)) or its derivative(s) on a given set of points for tensor-product evaluation of 2D sin and cos base: sin(mthet-nzeta) = sin(mthet)cos(nzeta)-cos(mthet)sin(nzeta) == dot_product( (sin(mthet),-cos(mthet)) , (cos(nzeta),sin(nzeta))) cos(mthet-nzeta) = cos(mthet)cos(nzeta)+sin(mthet)sin(nzeta) == dot_product( (cos(mthet), sin(mthet)) , (cos(nzeta),sin(nzeta))) so for the 1D base, nTotal1d is always 2*n_max+1 |
| fBase_eval_xn | MODgvec_fBase | Function | evaluate all modes at a list of given points in theta and zeta |
| fBase_evalDOF_IP | MODgvec_fBase | Function | evaluate all modes at all interpolation points |
| fBase_evalDOF_IP_tens | MODgvec_fBase | Function | evaluate all modes at all interpolation points, making use of the tensor product: y_ij = DOFs_mn * SIN(mt_i - nz_j ) => SIN(mt_i) DOFs_mn COS(nz_j) -COS(mt_i) DOFs_mn SIN(nz_j) y_ij = DOFs_mn * COS(mt_i - nz_j ) => COS(mt_i) DOFs_mn COS(nz_j) +SIN(mt_i) DOFs_mn SIN(nz_j) => a1_im DOFs_mn b1_nj + a2_im DOFs_mn b2_nj can be written as 2 SPECIAL MATMAT operations: c(i,1,n)=a1(i,m) DOFs(m,n) , c(i,2,n) = a2(i,m) DOFs(m,n) => c(i,d,n) = DOT_PROD(a(i,d,1:mmax),DOFs(1:mmax,n)) y(i,j) = c(i,1,n) b1(n,j) + c(i,2,n) b2(n,j) = DOT_PROD(c(i,1:2,1:nmax),b(1:2,1:nmax,j) the 1D ordering in y does not neead a reshape, y(i,j) => y(1:mn_IP), 1D array data can be kept, as it is passed (with its start adress) to DGEMM. |
| fBase_evalDOF_x | MODgvec_fBase | Function | evaluate all modes at a given interpolation point |
| fBase_evalDOF_xn | MODgvec_fBase | Function | evaluate all modes at a list of interpolation points |
| fBase_evalDOF_xn_tens | MODgvec_fBase | Function | evaluate all modes on a tensor-produc grid (t_i,z_j), making use of the tensor product in the fourier series: y_ij = DOFs_mn * SIN(mt_i - nz_j ) => SIN(mt_i) DOFs_mn COS(nz_j) -COS(mt_i) DOFs_mn SIN(nz_j) y_ij = DOFs_mn * COS(mt_i - nz_j ) => COS(mt_i) DOFs_mn COS(nz_j) +SIN(mt_i) DOFs_mn SIN(nz_j) => a1_im DOFs_mn b1_nj + a2_im DOFs_mn b2_nj can be written as 2 SPECIAL MATMAT operations: c(i,1,n)=a1(i,m) DOFs(m,n) , c(i,2,n) = a2(i,m) DOFs(m,n) => c(i,d,n) = DOT_PROD(a(i,d,1:mmax),DOFs(1:mmax,n)) y(i,j) = c(i,1,n) b1(n,j) + c(i,2,n) b2(n,j) = DOT_PROD(c(i,1:2,1:nmax),b(1:2,1:nmax,j) the 1D ordering in y does not neead a reshape, y(i,j) => y(1:mn_IP), 1D array data can be kept, as it is passed (with its start adress) to DGEMM. |
| fBase_free | MODgvec_fBase | Subroutine | finalize the type fBase |
| fBase_init | MODgvec_fBase | Subroutine | initialize the type fBase maximum mode numbers, number of integration points, type of basis (sin/cos or sin and cos) |
| fBase_initDOF | MODgvec_fBase | Function | take values interpolated at sf%s_IP positions and project onto fourier basis by integration |
| fBase_new | MODgvec_fBase | Subroutine | allocate the type fBase |
| fBase_projectIPtoDOF | MODgvec_fBase | Subroutine | project from interpolation points to all modes DOFs = addDOFs+ fac MATMUL(base_IP_DOF,y_IP) |
| fBase_projectIPtoDOF_tens | MODgvec_fBase | Subroutine | inverse of fBase_evalDOF_IP_tens |
| fBase_projectxntoDOF | MODgvec_fBase | Subroutine | project from any 2D set of interpolation points, at tensor-product of (theta,zeta) positions given by "xn", to all modes DOFs = addDOFs+ fac MATMUL(base_xn,yn) |
| fBase_test | MODgvec_fBase | Subroutine | test fBase variable |
| FillStrings | MODgvec_ReadInTools | Subroutine | Read ini file and put each line in a string object. All string objects are connected to a list of string objects starting with "firstString". MUST BE CALLED IN THE VERY BEGINNING OF THE PROGRAM! |
| FillStrings | MODgvec_ReadInTools | Interface | |
| Finalize | MODgvec_py_state | Subroutine | |
| finalize_gvec_to_gene_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| finalize_gvec_to_jorek | MODgvec_gvec_to_jorek | Subroutine | Finalize Module |
| finalize_gvec_to_jorek | MODgvec_gvec_to_jorek | Interface | |
| Finalize_ReadState | MODgvec_ReadState | Subroutine | Finalize Module |
| Finalize_ReadState | MODgvec_ReadState | Interface | |
| FinalizeAnalyze | MODgvec_Analyze | Subroutine | Finalize Module |
| FinalizeAnalyze | MODgvec_Analyze | Interface | |
| FinalizeFunctional | MODgvec_functional | Subroutine | finalize the type functional |
| FinalizeMHD3D | MODgvec_MHD3D | Subroutine | Finalize Module |
| FinalizeMHD3D_EvalFunc | MODgvec_MHD3D_evalFunc | Subroutine | Finalize Module |
| FinalizeOutput | MODgvec_Output | Subroutine | Finalize Module |
| FinalizeOutput | MODgvec_Output | Interface | |
| FinalizeReadIn | MODgvec_ReadInTools | Subroutine | Reset global variables |
| FinalizeRestart | MODgvec_Restart | Subroutine | Finalize Module |
| FinalizeRestart | MODgvec_Restart | Interface | |
| FinalizeVMEC | MODgvec_VMEC | Subroutine | Finalize VMEC module |
| FinalizeVMEC | MODgvec_VMEC | Interface | |
| find_boozer_angles | MODgvec_SFL_Boozer | Subroutine | on one flux surface, find for an given list of (thet_j,zeta_j), the corresponding (thet_j,zeta_j) positions, given Here, new boozer angles are theta=theta+Gt(theta,zeta) zeta=zeta+nu(theta,zeta), with Gt=lambda+iotanu and nu periodic functions and zero average and same base Note that in this routine, we will use a 2d root search with a newton method, setting [f1,f2]^T = [thet+A(thet,zeta)-thet=0, zeta+B(thet,zeta)-zeta*=0]^T that includes the derivatives (Jacobian), so that the newton step needs to the solved: -[f1] [ 1+dA/dthet dA/dzeta] [dthet] | | = | | | | -[f2] [ dB/dthet 1+dB/dzeta] [dzeta] |
| find_pest_angles | MODgvec_Transform_SFL | Subroutine | on one flux surface, find for a list of in thet_j,zeta_j, the corresponding (thet_j,zeta_j) positions, given Here, new PEST angles are theta=theta+lambda(theta,zeta) zeta=zeta, so a 1D root search in theta is is enough |
| FindStr | MODgvec_ReadInTools | Subroutine | Find parameter string containing keyword "Key" in list of strings starting with "FirstString" and return string "Str" without keyword. If keyword is not found in list of strings, return default values "Proposal" (error if not given). Ini file was read in before and is stored as list of character strings starting with "FirstString". |
| FindStr | MODgvec_ReadInTools | Interface | |
| FitSpline | MODgvec_VMEC | Subroutine | Fit disrete data along flux surfaces as spline for each fourier mode |
| FitSplineHalf | MODgvec_VMEC | Subroutine | Fit disrete data along flux surfaces as spline for each fourier mode input is given on the half mesh 2:nFluxVMEC |
| flush_stdout | MODgvec_py_binding | Subroutine | |
| GaussRadauNodesAndWeights | MODgvec_Basis1D | Subroutine | This routine was taken fom QUADRULE (http://people.sc.fsu.edu/~jburkardt/f_src/quadrule/quadrule.html) |
| get_booz_newton | MODgvec_SFL_Boozer | Function | This function returns the result of the 2D newton root search for the boozer angle |
| get_booz_newton_dFR | MODgvec_SFL_Boozer | Function | Derivative of the target function for finding the logical angle for given boozer angles |
| get_booz_newton_FR | MODgvec_SFL_Boozer | Function | Target function for finding the logical angle for given boozer angles |
| get_boozer | MODgvec_py_state | Subroutine | |
| Get_Boozer_sinterp | MODgvec_SFL_Boozer | Subroutine | Builds the boozer transform coordinate theta^B = theta + lambda + iota(s)*nu(s,theta,zeta) zeta^B = zeta +nu(s,theta,zeta) |
| get_c_string_length | modgvec_gvec_to_gene_c_bind | Function | |
| get_CLA_gvec_to_jorek | MODgvec_gvec_to_jorek | Subroutine | Get command line arguments |
| get_cla_gvec_to_jorek | MODgvec_gvec_to_jorek | Interface | |
| Get_Field | MODgvec_gvec_to_jorek | Subroutine | compute different fields depending on the input parameters field_type and vector_component, |
| get_fortran_string | modgvec_gvec_to_gene_c_bind | Function | |
| get_iMode | MODgvec_MHD3D | Function | automatically build the string to be read from parameterfile, varname + m,n mode number, and then read it from parameterfile |
| get_integration_points | MODgvec_py_state | Subroutine | Retrieve the integration points and weights (gauss points for radial integration) |
| get_integration_points_num | MODgvec_py_state | Subroutine | |
| get_mn_IP | MODgvec_py_state | Subroutine | |
| get_mn_max | MODgvec_py_state | Subroutine | |
| get_modes | MODgvec_py_state | Subroutine | |
| get_pest_newton | MODgvec_Transform_SFL | Function | This function returns the result of the 1D newton root search for the pest theta angle |
| get_s_IP | MODgvec_py_state | Subroutine | |
| get_s_nBase | MODgvec_py_state | Subroutine | |
| GETFREEUNIT | MODgvec_Globals | Function | Get unused file unit number |
| GETFREEUNIT | MODgvec_Globals | Interface | |
| GETINT | MODgvec_ReadInTools | Function | Read integer named "key" from setup file and store in "GETINT". If keyword "Key" is not found in ini file, the default value "Proposal" is used for "GETINT" (error if "Proposal" not given). Ini file was read in before and is stored as list of character strings starting with "FirstString". |
| GETINT | MODgvec_ReadInTools | Interface | |
| GETINTALLOCARRAY | MODgvec_ReadInTools | Subroutine | Allocate and read integer array of unknown length "nIntegers" integer values named "Key" from ini file. If keyword "Key" is not found in setup file, the default values "Proposal" are used to create the array (error if "Proposal" not given). Setup file was read in before and is stored as list of character strings starting with "FirstString". |
| GETINTARRAY | MODgvec_ReadInTools | Function | Read array of "nIntegers" integer values named "Key" from ini file. If keyword "Key" is not found in setup file, the default values "Proposal" are used to create the array (error if "Proposal" not given). Setup file was read in before and is stored as list of character strings starting with "FirstString". |
| GETINTARRAY | MODgvec_ReadInTools | Interface | |
| GETLOGICAL | MODgvec_ReadInTools | Function | Read logical named "key" from setup file and store in "GETINT". If keyword "Key" is not found in ini file, the default value "Proposal" is used for "GETINT" (error if "Proposal" not given). Ini file was read in before and is stored as list of character strings starting with "FirstString". |
| GETLOGICAL | MODgvec_ReadInTools | Interface | |
| getLU | MODgvec_LinAlg | Subroutine | Return P L U matrices of the LU decomposition, cmoputed from LAPACK Routine (if P is not passed, L=P*L) |
| GetNewString | MODgvec_ReadInTools | Subroutine | Create and initialize new string object. |
| GetNewString | MODgvec_ReadInTools | Interface | |
| GETREAL | MODgvec_ReadInTools | Function | Read real named "key" from setup file and store in "GETINT". If keyword "Key" is not found in ini file, the default value "Proposal" is used for "GETINT" (error if "Proposal" not given). Ini file was read in before and is stored as list of character strings starting with "FirstString". |
| GETREAL | MODgvec_ReadInTools | Interface | |
| GETREALALLOCARRAY | MODgvec_ReadInTools | Subroutine | Read array of "nReals" real values named "Key" from ini file. If keyword "Key" is not found in setup file, the default values "Proposal" are used to create the array (error if "Proposal" not given). Setup file was read in before and is stored as list of character strings starting with "FirstString". |
| GETREALARRAY | MODgvec_ReadInTools | Function | Read array of "nReals" real values named "Key" from ini file. If keyword "Key" is not found in setup file, the default values "Proposal" are used to create the array (error if "Proposal" not given). Setup file was read in before and is stored as list of character strings starting with "FirstString". |
| GETREALARRAY | MODgvec_ReadInTools | Interface | |
| GETSTR | MODgvec_ReadInTools | Function | Read string named "key" from setup file and store in "GETINT". If keyword "Key" is not found in ini file, the default value "Proposal" is used for "GETINT" (error if "Proposal" not given). Ini file was read in before and is stored as list of character strings starting with "FirstString". |
| GETSTR | MODgvec_ReadInTools | Interface | |
| GetTime | MODgvec_Globals | Function | Calculates current time (serial / OpenMP /MPI) |
| GetTime | MODgvec_Globals | Interface | |
| GetTimeSerial | MODgvec_Globals | Function | Calculates current time locally on a MPIrank (no MPI Barrier) |
| GetTimeSerial | MODgvec_Globals | Interface | |
| gvec_to_gene_coords_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| gvec_to_jorek_prepare | MODgvec_gvec_to_jorek | Subroutine | prepare all data to be written |
| gvec_to_jorek_prepare | MODgvec_gvec_to_jorek | Interface | |
| gvec_to_jorek_writeToFile | MODgvec_gvec_to_jorek | Interface | |
| gvec_to_jorek_writeToFile_ASCII | MODgvec_gvec_to_jorek | Subroutine | write data to file |
| hmap_axisNB_eval | MODgvec_hmap_axisNB | Function | evaluate the mapping h (q1,q2,zeta) -> (x,y,z) |
| hmap_axisNB_eval_all | MODgvec_hmap_axisNB | Subroutine | evaluate all metrics necessary for optimizer |
| hmap_axisNB_eval_all_e | MODgvec_hmap_axisNB | Subroutine | evaluate all quantities at one given point (elemental) |
| hmap_axisNB_eval_aux | MODgvec_hmap_axisNB | Function | evaluate the mapping h (q1,q2,zeta) -> (x,y,z) |
| hmap_axisNB_eval_dxdq | MODgvec_hmap_axisNB | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , |
| hmap_axisNB_eval_dxdq_aux | MODgvec_hmap_axisNB | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , |
| hmap_axisNB_eval_gij | MODgvec_hmap_axisNB | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_axisNB_eval_gij_aux | MODgvec_hmap_axisNB | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_axisNB_eval_gij_dq | MODgvec_hmap_axisNB | Function | evaluate sum_k q_vec^k * sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) , k=1,2,3 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_axisNB_eval_gij_dq_aux | MODgvec_hmap_axisNB | Function | evaluate sum_k q_vec^k * sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) , k=1,2,3 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_axisNB_eval_Jh | MODgvec_hmap_axisNB | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(q^1,q^2,zeta) |
| hmap_axisNB_eval_Jh_aux | MODgvec_hmap_axisNB | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(q^1,q^2,zeta) |
| hmap_axisNB_eval_Jh_dq | MODgvec_hmap_axisNB | Function | evaluate derivative of Jacobian of mapping h: sum_k q_vec^k dJ_h/dq^k, k=1,2,3 at q=(q^1,q^2,zeta) |
| hmap_axisNB_eval_Jh_dq_aux | MODgvec_hmap_axisNB | Function | evaluate derivative of Jacobian of mapping h: sum_k q_vec^k dJ_h/dq^k, k=1,2,3 at q=(q^1,q^2,zeta) |
| hmap_axisNB_eval_TNB_hat | MODgvec_hmap_axisNB | Subroutine | evaluate curve X0(zeta), and T=X0',N,B,N',B', using the fourier series of X0_hat,N_hat and B_hat and transform from "hat" coordinates to cartesian coordinates: x=xhatcos(zeta)-sgn_rotyhatsin(zeta), y=yhatcos(zeta)+sgn_rotsin(zeta)xhat, z=zhat |
| hmap_axisNB_free | MODgvec_hmap_axisNB | Subroutine | finalize the type hmap_axisNB |
| hmap_axisNB_get_ddx_dqij | MODgvec_hmap_axisNB | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta), |
| hmap_axisNB_get_ddx_dqij_aux | MODgvec_hmap_axisNB | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta), |
| hmap_axisNB_get_dx_dqi | MODgvec_hmap_axisNB | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), |
| hmap_axisNB_get_dx_dqi_aux | MODgvec_hmap_axisNB | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), |
| hmap_axisNB_init | MODgvec_hmap_axisNB | Function | initialize the type hmap_axisNB, reading from parameterfile and call init_params |
| hmap_axisNB_init_aux | MODgvec_hmap_axisNB | Function | initialize the aux variable |
| hmap_axisNB_init_params | MODgvec_hmap_axisNB | Function | initialize the type hmap_axisNB and read "G-frame" from netcdf |
| hmap_axisNB_test | MODgvec_hmap_axisNB | Subroutine | test hmap_axisNB - evaluation of the map |
| hmap_cyl_eval | MODgvec_hmap_cyl | Function | evaluate the mapping h (X^1,X^2,zeta) -> (x,y,z) |
| hmap_cyl_eval_all | MODgvec_hmap_cyl | Subroutine | evaluate all metrics necesseray for optimizer |
| hmap_cyl_eval_all_e | MODgvec_hmap_cyl | Subroutine | evaluate all quantities at one given point (elemental) |
| hmap_cyl_eval_dxdq | MODgvec_hmap_cyl | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , |
| hmap_cyl_eval_gij | MODgvec_hmap_cyl | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_cyl_eval_gij_dq | MODgvec_hmap_cyl | Function | evaluate sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) , k=1,2 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_cyl_eval_Jh | MODgvec_hmap_cyl | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(X^1,X^2,zeta) |
| hmap_cyl_eval_Jh_dq | MODgvec_hmap_cyl | Function | evaluate derivative of Jacobian of mapping h: dJ_h/dq^k, k=1,2 at q=(X^1,X^2,zeta) |
| hmap_cyl_free | MODgvec_hmap_cyl | Subroutine | finalize the type hmap_cyl |
| hmap_cyl_get_ddx_dqij | MODgvec_hmap_cyl | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta), |
| hmap_cyl_get_dx_dqi | MODgvec_hmap_cyl | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), |
| hmap_cyl_init | MODgvec_hmap_cyl | Function | initialize the type hmap_cyl, reading from parameterfile and then call init_params |
| hmap_cyl_init_aux | MODgvec_hmap_cyl | Function | Allocate and initialize auxiliary variable at zeta position. |
| hmap_cyl_init_params | MODgvec_hmap_cyl | Function | initialize the type hmap_cyl, given the parameters as arguments |
| hmap_cyl_test | MODgvec_hmap_cyl | Subroutine | test hmap_cyl |
| hmap_eval_aux | MODgvec_c_hmap | Function | evaluate the mapping h (X^1,X^2,zeta) -> (x,y,z) cartesian INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the pointwise routine eval |
| hmap_eval_aux_all | MODgvec_c_hmap | Function | call %eval_aux on 1d array of points of size np, using auxiliary variable array of same size |
| hmap_eval_dxdq_aux | MODgvec_c_hmap | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the generic routine eval_dxdq_pw |
| hmap_eval_dxdq_aux_all | MODgvec_c_hmap | Function | call %eval_dxdq_aux on 1d array of points of size np, using auxiliary variable array of same size |
| hmap_eval_gij_aux | MODgvec_c_hmap | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the pointwise routine eval_gij |
| hmap_eval_gij_aux_all | MODgvec_c_hmap | Function | |
| hmap_eval_gij_dq_aux | MODgvec_c_hmap | Function | evaluate sum_k sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) q_vec^k, k=1,2,3 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the pointwise routine eval_gij_dq |
| hmap_eval_gij_dq_aux_all | MODgvec_c_hmap | Function | |
| hmap_eval_Jh_aux | MODgvec_c_hmap | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(X^1,X^2,zeta) INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the pointwise routine eval_Jh |
| hmap_eval_Jh_aux_all | MODgvec_c_hmap | Function | call %eval_Jh_aux on 1d array of points of size np, using auxiliary variable array of same size |
| hmap_eval_Jh_dq_aux | MODgvec_c_hmap | Function | evaluate derivative of Jacobian of mapping h: sum_k dJ_h(q)/dq^k q_vec^k, k=1,2 at q=(X^1,X^2,zeta) INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the pointwise routine eval_Jh_dq |
| hmap_eval_Jh_dq_aux_all | MODgvec_c_hmap | Function | call %eval_Jh_dq1_aux on 1d array of points of size np, using auxiliary variable array of same size |
| hmap_frenet_eval | MODgvec_hmap_frenet | Function | evaluate the mapping h (q1,q2,zeta) -> (x,y,z) |
| hmap_frenet_eval_all | MODgvec_hmap_frenet | Subroutine | evaluate all metrics necessary for optimizer |
| hmap_frenet_eval_all_e | MODgvec_hmap_frenet | Subroutine | evaluate all quantities at one given point (elemental) |
| hmap_frenet_eval_aux | MODgvec_hmap_frenet | Function | evaluate the mapping h (q1,q2,zeta) -> (x,y,z) |
| hmap_frenet_eval_dxdq | MODgvec_hmap_frenet | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , |
| hmap_frenet_eval_dxdq_aux | MODgvec_hmap_frenet | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , |
| hmap_frenet_eval_gij | MODgvec_hmap_frenet | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0 of ds and dtheta and 1 for dzeta |
| hmap_frenet_eval_gij_aux | MODgvec_hmap_frenet | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0 of ds and dtheta and 1 for dzeta |
| hmap_frenet_eval_gij_dq | MODgvec_hmap_frenet | Function | evaluate sum_k=1,3 q_vec^k * sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) , k=1,2 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0 of ds and dtheta and 1 for dzeta |
| hmap_frenet_eval_gij_dq_aux | MODgvec_hmap_frenet | Function | evaluate sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) , k=1,2 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0 of ds and dtheta and 1 for dzeta |
| hmap_frenet_eval_Jh | MODgvec_hmap_frenet | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(q^1,q^2,zeta) |
| hmap_frenet_eval_Jh_aux | MODgvec_hmap_frenet | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(q^1,q^2,zeta) |
| hmap_frenet_eval_Jh_dq | MODgvec_hmap_frenet | Function | evaluate derivative of Jacobian of mapping h: sum_k q_vec^k * dJ_h/dq^k, k=1,2,3 at q=(q^1,q^2,zeta) |
| hmap_frenet_eval_Jh_dq_aux | MODgvec_hmap_frenet | Function | evaluate derivative of Jacobian of mapping h: sum_k q_vec^k * dJ_h/dq^k, k=1,2,3 at q=(q^1,q^2,zeta) |
| hmap_frenet_eval_X0_fromRZ | MODgvec_hmap_frenet | Subroutine | evaluate curve X0(zeta), position and first three derivatives, from given R0,Z0 Fourier |
| hmap_frenet_free | MODgvec_hmap_frenet | Subroutine | finalize the type hmap_frenet |
| hmap_frenet_get_ddx_dqij | MODgvec_hmap_frenet | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta), |
| hmap_frenet_get_ddx_dqij_aux | MODgvec_hmap_frenet | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta), |
| hmap_frenet_get_dx_dqi | MODgvec_hmap_frenet | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), |
| hmap_frenet_get_dx_dqi_aux | MODgvec_hmap_frenet | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), |
| hmap_frenet_init | MODgvec_hmap_frenet | Function | initialize the type hmap_frenet, reading from parameterfile and then call init_params |
| hmap_frenet_init_aux | MODgvec_hmap_frenet | Function | initialize the aux variable |
| hmap_frenet_init_params | MODgvec_hmap_frenet | Function | initialize the type hmap_frenet with number of elements |
| hmap_frenet_sigma | MODgvec_hmap_frenet | Function | sign function depending on zeta, if omnig=False, sigma=1 if omnig=True, sigma=+1 for 0<=zeta<=pi/nfp, and -1 for pi/nfp<zeta<2pi |
| hmap_frenet_test | MODgvec_hmap_frenet | Subroutine | test hmap_frenet - evaluation of the map |
| hmap_get_ddx_dqij_aux | MODgvec_c_hmap | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 , at q_in=(X^1,X^2,zeta), INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the generic routine get_ddx_dqij |
| hmap_get_dx_dqi_aux | MODgvec_c_hmap | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), INFO: default routine that can be overwritten by specific hmap class, not using additional hmap-dependent auxiliary variables, but calling the generic routine get_dx_dqi |
| hmap_knot_eval | MODgvec_hmap_knot | Function | evaluate the mapping h (q1,q2,zeta) -> (x,y,z) |
| hmap_knot_eval_all | MODgvec_hmap_knot | Subroutine | evaluate all metrics necesseray for optimizer |
| hmap_knot_eval_all_e | MODgvec_hmap_knot | Subroutine | evaluate all quantities at one given point (elemental) NOTE: using calls to sf, not implemented/optimized for performance yet! |
| hmap_knot_eval_dxdq | MODgvec_hmap_knot | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , |
| hmap_knot_eval_gij | MODgvec_hmap_knot | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_knot_eval_gij_dq | MODgvec_hmap_knot | Function | evaluate sum_k sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) *q_vec^k, k=1,2,3 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_knot_eval_Jh | MODgvec_hmap_knot | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(q^1,q^2,zeta) |
| hmap_knot_eval_Jh_dq | MODgvec_hmap_knot | Function | evaluate derivative of Jacobian of mapping h: sum_k q_vec^k * dJ_h/dq^k, k=1,2,3 at q=(q^1,q^2,zeta) |
| hmap_knot_eval_Rl | MODgvec_hmap_knot | Function | evaluate the effective major radius coordinate Rl(q) |
| hmap_knot_eval_Zl | MODgvec_hmap_knot | Function | evaluate the effective vertical coordinate Zl(q) |
| hmap_knot_free | MODgvec_hmap_knot | Subroutine | finalize the type hmap_knot |
| hmap_knot_get_ddx_dqij | MODgvec_hmap_knot | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta), |
| hmap_knot_get_dx_dqi | MODgvec_hmap_knot | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), |
| hmap_knot_init | MODgvec_hmap_knot | Function | initialize the type hmap_knot, reading from parameter file and then call init_params |
| hmap_knot_init_aux | MODgvec_hmap_knot | Function | Allocate and initialize auxiliary variable at zeta position. |
| hmap_knot_init_params | MODgvec_hmap_knot | Function | initialize the type hmap_knot, from given parameters as arguments |
| hmap_knot_test | MODgvec_hmap_knot | Subroutine | test hmap_knot - evaluation of the map |
| hmap_new | MODgvec_hmap | Subroutine | initialize the type hmap, also readin parameters here if necessary |
| hmap_new_auxvar | MODgvec_hmap | Subroutine | initialize the hmap auxiliary variables, depends on hmap type |
| hmap_RZ_eval | MODgvec_hmap_RZ | Function | evaluate the mapping h (X^1,X^2,zeta) -> (x,y,z) cartesian |
| hmap_RZ_eval_all | MODgvec_hmap_RZ | Subroutine | evaluate all metrics necesseray for optimizer |
| hmap_RZ_eval_all_e | MODgvec_hmap_RZ | Subroutine | evaluate all quantities at one given point (elemental) |
| hmap_RZ_eval_aux | MODgvec_hmap_RZ | Function | evaluate the mapping h (X^1,X^2,zeta) -> (x,y,z) cartesian INFO: overwrites default routine hmap_eval_aux from c_hmap.f90 |
| hmap_RZ_eval_dxdq | MODgvec_hmap_RZ | Function | evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) , |
| hmap_RZ_eval_gij | MODgvec_hmap_RZ | Function | evaluate sum_ij (qL_i (G_ij(q_G)) qR_j) ,, where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_RZ_eval_gij_dq | MODgvec_hmap_RZ | Function | evaluate sum_k sum_ij (qL_i d/dq^k(G_ij(q_G)) qR_j) *q_vec^k, k=1,2,3 where qL=(dX^1/dalpha,dX^2/dalpha [,dzeta/dalpha]) and qR=(dX^1/dbeta,dX^2/dbeta [,dzeta/dbeta]) and where qL=(dX^1/dalpha,dX^2/dalpha ,dzeta/dalpha) and qR=(dX^1/dbeta,dX^2/dbeta ,dzeta/dbeta) and dzeta_dalpha then known to be either 0.0 for ds and dtheta and 1.0 for dzeta |
| hmap_RZ_eval_Jh | MODgvec_hmap_RZ | Function | evaluate Jacobian of mapping h: J_h=sqrt(det(G)) at q=(X^1,X^2,zeta) |
| hmap_RZ_eval_Jh_dq | MODgvec_hmap_RZ | Function | evaluate derivative of Jacobian of mapping h: sum q_vec^k * dJ_h/dq^k, k=1,2,3 at q=(X^1,X^2,zeta) |
| hmap_RZ_free | MODgvec_hmap_RZ | Subroutine | finalize the type hmap_RZ |
| hmap_RZ_get_ddx_dqij | MODgvec_hmap_RZ | Subroutine | evaluate all second derivatives d^2x(1:3)/(dq^i dq^j), i,j=1,2,3 is evaluated at q_in=(X^1,X^2,zeta), |
| hmap_RZ_get_dx_dqi | MODgvec_hmap_RZ | Subroutine | evaluate all first derivatives dx(1:3)/dq^i, i=1,2,3 , at q_in=(X^1,X^2,zeta), |
| hmap_RZ_init | MODgvec_hmap_RZ | Function | initialize the type hmap_RZ, no additional readin from parameterfile needed. |
| hmap_RZ_init_aux | MODgvec_hmap_RZ | Function | Allocate and initialize auxiliary variable at zeta position. |
| hmap_RZ_test | MODgvec_hmap_RZ | Subroutine | test hmap_RZ |
| IgnoredStrings | MODgvec_ReadInTools | Subroutine | Prints out remaining strings in list after read-in is complete |
| IgnoredStrings | MODgvec_ReadInTools | Interface | |
| Init | MODgvec_py_state | Subroutine | |
| Init_Base | MODgvec_gvec_to_jorek | Subroutine | initialize base classes declared in _vars module, needed for computation of output fields |
| init_boozer | MODgvec_py_state | Function | 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 |
| init_gvec_to_gene_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| init_gvec_to_jorek | MODgvec_gvec_to_jorek | Subroutine | Initialize Module |
| init_gvec_to_jorek | MODgvec_gvec_to_jorek | Interface | |
| Init_LA_from_Solution | MODgvec_MHD3D | Subroutine | Initialize LAMBDA FROM U_init%X1,%X2 and iota profile, this computation is distributed over MPIranks |
| InitAnalyze | MODgvec_Analyze | Subroutine | Initialize Module |
| InitAnalyze | MODgvec_Analyze | Interface | |
| InitAverageAxis | MODgvec_MHD3D | Subroutine | Overwrite axis with average axis by center of closed line of the boundary in each poloidal plane |
| InitFunctional | MODgvec_functional | Subroutine | initialize the type functional with number of elements |
| InitializeMHD3D_evalFunc | MODgvec_MHD3D_evalFunc | Subroutine | Initialize Module |
| InitializeVandermonde | MODgvec_Basis1D | Subroutine | Build a 1D Vandermonde matrix using the Lagrange basis functions of degree N_In, evaluated at the interpolation points xi_Out |
| InitializeVandermonde | MODgvec_Basis1D | Interface | |
| InitMHD3D | MODgvec_MHD3D | Subroutine | Initialize Module |
| InitOutput | MODgvec_Output | Subroutine | Initialize Module |
| InitOutput | MODgvec_Output | Interface | |
| InitProfile | MODgvec_MHD3D | Subroutine | |
| InitProfilesGP | MODgvec_MHD3D_evalFunc | Subroutine | Initialise Profiles at GP!!! |
| InitRestart | MODgvec_Restart | Subroutine | Initialize Module |
| InitRestart | MODgvec_Restart | Interface | |
| InitSolution | MODgvec_MHD3D | Subroutine | Initialize the solution with the given boundary condition |
| InitSolution | MODgvec_py_state | Subroutine | |
| InitSolutionMHD3D | MODgvec_MHD3D | Subroutine | Initialize Module |
| InitVMEC | MODgvec_VMEC | Subroutine | Initialize VMEC module |
| InitVMEC | MODgvec_VMEC | Interface | |
| interpolate_cubic_spline | MODgvec_cubic_spline | Subroutine | used as rhs, then overwritten in solve |
| interpolate_cubic_spline | MODgvec_cubic_spline | Interface | |
| INV | MODgvec_LinAlg | Function | Computes matrix inverse using LAPACK Input matrix should be a square matrix |
| INV33 | MODgvec_Globals | Function | compute inverse of 3x3 matrix, needs sDet=1/det(Mat) |
| INV33 | MODgvec_Globals | Interface | |
| LagrangeInterpolationPolys | MODgvec_Basis1D | Subroutine | Computes all Lagrange functions evaluated at position x in [-1,1] For details see paper Barycentric Lagrange Interpolation by Berrut and Trefethen (SIAM 2004) Uses function ALMOSTEQUAL Algorithm 34, Kopriva book |
| LagrangeInterpolationPolys | MODgvec_Basis1D | Interface | |
| Lambda_setup_and_solve | MODgvec_lambda_solve | Subroutine | |
| Lambda_solve | MODgvec_lambda_solve | Subroutine | Solve for lambda on one given flux surface (spos_in), using weak form of J^s=0: d/dzeta(B_theta)-d/dtheta(B_zeta)=0 |
| LegendreGaussNodesAndWeights | MODgvec_Basis1D | Subroutine | Compute Legendre-Gauss nodes and integration weights (algorithm 23, Kopriva book) |
| LegendreGaussNodesAndWeights | MODgvec_Basis1D | Interface | |
| LegendrePolynomialAndDerivative | MODgvec_Basis1D | Subroutine | Evaluate the Legendre polynomial L_N and its derivative at position x[-1,1] recursive algorithm using the N_in-1 N_in-2 Legendre polynomials algorithm 22, Kopriva book |
| LegendrePolynomialAndDerivative | MODgvec_Basis1D | Interface | |
| LegGaussLobNodesAndWeights | MODgvec_Basis1D | Subroutine | Starting with initial guess by Parter Relation, a Newton method is used to find the roots of the Legendre Polynomial Lder_(N_in), which are the positions of Gauss-Lobatto points. Uses qAndLEvaluation subroutine. algorithm 25, Kopriva |
| LegGaussLobNodesAndWeights | MODgvec_Basis1D | Interface | |
| LowCase | MODgvec_ReadInTools | Subroutine | Transform upper case letters in "Str1" into lower case letters, result is "Str2", but only up the the equal sign. |
| LowCase | MODgvec_ReadInTools | Interface | |
| MinimizeMHD3D | MODgvec_MHD3D | Subroutine | Compute Equilibrium, iteratively |
| MinimizeMHD3D_descent | MODgvec_MHD3D | Subroutine | Compute Equilibrium, iteratively |
| mpi_check_single_access | MODgvec_IO_NETCDF | Subroutine | |
| MthPolynomialDerivativeMatrix | MODgvec_Basis1D | Subroutine | Computes mth polynomial differentiation matrix for interpolation polynomial given by set of nodes. (Algorithm 38, Kopriva book) |
| MthPolynomialDerivativeMatrix | MODgvec_Basis1D | Interface | |
| ncfile_closefile | MODgvec_IO_NETCDF | Subroutine | close netcdf file |
| ncfile_def_dim | MODgvec_IO_NETCDF | Subroutine | define a dimension to the netCDF file |
| ncfile_end_def_mode | MODgvec_IO_NETCDF | Subroutine | after creating a new file and making all definitions, one has to call end_def_mode |
| ncfile_enter_groups | MODgvec_IO_NETCDF | Subroutine | if variable name contains "/", these are interpreted as groups/subgroups. split the varname at first occurence of "/" to get the first group name on the file level. Then get the group id. repeat until no "/" is found anymore. output the final groupid and the variable name without the group names. |
| ncfile_free | MODgvec_IO_NETCDF | Subroutine | closes file and frees variable |
| ncfile_get_array | MODgvec_IO_NETCDF | Subroutine | get integer or real array of dimension 1d,2d,3d,4d (depends on optional argument) netcdf call get_var knows type and dimensions directly from argument abort if variable does not exist. USE var_exists for checking |
| ncfile_get_scalar | MODgvec_IO_NETCDF | Subroutine | get integer or real scalar (depends on optional argument) abort if variable does not exist. USE var_exists for checking |
| ncfile_get_var_dims | MODgvec_IO_NETCDF | Function | get the size of a ulti-dimensional array for all dimensions ndims |
| ncfile_get_var_ndims | MODgvec_IO_NETCDF | Function | get the number of dimensions of a variable |
| ncfile_handle_error | MODgvec_IO_NETCDF | Subroutine | netcdf error handling via sf%ioError variable |
| ncfile_init | MODgvec_IO_NETCDF | Subroutine | allocate and initialize class and open/close the netcdf file and define read ("r") or write ("w" includes read) mode |
| ncfile_openfile | MODgvec_IO_NETCDF | Subroutine | open netcdf file |
| ncfile_put_array | MODgvec_IO_NETCDF | Subroutine | define and put an array value to the netCDF file |
| ncfile_put_attributes_char | MODgvec_IO_NETCDF | Subroutine | |
| ncfile_put_char | MODgvec_IO_NETCDF | Subroutine | define and put a char to the netCDF file as a string NOTE: This is only used for naming coordinate directions with a single character |
| ncfile_put_scalar | MODgvec_IO_NETCDF | Subroutine | define and put a scalar value to the netCDF file |
| ncfile_var_exists | MODgvec_IO_NETCDF | Function | check if variable name exists (also including groups separated with "/") |
| newton_Root1D_wrap_Min1D_dFR | MODgvec_Newton | Function | d/dx f(x) function of the Min1D type wrapped for Root1D |
| newton_Root1D_wrap_Min1D_FR | MODgvec_Newton | Function | f(x) function of the Min1D type wrapped for Root1D |
| newton_Root1D_wrap_Min1D_new | MODgvec_Newton | Function | constructor for the Min1D type wrapped for Root1D |
| NewtonMin1D | MODgvec_Newton | Function | Newton's iterative algorithm to find the minimimum of function f(x) in the interval [a,b], using df(x)=0 and the derivative |
| NewtonMin1D | MODgvec_Newton | Interface | |
| NewtonMin2D | MODgvec_Newton | Function | Newton's iterative algorithm to find the minimimum of function f(x,y) in the interval x(i)[a(i),b(i)], using grad(f(x)=0 and the derivative |
| NewtonMin2D | MODgvec_Newton | Interface | |
| NewtonRoot1D | MODgvec_Newton | Function | Newton's iterative algorithm to find the root of function FR(x(:)) in the interval [a(:),b(:)], using d/dx(:)F(x)=0 and the derivative |
| NewtonRoot1D | MODgvec_Newton | Interface | |
| NewtonRoot1D_FdF | MODgvec_Newton | Function | Newton's iterative algorithm to find the root of function FR(x(:)) in the interval [a(:),b(:)], using d/dx(:)F(x)=0 and the derivative |
| NewtonRoot1D_FdF | MODgvec_Newton | Interface | |
| NewtonRoot2D | MODgvec_Newton | Function | Newton's iterative algorithm to find the root of function [f1(x1,x2),f2(x1,x2)]=[0,0] in the interval a(i)<=x(i)<=b(i), using the Jacobian dfi/dxj, i=1,2, j=1,2, such that fi(x1,x2)=fi(x1_0,x2_0)+ [dfi/dx1,dfi/dx2].[dx1,dx2] in each step, we find dx1,dx2 st -[[dfi/dxj]] dxj =fi(x1_0,x2_0) |
| NewtonRoot2D | MODgvec_Newton | Interface | |
| NORMALIZE | MODgvec_Globals | Function | normalizes a nDim vector with respect to the eucledian norm |
| NORMALIZE | MODgvec_Globals | Interface | |
| Output | MODgvec_Output | Subroutine | |
| Output | MODgvec_Output | Interface | |
| par_AllReduce | MODgvec_MPI | Interface | |
| par_AllReduce_array1D | MODgvec_MPI | Subroutine | Find MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks and bradcast result back to all MPI ranks. |
| par_AllReduce_array2D | MODgvec_MPI | Subroutine | Find MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks and bradcast result back to all MPI ranks. |
| par_AllReduce_scalar | MODgvec_MPI | Subroutine | Find MAX/MIN/SUM scalar value across MPI ranks and bradcast result back to all MPI ranks. |
| par_AllReduce_scalar_int | MODgvec_MPI | Subroutine | Find MAX/MIN/SUM scalar value across MPI ranks and bradcast result back to all MPI ranks. |
| par_Barrier | MODgvec_MPI | Subroutine | Barrier for specified communicator, or world-communicator otherwise. |
| par_Bcast | MODgvec_MPI | Interface | |
| par_Bcast_array1D | MODgvec_MPI | Subroutine | Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks. |
| par_Bcast_array1D_int | MODgvec_MPI | Subroutine | Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks. |
| par_Bcast_array1D_str | MODgvec_MPI | Subroutine | Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks. |
| par_Bcast_array2D | MODgvec_MPI | Subroutine | Broadcast a 2D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks. |
| par_Bcast_scalar | MODgvec_MPI | Subroutine | Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks. |
| par_Bcast_scalar_int | MODgvec_MPI | Subroutine | Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks. |
| par_Bcast_scalar_str | MODgvec_MPI | Subroutine | Broadcast a scalar from MPI rank 'fromRank' to all MPI ranks. |
| par_Finalize | MODgvec_MPI | Subroutine | Deinitialisation of MPI. |
| par_IBcast | MODgvec_MPI | Interface | |
| par_IBcast_array1D | MODgvec_MPI | Subroutine | Broadcast a 1D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks (nonblocking) |
| par_IBcast_array2D | MODgvec_MPI | Subroutine | Broadcast a 2D array (assumed-shape) from MPI rank 'fromRank' to all MPI ranks (nonblocking) |
| par_Init | MODgvec_MPI | Subroutine | Initialisation of MPI. |
| par_IReduce | MODgvec_MPI | Interface | |
| par_IReduce_array1D | MODgvec_MPI | Subroutine | Find on MPI rank 'toRank' MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks (nonblocking). |
| par_IReduce_array2D | MODgvec_MPI | Subroutine | Find on MPI rank 'toRank' MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks. |
| par_Reduce | MODgvec_MPI | Interface | |
| par_Reduce_array1D | MODgvec_MPI | Subroutine | Find on MPI rank 'toRank' MAX/MIN/SUM of 1D array (assumed-shape) across all MPI ranks. |
| par_Reduce_array2D | MODgvec_MPI | Subroutine | Find on MPI rank 'toRank' MAX/MIN/SUM of 2D array (assumed-shape) across all MPI ranks. |
| par_Reduce_scalar | MODgvec_MPI | Subroutine | Find on MPI rank 'toRank' MAX/MIN/SUM scalar value across MPI ranks. |
| par_Reduce_scalar_int | MODgvec_MPI | Subroutine | Find on MPI rank 'toRank' MAX/MIN/SUM scalar value across MPI ranks. |
| par_Wait | MODgvec_MPI | Subroutine | Wait for completion of a single nonblocking communication |
| par_Wait | MODgvec_MPI | Interface | |
| par_WaitAll | MODgvec_MPI | Subroutine | Wait for completion of all nonblocking communications for req(:) |
| parSumArrayES | MODgvec_MPI | Subroutine | Sum an array across MPI ranks: explicit-shape with implicit reshaping Multi-D->1D. |
| perf_context_end | perf2ftimings.f90 | Subroutine | |
| perf_context_start | perf2ftimings.f90 | Subroutine | |
| perfinit | perf2ftimings.f90 | Subroutine | |
| perfoff | perf2ftimings.f90 | Subroutine | |
| perfon | perf2ftimings.f90 | Subroutine | |
| perfout | perf2ftimings.f90 | Subroutine | |
| pest_newton_FRdFR | MODgvec_Transform_SFL | Function | Function for 1D newton root search for PEST |
| poly_derivative_prefactor | MODgvec_rProfile_base | Function | calculate the prefactor for the d-th coefficient of the n-th derivative of a polynomial |
| PolynomialDerivativeMatrix | MODgvec_Basis1D | Subroutine | Computes polynomial differentiation matrix for interpolation polynomial given by set of nodes. (Algorithm 37, Kopriva book) |
| PolynomialDerivativeMatrix | MODgvec_Basis1D | Interface | |
| polyProfile_antiderivative | MODgvec_rProfile_poly | Function | get the exact polynomial antiderivative, with respect to rho2 |
| polyProfile_eval_at_rho2 | MODgvec_rProfile_poly | Function | evaluate the n-th derivative of a power polynomial |
| polyProfile_free | MODgvec_rProfile_poly | Subroutine | finalize the type rProfile |
| polyProfile_new | MODgvec_rProfile_poly | Function | |
| ProgressBar | MODgvec_Globals | Subroutine | Print a progress bar to screen, call either with init=T or init=F |
| ProgressBar | MODgvec_Globals | Interface | |
| qAndLEvaluation | MODgvec_Basis1D | Subroutine | Evaluate the polynomial q=L_{N_in+1}-L_{N_in-1} and its derivative at position x in [-1,1] Recursive algorithm using the N_in-1 N_in-2 Legendre polynomials. (Algorithm 24, Kopriva book) |
| ReadNETCDF | MODgvec_hmap_axisNB | Subroutine | READ axis from netcdf file, needs netcdf library! ======= HEADER OF THE NETCDF FILE VERSION 3.1 =================================================================================== === FILE DESCRIPTION: * axis, normal and binormal of the frame are given in cartesian coordinates along the curve parameter zeta [0,2pi]. * The curve is allowed to have a field periodicity NFP, but the curve must be provided on a full turn. * The adata is given in real space, sampled along equidistant zeta point positions: zeta(i)=(i+0.5)/nzeta * (2pi/NFP), i=0,...,nzeta-1 always shifted by (2pi/NFP) for the next field period. Thus the number of points along the axis for a full turn is NFP*nzeta * definition of the axis-following frame in cartesian coordinates ( boundary surface at rho=1): |
| ReadNETCDF | MODgvec_boundaryFromFile | Subroutine | READ FROM SPECIFIC NETCDF FILE: general data and "boundary" group ======= HEADER OF THE NETCDF FILE VERSION 3.1 =================================================================================== === FILE DESCRIPTION: * axis, normal and binormal of the frame are given in cartesian coordinates along the curve parameter zeta [0,2pi]. * The curve is allowed to have a field periodicity NFP, but the curve must be provided on a full turn. * The data is given in REAL SPACE, sampled along equidistant zeta point positions: zeta(i)=(i+0.5)/nzeta * (2pi/NFP), i=0,...,nzeta-1 always shifted by (2pi/NFP) for the next field period. Thus the number of points along the axis for a full turn is NFP*nzeta * definition of the axis-following frame in cartesian coordinates ( boundary surface at rho=1): |
| ReadState | MODgvec_ReadState | Interface | |
| ReadState | MODgvec_py_state | Subroutine | |
| ReadStateFileFromASCII | MODgvec_ReadState | Subroutine | read an input solution and initialize U(0) (X1,X2,LA) of size X1/X2/LA_base , from an ascii .dat file if size of grid/X1/X2/LA not equal X1/X2/X3_base interpolate readin solution to the current base of Uin |
| redirect_abort | MODgvec_py_binding | Subroutine | |
| redirect_stdout | MODgvec_py_binding | Subroutine | |
| remove_blanks | MODgvec_ReadInTools | Function | |
| replace | MODgvec_ReadInTools | Function | |
| RestartFromState | MODgvec_Restart | Subroutine | read an input solution and initialize U(0) (X1,X2,LA) of size X1/X2/LA_base , from an ascii .dat file if size of grid/X1/X2/LA not equal X1/X2/X3_base interpolate readin solution to the current base of Uin |
| RestartFromState | MODgvec_Restart | Interface | |
| rho2_derivative | MODgvec_rProfile_base | Function | evaluate the n-th derivative of (rho^2) with respect to rho ~sqrt(magnetic flux). |
| rodrigues | MODgvec_hmap_axisNB | Function | Rodrigues' rotation formula assumption for now is that the origin is fixed at rot_origin=(/0.,0.,0./) and the rotation axis is fixed at rot_axis=(/0.,0.,1./) |
| rProfile_drho2 | MODgvec_rProfile_base | Function | evaluate the 2nd derivative of a radial profile with respect to rho ~sqrt(magnetic flux). |
| rProfile_drho3 | MODgvec_rProfile_base | Function | evaluate the 3rd derivative of a radial profile with respect to rho ~sqrt(magnetic flux). |
| rProfile_drho4 | MODgvec_rProfile_base | Function | evaluate the 4th derivative of a radial profile with respect to rho ~sqrt(magnetic flux) |
| rProfile_eval_at_rho | MODgvec_rProfile_base | Function | 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. |
| rungvec | MODgvec_rungvec | Subroutine | |
| s_bsplines_non_uniform__eval_basis | sll_m_bsplines_non_uniform | Subroutine | Evaluate value at x of all basis functions with support in local cell values[j] = B_j(x) for jmin <= j <= jmin+degree |
| s_bsplines_non_uniform__eval_basis_and_n_derivs | sll_m_bsplines_non_uniform | Subroutine | Evaluate value and n derivatives at x of all basis functions with support in local cell derivs[i,j] = (d/dx)^i B_j(x) for 0 <= i <= n and jmin <= j <= jmin+degree |
| s_bsplines_non_uniform__eval_deriv | sll_m_bsplines_non_uniform | Subroutine | Evaluate derivative at x of all basis functions with support in local cell derivs[j] = B_j'(x) for jmin <= j <= jmin+degree |
| s_bsplines_non_uniform__free | sll_m_bsplines_non_uniform | Subroutine | Free storage |
| s_bsplines_non_uniform__init | sll_m_bsplines_non_uniform | Subroutine | Initialize non-uniform B-splines object |
| s_bsplines_uniform__eval_basis | sll_m_bsplines_uniform | Subroutine | Evaluate value at x of all basis functions with support in local cell values[j] = B_j(x) for jmin <= j <= jmin+degree |
| s_bsplines_uniform__eval_basis_and_n_derivs | sll_m_bsplines_uniform | Subroutine | Evaluate value and n derivatives at x of all basis functions with support in local cell derivs[i,j] = (d/dx)^i B_j(x) for 0 <= i <= n and jmin <= j <= jmin+degree |
| s_bsplines_uniform__eval_deriv | sll_m_bsplines_uniform | Subroutine | Evaluate derivative at x of all basis functions with support in local cell derivs[j] = B_j'(x) for jmin <= j <= jmin+degree |
| s_bsplines_uniform__free | sll_m_bsplines_uniform | Subroutine | Free storage |
| s_bsplines_uniform__get_icell_and_offset | sll_m_bsplines_uniform | Subroutine | |
| s_bsplines_uniform__init | sll_m_bsplines_uniform | Subroutine | Initialize uniform B-splines object |
| s_build_system | sll_m_spline_interpolator_1d | Subroutine | Private subroutine for assembling and factorizing linear system for any kind of boundary conditions at xmin and xmax |
| s_compute_interpolation_points_non_uniform | sll_m_spline_interpolator_1d | Subroutine | |
| s_compute_interpolation_points_uniform | sll_m_spline_interpolator_1d | Subroutine | |
| s_compute_num_diags_non_uniform | sll_m_spline_interpolator_1d | Subroutine | |
| s_compute_num_diags_uniform | sll_m_spline_interpolator_1d | Subroutine | |
| s_spline_1d__eval_array | sll_m_spline_1d | Subroutine | Evaluate value of 1D spline at all locations in array x |
| s_spline_1d__eval_array_deriv | sll_m_spline_1d | Subroutine | Evaluate derivative of 1D spline at all locations in array x |
| s_spline_1d__free | sll_m_spline_1d | Subroutine | Destroy 1D spline (re-initialization is possible afterwards) |
| s_spline_1d__init | sll_m_spline_1d | Subroutine | Initialize 1D spline object as element of span(B-splines) |
| s_spline_interpolator_1d__compute_interpolant | sll_m_spline_interpolator_1d | Subroutine | Compute interpolating 1D spline values on grid. If Hermite BCs are used, function derivatives at appropriate boundary are also needed. |
| s_spline_interpolator_1d__free | sll_m_spline_interpolator_1d | Subroutine | Destroy local objects and free allocated memory |
| s_spline_interpolator_1d__get_interp_points | sll_m_spline_interpolator_1d | Subroutine | Get coordinates of interpolation points (1D grid) |
| s_spline_interpolator_1d__init | sll_m_spline_interpolator_1d | Subroutine | Initialize a 1D spline interpolator object |
| s_spline_matrix_banded__add_element | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__factorize | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__free | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__get_element | sll_m_spline_matrix_banded | Function | |
| s_spline_matrix_banded__init | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__mat_add | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__mat_copy | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__matvec_prod | sll_m_spline_matrix_banded | Function | |
| s_spline_matrix_banded__reset | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__set_element | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__solve_inplace | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_banded__write | sll_m_spline_matrix_banded | Subroutine | |
| s_spline_matrix_dense__add_element | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__factorize | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__free | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__get_element | sll_m_spline_matrix_dense | Function | |
| s_spline_matrix_dense__init | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__mat_add | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__mat_copy | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__matvec_prod | sll_m_spline_matrix_dense | Function | |
| s_spline_matrix_dense__set_element | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__solve_inplace | sll_m_spline_matrix_dense | Subroutine | |
| s_spline_matrix_dense__write | sll_m_spline_matrix_dense | Subroutine | |
| sBase_alloc | MODgvec_sBase | Subroutine | allocate all variables in sbase |
| sBase_applyBCtoDOF_LGM | MODgvec_sBase | Subroutine | apply boundary conditions at axis and edge, via solving the Lagrange multiplier problem: x_new=x_old & A*x_new = d |
| sBase_applyBCtoDOF_STRONG | MODgvec_sBase | Subroutine | apply strong boundary conditions at axis and edge Not used anymore, WAS FOUND TO BE NOT STABLE (OSCILLATORY) IN GENERAL, especially for BCs with only derivatives prescribed... new LGM method below is used now! |
| sBase_applyBCtoRHS | MODgvec_sBase | Subroutine | apply strong boundary conditions at axis and edge for solution update |
| sBase_change_base | MODgvec_sBase | Subroutine | change data from old_sBase to self. using interpolations of the old data at the new interpolation points |
| sBase_compare | MODgvec_sBase | Subroutine | compare sf with input sbase |
| sBase_copy | MODgvec_sBase | Subroutine | copy onto sf <-- tocopy |
| sBase_eval | MODgvec_sBase | Subroutine | evaluate sbase at position x [0,1], NOT EFFICIENT!! |
| sBase_evalDOF2D_s | MODgvec_sBase | Function | simply evaluate function or derivative at point x, for multiple DOF vectors |
| sBase_evalDOF_base | MODgvec_sBase | Function | simply evaluate function with a base or base derivative evaluated at a point and its corresponding iElem use together with sBase_eval(x) => iElem,base |
| sBase_evalDOF_GP | MODgvec_sBase | Function | evaluate all degrees of freedom at all Gauss Points (deriv=0 solution, deriv=1 first derivative d/ds) |
| sBase_evalDOF_s | MODgvec_sBase | Function | simply evaluate function or derivative at point x |
| sBase_free | MODgvec_sBase | Subroutine | finalize the type sBase |
| sBase_init | MODgvec_sBase | Subroutine | initialize the type sbase with polynomial degree, continuity ( -1: disc, 1: full) and number of gauss points per element |
| sBase_initDOF | MODgvec_sBase | Function | take values interpolated at sf%s_IP positions and give back the degrees of freedom |
| sBase_new | MODgvec_sBase | Subroutine | initialize the type sbase with polynomial degree, continuity ( -1: disc, 1: full) and number of gauss points per element |
| sBase_test | MODgvec_sBase | Subroutine | test sbase variable |
| select_base | MODgvec_py_state | Subroutine | Handle the selection of the base, based on the selection string |
| select_base_dofs | MODgvec_py_state | Subroutine | Handle the selection of the base, based on the selection string |
| self_find_boozer_angles | MODgvec_SFL_Boozer | Subroutine | interface to find_boozer_angles from the class t_sfl_boozer |
| self_find_boozer_angles_irho | MODgvec_SFL_Boozer | Subroutine | interface to find_boozer_angles from the class t_sfl_boozer |
| sfl_boozer_free | MODgvec_SFL_Boozer | Subroutine | finalize sfl boozer class |
| sfl_boozer_new | MODgvec_SFL_Boozer | Subroutine | initialize sfl boozer class |
| sfl_boozer_new | MODgvec_SFL_Boozer | Interface | |
| sGrid_compare | MODgvec_sGrid | Subroutine | compare to sf grid with input grid to see if they are the same |
| sGrid_copy | MODgvec_sGrid | Subroutine | copy the type sgrid, copies sf <= tocopy ... call sf%copy(tocopy) |
| sGrid_find_elem | MODgvec_sGrid | Function | find grid cell for certain position |
| sGrid_free | MODgvec_sGrid | Subroutine | finalize the type sgrid |
| sGrid_init | MODgvec_sGrid | Subroutine | initialize the type sgrid with number of elements |
| sGrid_test | MODgvec_sGrid | Subroutine | test sgrid variable |
| sll_s_assertion | sll_m_assert | Subroutine | |
| sll_s_bsplines_new | sll_m_bsplines | Subroutine | Allocate and initialize uniform or non-uniform B-splines |
| sll_s_error_handler | sll_m_errors | Subroutine | @brief Print error message to standard-error, stop execution and dump backtrace information. @details |
| sll_s_spline_1d_compute_num_cells | sll_m_spline_interpolator_1d | Subroutine | Calculate number of cells from number of interpolation points calculate the number of grid cells that yields the desired number of interpolation points |
| sll_s_spline_matrix_new | sll_m_spline_matrix | Subroutine | |
| sll_s_warning_handler | sll_m_errors | Subroutine | @brief Print warning message to standard-error and continue execution. @details |
| sol_var_MHD3D_AXBY | MODgvec_sol_var_MHD3D | Subroutine | res=aX+bY , where X,Y,res are of type t_var_sol |
| sol_var_MHD3D_copy | MODgvec_sol_var_MHD3D | Subroutine | copy tocopy => sf |
| sol_var_MHD3D_free | MODgvec_sol_var_MHD3D | Subroutine | free (=deallocate) sf of type t_sol_var_MHD3D |
| sol_var_MHD3D_init | MODgvec_sol_var_MHD3D | Subroutine | initialize (=allocate) sf of type t_sol_var |
| sol_var_MHD3D_norm_2 | MODgvec_sol_var_MHD3D | Function | |X|^2, where X is of type t_var_sol, so three values are returned: |X1|^2,|X2|^2,|LA|^2 |
| sol_var_MHD3D_set_to_scalar | MODgvec_sol_var_MHD3D | Subroutine | set all variables to scalar |
| sol_var_MHD3D_set_to_solvar | MODgvec_sol_var_MHD3D | Subroutine | set variabes X1,X2,LA of toset => sf, optional argument to scale toset with a scalar (for example -1.0_wp) |
| sol_var_MHD3D_test | MODgvec_sol_var_MHD3D | Subroutine | test sol_var_MHD3D |
| SOLVE | MODgvec_LinAlg | Function | Solve linear system of dimension dims and multiple RHS |
| SOLVEMAT | MODgvec_LinAlg | Function | Solve linear system of dimension dims and multiple RHS |
| split | MODgvec_ReadInTools | Subroutine | |
| start_rungvec | MODgvec_py_run | Subroutine | |
| t_cubspl | MODgvec_cubic_spline | Interface | |
| t_hmap_axisNB | MODgvec_hmap_axisNB | Interface | |
| t_hmap_axisNB_auxvar | MODgvec_hmap_axisNB | Interface | |
| t_hmap_cyl | MODgvec_hmap_cyl | Interface | |
| t_hmap_cyl_auxvar | MODgvec_hmap_cyl | Interface | |
| t_hmap_frenet | MODgvec_hmap_frenet | Interface | |
| t_hmap_frenet_auxvar | MODgvec_hmap_frenet | Interface | |
| t_hmap_knot | MODgvec_hmap_knot | Interface | |
| t_hmap_knot_auxvar | MODgvec_hmap_knot | Interface | |
| t_hmap_RZ | MODgvec_hmap_RZ | Interface | |
| t_hmap_RZ_auxvar | MODgvec_hmap_RZ | Interface | |
| t_newton_Root1D_wrap_Min1D | MODgvec_Newton | Interface | |
| t_rProfile_bspl | MODgvec_rProfile_bspl | Interface | |
| t_rProfile_poly | MODgvec_rProfile_poly | Interface | |
| test_int_array_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| test_pass_arrays_shift_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| test_print_char_rank2_array_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| test_print_file_name_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| to_spline_with_BC | MODgvec_Transform_SFL | Subroutine | Helper routine to go from spline interpolation points to spline coefficients and apply smooth axis boundary condition. |
| Transform_Angles_3d | MODgvec_Transform_SFL | Subroutine | Transform a function from the GVEC angles q(s,theta,zeta) to new angles q(s,theta,zeta*) by using interpolation in angular direction (fourier transform) and spline interpolation in radial direction (at s_IP points of output base) the interpolation points are given by thetazeta_IP, which are the angle positions of an equidistant interpolation grid in PEST/Boozer angles |
| Transform_Angles_sinterp | MODgvec_Transform_SFL | Subroutine | Transform a function from VMEC angles q(s,theta,zeta) to new angles q(s,theta,zeta) by projection onto the modes of the new angles: sigma_mn(theta,zeta) using a given in s Here, new angles are theta=theta+A(theta,zeta), zeta=zeta+B(theta,zeta), with A,B periodic functions and zero average and same base Note that in this routine, the integral is transformed back to (theta,zeta) q_mn = iint_0^2pi q(theta,zeta) sigma_mn(theta,zeta) dtheta dzeta = iint_0^2pi q(theta,zeta) sigma_mn(theta,zeta) [(1+dA/dtheta)(1+dB/dzeta)-(dA/dzetadB/dzeta)] dtheta dzeta |
| transform_SFL_free | MODgvec_Transform_SFL | Subroutine | |
| transform_SFL_init | MODgvec_Transform_SFL | Subroutine | get_new |
| transform_sfl_new | MODgvec_Transform_SFL | Subroutine | Allocate class and call init |
| transform_sfl_new | MODgvec_Transform_SFL | Interface | |
| Visu_axisNB | MODgvec_hmap_axisNB | Subroutine | Write evaluation of the axis and signed axisNB frame to file |
| VisuFrenet | MODgvec_hmap_frenet | Subroutine | Write evaluation of the axis and signed frenet frame to file |
| VMEC1D_visu | MODgvec_Analyze | Subroutine | Visualize VMEC flux surface data for each mode, for Rmnc |
| VMEC3D_visu | MODgvec_Analyze | Subroutine | Visualize VMEC flux surface data in planes or 3D, number of radial posisiotns fixed to nFluxVMEC+1, only R,Z,Lambda |
| VMEC_EvalSplMode | MODgvec_VMEC | Function | evaluate spline for specific mode at position s |
| VMEC_EvalSplMode | MODgvec_VMEC | Interface | |
| write_data_to_vtk_c | modgvec_gvec_to_gene_c_bind | Subroutine | |
| write_modes | MODgvec_write_modes | Subroutine | write modes prepared above |
| write_modes | MODgvec_write_modes | Interface | |
| WriteDataToCSV | MODgvec_Output_CSV | Subroutine | Subroutine to write |
| WriteDataToCSV | MODgvec_Output_CSV | Interface | |
| WriteDataToNETCDF | MODgvec_Output_netcdf | Subroutine | Subroutine to write multidimensional data to netCDF format |
| WriteDataToVTK | MODgvec_Output_VTK | Subroutine | Subroutine to write 3D point data to VTK format |
| WriteState | MODgvec_Restart | Interface | |
| WriteStateToASCII | MODgvec_Restart | Subroutine | write an input solution (X1,X2,LA) to an ascii .dat file |