Module ** base **
2D Fourier base in the two angular directions: (poloidal,toroidal) ~ (m,n) ~ (theta,zeta) [0,2pi]x[0,2pi/nfp]
explicit real fourier basis: sin(x_mn) or cos(x_mn) with x_mn=(mtheta - n nfp*zeta) ,
with mode numbers m and n
module~~modgvec_base~~UsesGraph
module~modgvec_base
MODgvec_base
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_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_assert
sll_m_assert
module~sll_m_bsplines->module~sll_m_assert
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_errors
sll_m_errors
module~sll_m_bsplines->module~sll_m_errors
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_spline_interpolator_1d->module~sll_m_assert
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_interpolator_1d->module~sll_m_errors
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->module~sll_m_errors
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_boundary_condition_descriptors->module~sll_m_working_precision
module~sll_m_bsplines_base->module~sll_m_assert
module~sll_m_bsplines_base->module~sll_m_working_precision
module~sll_m_bsplines_non_uniform->module~sll_m_assert
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_assert
module~sll_m_bsplines_uniform->module~sll_m_bsplines_base
module~sll_m_bsplines_uniform->module~sll_m_errors
module~sll_m_bsplines_uniform->module~sll_m_working_precision
module~sll_m_errors->iso_fortran_env
module~sll_m_spline_1d->module~sll_m_assert
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_assert
module~sll_m_spline_matrix_banded->module~sll_m_errors
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_assert
module~sll_m_spline_matrix_dense->module~sll_m_errors
module~sll_m_spline_matrix_dense->module~sll_m_spline_matrix_base
module~sll_m_spline_matrix_dense->module~sll_m_working_precision
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
module~~modgvec_base~~UsedByGraph
module~modgvec_base
MODgvec_base
module~modgvec_gvec_to_jorek_vars
MODgvec_gvec_to_jorek_Vars
module~modgvec_gvec_to_jorek_vars->module~modgvec_base
module~modgvec_mhd3d_vars
MODgvec_MHD3D_Vars
module~modgvec_mhd3d_vars->module~modgvec_base
module~modgvec_py_state
MODgvec_py_state
module~modgvec_py_state->module~modgvec_base
module~modgvec_readstate_vars
MODgvec_ReadState_Vars
module~modgvec_readstate_vars->module~modgvec_base
module~modgvec_transform_sfl
MODgvec_Transform_SFL
module~modgvec_transform_sfl->module~modgvec_base
proc~applyprecond
ApplyPrecond
proc~applyprecond->module~modgvec_base
proc~buildtransform_sfl
t_transform_sfl%BuildTransform_SFL
proc~buildtransform_sfl->module~modgvec_base
proc~evaluate_base_list_stz_all
evaluate_base_list_stz_all
proc~evaluate_base_list_stz_all->module~modgvec_base
proc~evaluate_base_list_tz
evaluate_base_list_tz
proc~evaluate_base_list_tz->module~modgvec_base
proc~evaluate_base_list_tz_all
evaluate_base_list_tz_all
proc~evaluate_base_list_tz_all->module~modgvec_base
proc~evaluate_base_select
evaluate_base_select
proc~evaluate_base_select->module~modgvec_base
proc~evaluate_base_tens
evaluate_base_tens
proc~evaluate_base_tens->module~modgvec_base
proc~evaluate_base_tens_all
evaluate_base_tens_all
proc~evaluate_base_tens_all->module~modgvec_base
proc~get_boozer
get_boozer
proc~get_boozer->module~modgvec_base
proc~get_boozer->module~modgvec_mhd3d_vars
proc~get_boozer_sinterp
t_sfl_boozer%Get_Boozer_sinterp
proc~get_boozer_sinterp->module~modgvec_base
proc~get_integration_points
get_integration_points
proc~get_integration_points->module~modgvec_base
proc~get_integration_points_num
get_integration_points_num
proc~get_integration_points_num->module~modgvec_base
proc~gvec_to_jorek_prepare
gvec_to_jorek_prepare
proc~gvec_to_jorek_prepare->module~modgvec_base
proc~gvec_to_jorek_prepare->module~modgvec_gvec_to_jorek_vars
proc~gvec_to_jorek_prepare->module~modgvec_readstate_vars
proc~init_base
Init_Base
proc~init_base->module~modgvec_base
proc~init_base->module~modgvec_gvec_to_jorek_vars
proc~init_base->module~modgvec_readstate_vars
proc~initmhd3d
t_functional_mhd3d%InitMHD3D
proc~initmhd3d->module~modgvec_base
proc~initmhd3d->module~modgvec_mhd3d_vars
proc~lambda_solve
Lambda_solve
proc~lambda_solve->module~modgvec_base
proc~readstatefilefromascii
ReadStateFileFromASCII
proc~readstatefilefromascii->module~modgvec_base
proc~readstatefilefromascii->module~modgvec_readstate_vars
proc~restartfromstate
RestartFromState
proc~restartfromstate->module~modgvec_base
proc~restartfromstate->module~modgvec_mhd3d_vars
proc~restartfromstate->module~modgvec_readstate_vars
proc~select_base
select_base
proc~select_base->module~modgvec_base
proc~select_base->module~modgvec_mhd3d_vars
proc~select_base_dofs
select_base_dofs
proc~select_base_dofs->module~modgvec_base
proc~select_base_dofs->module~modgvec_mhd3d_vars
proc~transform_angles_3d
Transform_Angles_3d
proc~transform_angles_3d->module~modgvec_base
proc~transform_angles_sinterp
Transform_Angles_sinterp
proc~transform_angles_sinterp->module~modgvec_base
proc~transform_sfl_init
t_transform_sfl%transform_SFL_init
proc~transform_sfl_init->module~modgvec_base
module~modgvec_gvec_to_castor3d_vars
MODgvec_gvec_to_castor3d_Vars
module~modgvec_gvec_to_castor3d_vars->module~modgvec_transform_sfl
module~modgvec_gvec_to_gene_vars
MODgvec_gvec_to_gene_Vars
module~modgvec_gvec_to_gene_vars->module~modgvec_transform_sfl
module~modgvec_gvec_to_hopr_vars
MODgvec_gvec_to_hopr_vars
module~modgvec_gvec_to_hopr_vars->module~modgvec_transform_sfl
proc~addboundaryperturbation
AddBoundaryPerturbation
proc~addboundaryperturbation->module~modgvec_mhd3d_vars
proc~analyze
Analyze
proc~analyze->module~modgvec_mhd3d_vars
proc~applybc_fstrong
ApplyBC_Fstrong
proc~applybc_fstrong->module~modgvec_mhd3d_vars
proc~buildprecond
BuildPrecond
proc~buildprecond->module~modgvec_mhd3d_vars
proc~eval_prof_r
eval_prof_r
proc~eval_prof_r->module~modgvec_readstate_vars
proc~evalaux
EvalAux
proc~evalaux->module~modgvec_mhd3d_vars
proc~evalenergy
EvalEnergy
proc~evalenergy->module~modgvec_mhd3d_vars
proc~evalforce
EvalForce
proc~evalforce->module~modgvec_mhd3d_vars
proc~evaluate_hmap
evaluate_hmap
proc~evaluate_hmap->module~modgvec_mhd3d_vars
proc~evaluate_hmap_derivs
evaluate_hmap_derivs
proc~evaluate_hmap_derivs->module~modgvec_mhd3d_vars
proc~evaluate_hmap_only
evaluate_hmap_only
proc~evaluate_hmap_only->module~modgvec_mhd3d_vars
proc~evaluate_hmap_only_pw
evaluate_hmap_only_pw
proc~evaluate_hmap_only_pw->module~modgvec_mhd3d_vars
proc~evaluate_hmap_pw
evaluate_hmap_pw
proc~evaluate_hmap_pw->module~modgvec_mhd3d_vars
proc~evaluate_jac_h_derivs
evaluate_jac_h_derivs
proc~evaluate_jac_h_derivs->module~modgvec_mhd3d_vars
proc~evaluate_jac_h_derivs_pw
evaluate_jac_h_derivs_pw
proc~evaluate_jac_h_derivs_pw->module~modgvec_mhd3d_vars
proc~evaluate_metric_derivs
evaluate_metric_derivs
proc~evaluate_metric_derivs->module~modgvec_mhd3d_vars
proc~evaluate_profile
evaluate_profile
proc~evaluate_profile->module~modgvec_mhd3d_vars
proc~evaluate_rho2_profile
evaluate_rho2_profile
proc~evaluate_rho2_profile->module~modgvec_mhd3d_vars
proc~finalize_gvec_to_jorek
finalize_gvec_to_jorek
proc~finalize_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars
proc~finalize_readstate
Finalize_ReadState
proc~finalize_readstate->module~modgvec_readstate_vars
proc~finalizemhd3d
t_functional_mhd3d%FinalizeMHD3D
proc~finalizemhd3d->module~modgvec_mhd3d_vars
proc~finalizemhd3d_evalfunc
FinalizeMHD3D_EvalFunc
proc~finalizemhd3d_evalfunc->module~modgvec_mhd3d_vars
proc~find_pest_angles_2d
find_pest_angles_2D
proc~find_pest_angles_2d->module~modgvec_mhd3d_vars
proc~find_pest_angles_2d->module~modgvec_transform_sfl
proc~get_cla_gvec_to_jorek
get_CLA_gvec_to_jorek
proc~get_cla_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars
proc~get_field
Get_Field
proc~get_field->module~modgvec_gvec_to_jorek_vars
proc~get_field->module~modgvec_readstate_vars
proc~gvec_to_jorek_writetofile_ascii
gvec_to_jorek_writeToFile_ASCII
proc~gvec_to_jorek_writetofile_ascii->module~modgvec_gvec_to_jorek_vars
proc~init
Init
proc~init->module~modgvec_mhd3d_vars
proc~init_boozer
init_boozer
proc~init_boozer->module~modgvec_mhd3d_vars
proc~init_gvec_to_jorek
init_gvec_to_jorek
proc~init_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars
proc~init_gvec_to_jorek->module~modgvec_readstate_vars
proc~init_la_from_solution
Init_LA_from_Solution
proc~init_la_from_solution->module~modgvec_mhd3d_vars
proc~initaverageaxis
InitAverageAxis
proc~initaverageaxis->module~modgvec_mhd3d_vars
proc~initializemhd3d_evalfunc
InitializeMHD3D_evalFunc
proc~initializemhd3d_evalfunc->module~modgvec_mhd3d_vars
proc~initprofilesgp
InitProfilesGP
proc~initprofilesgp->module~modgvec_mhd3d_vars
proc~initsolutionmhd3d
t_functional_mhd3d%InitSolutionMHD3D
proc~initsolutionmhd3d->module~modgvec_mhd3d_vars
proc~initsolution~2
InitSolution
proc~initsolution~2->module~modgvec_mhd3d_vars
proc~minimize
minimize
proc~minimize->module~modgvec_mhd3d_vars
proc~minimizemhd3d
t_functional_mhd3d%MinimizeMHD3D
proc~minimizemhd3d->module~modgvec_mhd3d_vars
proc~readstate
ReadState
proc~readstate->module~modgvec_readstate_vars
proc~writestatetoascii
WriteStateToASCII
proc~writestatetoascii->module~modgvec_mhd3d_vars
program~gvec_post
GVEC_POST
program~gvec_post->module~modgvec_readstate_vars
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Variables
Type
Visibility Attributes
Name
Initial
logical,
private
::
test_called
=
.FALSE.
Derived Types
Components
Type
Visibility Attributes
Name
Initial
logical,
public
::
initialized
=
.FALSE.
set to true in init, set to false in free
class(t_sBase ),
public,
ALLOCATABLE
::
s
container for radial basis
type(t_fBase ),
public
::
f
container for angular basis
Type-Bound Procedures
Functions
evaluate all degrees of freedom at given s theta zeta position (deriv=0 solution, deriv=1 first derivative d/ds)
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(in)
::
sf
self
real(kind=wp),
intent(in)
::
x (3)
s,theta,zeta
integer,
intent(in)
::
deriv (2)
=(0,0): base, =(1,0): ds, =(0,2): dtheta, =(0,3): dzeta
real(kind=wp),
intent(in)
::
DOFs (1:sf%s%nBase,1:sf%f%modes)
array of all modes and all radial dofs
Return Value
real(kind=wp)
Subroutines
allocate and initialize the type base
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(inout),
ALLOCATABLE
::
sf
self
integer,
intent(in)
::
deg_in
polynomial degree
integer,
intent(in)
::
continuity_in
continuity:
class(t_sGrid ),
intent(in),
TARGET
::
grid_in
grid information
integer,
intent(in)
::
degGP_in
gauss quadrature points: nGP=degGP+1
integer,
intent(in)
::
mn_max_in (2)
maximum mode in m and n
integer,
intent(in)
::
mn_nyq_in (2)
number of integration points
integer,
intent(in)
::
nfp_in
number of field periods
character(len=8),
intent(in)
::
sin_cos_in
can be either only sine: " sin " only cosine: " cos " or full: "sin_cos "
logical,
intent(in)
::
exclude_mn_zero_in
=true: exclude m=n=0 mode in the basis (only important if cos is in basis)
finalize the type base
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(inout)
::
sf
self
copy from input type base to self
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(inout)
::
sf
self
class(t_base ),
intent(in)
::
tocopy
compare self and input type base
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(in)
::
sf
self
class(t_base ),
intent(in)
::
tocompare
logical,
intent(out)
::
is_same
change basis from old input base to new base,
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(in)
::
sf
self
class(t_base ),
intent(in)
::
old_base
real(kind=wp),
intent(in)
::
old_data (:,:)
real(kind=wp),
intent(out)
::
sf_data (:,:)
evaluate all degrees of freedom at all Gauss Points (deriv=0 solution, deriv=1 first derivative d/ds)
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(in)
::
sf
self
integer,
intent(in)
::
deriv (2)
=(0,0): base, =(1,0): ds, =(0,2): dtheta, =(0,3): dzeta
real(kind=wp),
intent(in)
::
DOFs (1:sf%s%nBase,1:sf%f%modes)
array of all modes and all radial dofs
real(kind=wp),
intent(out)
::
y_IP_GP (sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end)
OUTPUT ARRAY OF MPI SUBDOMAIN (GP points)
evaluate all degrees of freedom at all Gauss Points , for deriv=0 in s and deriv=0,theta,zeta in f
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(in)
::
sf
self
real(kind=wp),
intent(in)
::
DOFs (1:sf%s%nBase,1:sf%f%modes)
array of all modes and all radial dofs
real(kind=wp),
intent(out),
optional
::
y_IP_GP (sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end)
value, OUTPUT ARRAY OF MPI SUBDOMAIN (GP points)
real(kind=wp),
intent(out),
optional
::
dy_dthet_IP_GP (sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end)
derivative in theta, OUTPUT ARRAY OF MPI SUBDOMAIN (GP points)
real(kind=wp),
intent(out),
optional
::
dy_dzeta_IP_GP (sf%f%mn_IP,sf%s%nGP_str:sf%s%nGP_end)
derivative in zeta, OUTPUT ARRAY OF MPI SUBDOMAIN (GP points)
test base variable
Arguments
Type
Intent Optional Attributes
Name
class(t_base ),
intent(inout)
::
sf
self