public subroutine make_flock_of_fieldlines(flock, max_n_fieldlines, iota, field, M_pol, N_tor, nfp, split_maxima)
proc~~make_flock_of_fieldlines~~UsesGraph
proc~make_flock_of_fieldlines
make_flock_of_fieldlines
module~fieldline_labels
fieldline_labels
proc~make_flock_of_fieldlines->module~fieldline_labels
module~constants
constants
module~fieldline_labels->module~constants
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.
Build a flock of field lines spanning the region between neighbouring
maxima contours centered around the minima contours through the field origin.
The field lines are placed equidistant in the label xi, spaced so that the
discrete set still displays stellarator symmetry. To achieve this symmetry
respecting spacing with < max_n_fieldlines, iota needs to be approximated.
Its approximation is then used as rotational transform of the field lines.
M_pol and N_tor are integer-valued reals giving the dominant helicity.
N_tor must equal nfp when nonzero; use N_tor=0, M_pol=1 for QA.
If the violation is too strong, maxima of contours of the omnigenous field
are not merely deformed, but also split. Results should be treated with caution.
Arguments
Type
Intent Optional Attributes
Name
type(flock_of_fieldlines_t ),
intent(inout)
::
flock
integer,
intent(in)
::
max_n_fieldlines
upper bound on number of field lines
real(kind=dp),
intent(in)
::
iota
rotational transform of field lines
class(field_t ),
intent(in)
::
field
magnetic field representation in Boozer coordinates
real(kind=dp),
intent(in)
::
M_pol
poloidal helicity mode number; may be negative
real(kind=dp),
intent(in)
::
N_tor
toroidal helicity mode number; must equal nfp when nonzero
real(kind=dp),
intent(in)
::
nfp
number of field periods; must be positive integer
integer,
intent(out),
optional
::
split_maxima
1 if a split of maxima contours was detected
proc~~make_flock_of_fieldlines~~CallsGraph
proc~make_flock_of_fieldlines
make_flock_of_fieldlines
proc~get_labels
get_labels
proc~make_flock_of_fieldlines->proc~get_labels
proc~make_flock_from_labels
make_flock_from_labels
proc~make_flock_of_fieldlines->proc~make_flock_from_labels
proc~calc_iota_p
calc_iota_p
proc~get_labels->proc~calc_iota_p
proc~linspace
linspace
proc~get_labels->proc~linspace
proc~rational_approx
rational_approx
proc~get_labels->proc~rational_approx
compute_B_mod
compute_B_mod
proc~make_flock_from_labels->compute_B_mod
get_covariant_components
get_covariant_components
proc~make_flock_from_labels->get_covariant_components
interface~not_same
not_same
proc~make_flock_from_labels->interface~not_same
none~get_theta
fieldline_t%get_theta
proc~make_flock_from_labels->none~get_theta
proc~calc_fieldline_integrals
calc_fieldline_integrals
proc~make_flock_from_labels->proc~calc_fieldline_integrals
proc~make_flock_from_labels->proc~calc_iota_p
proc~failed_sanity_check
failed_sanity_check
proc~make_flock_from_labels->proc~failed_sanity_check
proc~find_maxima_along_fieldline
find_maxima_along_fieldline
proc~make_flock_from_labels->proc~find_maxima_along_fieldline
proc~get_global_b_max
get_global_B_max
proc~make_flock_from_labels->proc~get_global_b_max
proc~is_not_integer
is_not_integer
proc~make_flock_from_labels->proc~is_not_integer
proc~make_flock_from_labels->proc~linspace
proc~pick_maximum_on_each_side
pick_maximum_on_each_side
proc~make_flock_from_labels->proc~pick_maximum_on_each_side
proc~suspect_omnigenous_origin_not_minimum
suspect_omnigenous_origin_not_minimum
proc~make_flock_from_labels->proc~suspect_omnigenous_origin_not_minimum
rel_accuracy_B
rel_accuracy_B
proc~make_flock_from_labels->rel_accuracy_B
proc~integrate_1d_substituted
integrate_1d_substituted
proc~calc_fieldline_integrals->proc~integrate_1d_substituted
proc~b_mod_along_fieldline
B_mod_along_fieldline
proc~find_maxima_along_fieldline->proc~b_mod_along_fieldline
proc~db_dphi_along_fieldline
dB_dphi_along_fieldline
proc~find_maxima_along_fieldline->proc~db_dphi_along_fieldline
proc~find_local_maxima
find_local_maxima
proc~find_maxima_along_fieldline->proc~find_local_maxima
proc~set_field_and_fieldline
set_field_and_fieldline
proc~find_maxima_along_fieldline->proc~set_field_and_fieldline
proc~unset_field_and_fieldline
unset_field_and_fieldline
proc~find_maxima_along_fieldline->proc~unset_field_and_fieldline
proc~suspect_omnigenous_origin_not_minimum->compute_B_mod
proc~suspect_omnigenous_origin_not_minimum->proc~b_mod_along_fieldline
proc~suspect_omnigenous_origin_not_minimum->proc~db_dphi_along_fieldline
proc~find_global_extrema
find_global_extrema
proc~suspect_omnigenous_origin_not_minimum->proc~find_global_extrema
proc~find_local_minima
find_local_minima
proc~suspect_omnigenous_origin_not_minimum->proc~find_local_minima
proc~suspect_omnigenous_origin_not_minimum->proc~set_field_and_fieldline
proc~suspect_omnigenous_origin_not_minimum->proc~unset_field_and_fieldline
proc~b_mod_along_fieldline->compute_B_mod
proc~b_mod_along_fieldline->none~get_theta
proc~db_dphi_along_fieldline->none~get_theta
compute_B_and_dB_dx
compute_B_and_dB_dx
proc~db_dphi_along_fieldline->compute_B_and_dB_dx
proc~find_global_extrema->proc~linspace
proc~find_local_maxima->interface~not_same
proc~find_local_maxima->proc~linspace
proc~find_local_minima->proc~find_local_maxima
proc~integrate_1d
integrate_1d
proc~integrate_1d_substituted->proc~integrate_1d
proc~set_field_and_fieldline->proc~unset_field_and_fieldline
qag
qag
proc~integrate_1d->qag
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
proc~~make_flock_of_fieldlines~~CalledByGraph
proc~make_flock_of_fieldlines
make_flock_of_fieldlines
program~main
main
program~main->proc~make_flock_of_fieldlines
Nodes of different colours represent the following:
Graph Key
Subroutine
Subroutine
Function
Function
Interface
Interface
Type Bound Procedure
Type Bound Procedure
Unknown Procedure Type
Unknown Procedure Type
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.