Procedures

ProcedureLocationProcedure TypeDescription
almost_equal helpers_m Interface

Check equality between single or double precision numbers

almost_equal_double helpers_m Function

Checks whether (a-b) / max(a,eps) within tolerance

almost_equal_single helpers_m Function

Checks whether (a-b) / max(a,eps) within tolerance

apply_abstract splitting_m Interface
apply_gauss_seidel_cpu splitting_m Interface
apply_gauss_seidel_redblack_cpu splitting_m Interface
apply_jacobi_cpu splitting_m Interface
binomial_coefficient_r elementary_functions_m Function

Computes binomial coefficient n over k Returns -1 for invalid input, i.e. n or k < 0 or k > n

bnd_types_to_bnd_descrs boundaries_perp_m Subroutine
btor slab_equilibrium_m Function

magnetic field strength normalised = 1

btor dommaschk_equilibrium_m Function

Evaluates the poloidal component of the vacuum magnetic field B according to B_phi = 1/R dV/dphi

btor cerfons_equilibrium_m Function
build_boundary mesh_cart_m Interface
build_cart mesh_cart_m Interface
build_cart_slab mesh_cart_m Interface
build_connectivity mesh_cart_m Interface
build_district mesh_cart_m Interface
build_ghost_layer mesh_cart_m Interface
build_helmholtz_csr helmholtz_operator_m Subroutine

Builds Helmholtz matrix

build_patch mesh_cart_m Interface
build_pinfo mesh_cart_m Interface
build_redblack mesh_cart_m Interface
build_shaped_cart_arrays mesh_cart_m Interface
bx slab_equilibrium_m Function

magnetic field component bx = 0

bx dommaschk_equilibrium_m Function

Evaluates the radial component of the vacuum magnetic field B according to B_R = dV/dR

bx cerfons_equilibrium_m Function
by slab_equilibrium_m Function

magnetic field component by = 0

by dommaschk_equilibrium_m Function

Evaluates the radial component of the vacuum magnetic field B according to B_Z = dV/dZ

by cerfons_equilibrium_m Function
calc_dphi map_factory_m Function

Calculates the difference in toroidal angle dphi between phi_base and phi_target, in the direction phi_direction. The maximum dphi is set by dphi_max, and extra turns can be added with n_turns.

cart_to_mesh_index mesh_cart_m Interface
cart_to_polar coords_polar_m Subroutine

Coordinate transformation from polar to Cartesian

check_fitting_coef dommaschk_equilibrium_m Subroutine

Check fitting_coef for consistency. The first condition (from Eq. 12 in [*]) is strict, while the second and third (from Eq. 13a) only enforce stellarator symmetry, which can be violated. Hence, only a warning is provided there.

check_privflux_regions analytic_divertor_equilibrium_m Subroutine

For simple X-point geometries, can set any points below the X-point as private flux if not in the SOL

communicate_matrixmpi mpi_mapping_auxiliaries_m Subroutine

Assembles a global CSR matrix, which was built partially on individual processes

complete_support_map auxiliaries_test_diffusion_m Subroutine

Completes the operators for the support operator method - Turns map matrices qsupp into parallel gradient matrices - Establishes parallel divergence matrices psupp

compute_bndnmn_matrix_row boundaries_perp_m Subroutine

Computes single row of Neumann boundary matrix

connection_length connection_length_m Function

It computes the connection length for the field line defined by x, y, phi (the distance from boundary to boundary). If (x, y, phi) is located inside the wall, the output is negative. If (x, y, phi) is located in the closed flux surface region, the output is the largest allowable number for PARALLAX precision. If the boundary is reached along the field line, but only in one direction, then the routine will return with the arclength to the found boundary point plus the arclength up to dphi_max in the other direction.

convert_descriptor_char_int descriptors_m Subroutine

converts character, e.g. as specified in parameter files, into actual (integer) descriptor

copy multigrid_m Subroutine

Copies the type to multigrid_copy, setting the internal pointer to mesh_finest

create_abstract solver3d_m Interface
create_abstract splitting_m Interface
create_cart_map_matrix polar_map_factory_m Subroutine

Creates matrix that maps a field from polar mesh to Cartesian mesh (only for closed field line region)

create_CERFACS solver3d_m Interface
create_closed_polygon2d_t polygon_m Function
create_copy csrmat_m Subroutine

Creates a copy of the matrix

create_equilibrium equilibrium_factory_m Subroutine

Creates the selected equilibrium specified by identifier

create_flux_surface_average_csr zonal_averages_factory_m Subroutine

Creates a matrix to compute flux surface average from Cartesian field

create_flux_surface_average_csr_viaaddvols zonal_averages_factory_m Subroutine

Constructs flux surface average matrix via adding volumes of adjacent surfaces

create_gauss_seidel_cpu splitting_m Interface
create_gauss_seidel_redblack_cpu splitting_m Interface
create_jacobi_cpu splitting_m Interface
create_limiting_polygon2d_t polygon_m Function
create_map_matrix map_factory_m Interface
create_mpcsr multigrid_m Interface
create_mrcsr multigrid_m Interface
create_mrcsr_inner multigrid_m Interface
create_multigrid_solver multigrid_solver_m Interface
create_PIM solver3d_m Interface
create_polar_map_matrix polar_map_factory_m Subroutine

Creates matrix that maps a field from Cartesian to polar mesh

create_surface_average_csr zonal_averages_factory_m Subroutine

Creates a matrix to surface average from Cartesian field

csr_random_init csr_samples_m Subroutine

Fills up matrix a with random values

csr_residuum csrmat_m Subroutine

Computes the residuum ||Ax-b|| / (||b||+eps)

csr_times_vec csrmat_m Subroutine

Multiplies matrix with vector y = A*x Thread safe, i.e. can be called from within parallel region

csr_times_vec_single csrmat_m Function

Computes element row of vector y = A*x Thread safe, i.e. can be called from within parallel region

csr_transpose csrmat_m Subroutine

Transposes matrix a

csr_transpose csrmat_m Subroutine

Transposes matrix a

cxx_debug_info PAccX_m Interface
cxx_destroy PAccX_m Interface
cxx_get_device_count device_handling_m Interface
cxx_init PAccX_m Interface
cxx_set_device device_handling_m Interface
cxx_solve PAccX_m Interface
cxx_sync_device device_handling_m Interface
cxx_update PAccX_m Interface
cycle multigrid_solver_m Interface
deallocate_shaped_cart_arrays mesh_cart_m Interface
debug slab_equilibrium_m Subroutine

Prints to console information about the equilibrium

debug dommaschk_equilibrium_m Subroutine
debug cerfons_equilibrium_m Subroutine
destructor csrmat_m Subroutine

destructor, frees memory

destructor polar_grid_m Interface
destructor_CERFACS solver3d_m Interface
destructor_gauss_seidel_cpu splitting_m Interface
destructor_gauss_seidel_redblack_cpu splitting_m Interface
destructor_jacobi_cpu splitting_m Interface
destructor_multigrid multigrid_m Subroutine

Frees memory associated with multigrid

destructor_multigrid_intermediate_data multigrid_m Subroutine

Frees memory associated with multigrid_intermediate_data

destructor_multigrid_solver multigrid_solver_m Subroutine

Frees memory associated with multigrid solver

destructor_PIM solver3d_m Interface
determine_interpolation_stencil mesh_cart_m Interface
diffvecs_nrm csrmat_m Function

computes norm of difference of two vectors, i.e. ||x-y|| / n

digit_sum_csr helpers_m Subroutine

Calculates the digit sum of the csr matrix mat

display csrmat_m Subroutine

displays some information on matrix

display slab_equilibrium_m Subroutine

Prints to console information about the equilibrium

display dommaschk_equilibrium_m Subroutine
display cerfons_equilibrium_m Subroutine
display_mesh_cart mesh_cart_m Interface
display_parameters_helmholtz_solver_factory helmholtz_solver_factory_m Subroutine

Displays parameters

display_polar_grid polar_grid_m Interface
district divertor_equilibrium_m Function
district slab_equilibrium_m Function

returns in which district point (x, y, phi) is (see module descriptors_m)

district dommaschk_equilibrium_m Function
district_flux_defined divertor_equilibrium_m Function

Returns a descriptor for a given point, where outer boundary is based on limiting flux surface(s)

district_wall_defined divertor_equilibrium_m Function

Returns a descriptor for a given point, where outer boundary is based on divertor and exclusion polygons

epol divertor_equilibrium_m Subroutine
epol slab_equilibrium_m Subroutine

unit vector along poloidal (along flux surface) direction

epol dommaschk_equilibrium_m Subroutine
erad divertor_equilibrium_m Subroutine
erad slab_equilibrium_m Subroutine

unit vector along radial (across flux surface) direction

erad dommaschk_equilibrium_m Subroutine
exchange_mesh_mpi mesh_cart_m Interface
exclude_third_quadrant_cerfons helpers_m Function

Excludes third quadrant in field line tracing for cerfons equilibrium

exclude_third_quadrant_circular helpers_m Function

Excludes third quadrant in field line tracing for circular equilibrium

expose_data csrmat_m Subroutine

Exposes csrmat data through csrmat_data_t object

expose_data multigrid_m Interface
expose_data mesh_cart_m Interface
expose_hcsr multigrid_solver_m Interface
expose_hdiags_inv multigrid_solver_m Interface
expose_multigrid_data multigrid_solver_m Interface
extrapolate_boundary_points multigrid_m Interface
extrapolate_ghost_points boundaries_perp_m Subroutine

Extrapolates ghost points via inverse distance extrapolation

factorial elementary_functions_m Function

Factorial of integer n; wrapper around intrinsic gamma function. Output is real to increase overflow threshold. For overflow case, result = Infinity; for n < 0, result = NaN.

factory_petsc helmholtz_solver_factory_m Subroutine

Factory routine for 2D Helmholtz solver, type PETSC. Only the finest mesh of the multigrid will be used.

fci_norms auxiliaries_test_diffusion_m Subroutine

Computes L1, L2 and Lsup norm of solution Integretaion is performed with weighing of FCI flux box volumes

finalize_snapsfile snapshots_test_diffusion_m Subroutine

Closes snapsfile

find_zero root_finding_m Subroutine

Finds the zero of function f within interval [a,b] Wrapper for Fortran 77 routine in zeroin.f

findindex_2d list_operations_m Subroutine

Searches in grid lists (li, lj) if it contains point (i, j) and returns its index in lg. If index cannot be found, returns lg=0 Note: (li, lj) shall be uniqued tuple

findloc_i list_operations_m Function

Finds first index i where arr(i) = val. Returns 0 if val not found or size of array is 0

Read more…
findloc_i list_operations_m Function

Finds first index i where arr(i) = val. Returns 0 if val not found or size of array is 0

Read more…
fluxsurf_area polar_grid_m Interface
fluxsurf_vol polar_grid_m Interface
gauss_laguerre gauss_quadrature_m Subroutine

Calculates the nodes and weights to perform Gauss-Laguerre quadrature on the interval [0, infinity)

Read more…
gauss_legendre gauss_quadrature_m Subroutine

Calculates the nodes and weights to perform Gauss-Legendre quadrature on the interval [-1, 1]

Read more…
gaussian elementary_functions_m Function

Gaussian exp[-(x-x0)^2/wx^2]

generate_poincare_data diagnose_poincare Subroutine

For a given equilibrium equi, this routine generates Poincare data on the toroidal planes with angles given in phi_array.

Read more…
get_cart_i mesh_cart_m Interface
get_cart_j mesh_cart_m Interface
get_circular_dtheta_limiter params_equi_circular_m Function
get_circular_q_ref params_equi_circular_m Function
get_circular_qtype params_equi_circular_m Function
get_circular_rho_limiter params_equi_circular_m Function
get_circular_rhomax params_equi_circular_m Function
get_circular_rhomin params_equi_circular_m Function
get_circular_rhoq_ref params_equi_circular_m Function
get_circular_shear params_equi_circular_m Function
get_circular_theta_limiter params_equi_circular_m Function
get_circular_toroidal_hel_amp params_equi_circular_toroidal_m Function
get_circular_toroidal_hel_m params_equi_circular_toroidal_m Function
get_circular_toroidal_hel_n params_equi_circular_toroidal_m Function
get_circular_toroidal_hel_rho params_equi_circular_toroidal_m Function
get_circular_toroidal_hel_sigma params_equi_circular_toroidal_m Function
get_circular_toroidal_kiss_boundary_on params_equi_circular_toroidal_m Function
get_circular_toroidal_q_0 params_equi_circular_toroidal_m Function
get_circular_toroidal_q_quad_param params_equi_circular_toroidal_m Function
get_circular_toroidal_rhomax params_equi_circular_toroidal_m Function
get_circular_toroidal_rhomin params_equi_circular_toroidal_m Function
get_communicator comm_handling_m Function

Returns the MPI communicator

get_device_count device_handling_m Subroutine

Get the number of available devices for the backend specified.

get_district mesh_cart_m Interface
get_dommaschk_bndry_from_file params_equi_dommaschk_m Function
get_dommaschk_exclusion_file params_equi_dommaschk_m Function
get_dommaschk_exclusion_from_file params_equi_dommaschk_m Function
get_dommaschk_exclusion_var params_equi_dommaschk_m Function
get_dommaschk_fitting_coef params_equi_dommaschk_m Function
get_dommaschk_inner_bndry_file params_equi_dommaschk_m Function
get_dommaschk_inner_bndry_var params_equi_dommaschk_m Function
get_dommaschk_l_pol params_equi_dommaschk_m Function
get_dommaschk_m_tor_consecutive params_equi_dommaschk_m Function
get_dommaschk_num_field_periods params_equi_dommaschk_m Function
get_dommaschk_outer_bndry_file params_equi_dommaschk_m Function
get_dommaschk_outer_bndry_var params_equi_dommaschk_m Function
get_dommaschk_phi0 params_equi_dommaschk_m Function
get_dommaschk_rho_file params_equi_dommaschk_m Function
get_dommaschk_rho_from_file params_equi_dommaschk_m Function
get_dommaschk_rhomax params_equi_dommaschk_m Function
get_dommaschk_rhomin params_equi_dommaschk_m Function
get_dommaschk_x0 params_equi_dommaschk_m Function
get_dommaschk_xmax params_equi_dommaschk_m Function
get_dommaschk_xmin params_equi_dommaschk_m Function
get_dommaschk_y0 params_equi_dommaschk_m Function
get_dommaschk_ymax params_equi_dommaschk_m Function
get_dommaschk_ymin params_equi_dommaschk_m Function
get_drho polar_grid_m Interface
get_dtheta polar_grid_m Interface
get_equilibrium_identifier equilibrium_factory_m Function

Returns equilibrium identifier (see header) if prescribed as string

get_first_idx multigrid_m Function

Returns first_idx at lvl

get_first_idx_boundary multigrid_m Function

Returns first_idx_boundary at lvl

get_first_idx_boundary_lvl_pointer multigrid_m Function

Returns a pointer to the first_idx_boundary_lvl array

get_first_idx_inner multigrid_m Function

Returns first_idx_inner at lvl

get_first_idx_inner_lvl_pointer multigrid_m Function

Returns a pointer to the first_idx_inner_lvl array

get_first_idx_lvl_pointer multigrid_m Function

Returns a pointer to the first_idx_lvl array

get_hcsr_finest_pointer multigrid_solver_m Function

Returns pointer to Helmholtz matrix on finest level

get_index_neighbor mesh_cart_m Interface
get_l_pol dommaschk_equilibrium_m Function
get_lvl mesh_cart_m Interface
get_lvst mesh_cart_m Interface
get_m_tor_consecutive dommaschk_equilibrium_m Function
get_mesh_pointer multigrid_m Function

Returns mesh on desired level

get_mpcsr_pointer multigrid_m Function

Returns pointer to prolongation matrix

get_mpipattern mpi_mapping_auxiliaries_m Subroutine

Divides an integer range into chunks, that can be worked on with separate MPI-processes

get_mrcsr_pointer multigrid_m Function

Returns pointer to restriction matrix

get_n_points mesh_cart_m Interface
get_n_points_black mesh_cart_m Interface
get_n_points_boundary mesh_cart_m Interface
get_n_points_ghost mesh_cart_m Interface
get_n_points_inner mesh_cart_m Interface
get_n_points_red mesh_cart_m Interface
get_nlvls multigrid_m Function

Returns nlvls

get_np multigrid_m Function

Returns the number of total mesh points at the given level

get_np_boundary multigrid_m Function

Returns the number of boundary mesh points at the given level

get_np_inner multigrid_m Function

Returns the number of inner mesh points at the given level

get_np_inner_total multigrid_m Function

Returns number of inner mesh points sumed over all levels

get_np_total multigrid_m Function

Returns number of mesh points sumed over all levels

get_nrho polar_grid_m Interface
get_ntheta polar_grid_m Interface
get_num_field_periods dommaschk_equilibrium_m Function
get_phi polar_grid_m Interface
get_phi mesh_cart_m Interface
get_rho polar_grid_m Interface
get_rhopol_max polar_grid_m Interface
get_rhopol_min polar_grid_m Interface
get_salpha_B_ref params_equi_salpha_m Function
get_salpha_dtheta_limiter params_equi_salpha_m Function
get_salpha_L_ref params_equi_salpha_m Function
get_salpha_minor_r params_equi_salpha_m Function
get_salpha_q_ref params_equi_salpha_m Function
get_salpha_rho_limiter params_equi_salpha_m Function
get_salpha_rhomax params_equi_salpha_m Function
get_salpha_rhomin params_equi_salpha_m Function
get_salpha_shear params_equi_salpha_m Function
get_salpha_theta_limiter params_equi_salpha_m Function
get_size_neighbor mesh_cart_m Interface
get_slab_boxsize params_equi_slab_m Function
get_slab_sol params_equi_slab_m Function
get_slab_yperiodic params_equi_slab_m Function
get_spacing_c mesh_cart_m Interface
get_spacing_f mesh_cart_m Interface
get_stderr screen_io_m Function

Returns the stdout in PARALLAX

get_stdout screen_io_m Function

Returns the stdout in PARALLAX

get_surrounding_indices mesh_cart_m Interface
get_theta polar_grid_m Interface
get_x mesh_cart_m Interface
get_xmin mesh_cart_m Interface
get_y mesh_cart_m Interface
get_ymin mesh_cart_m Interface
getdata_fwdbwdplane mpi_mapping_auxiliaries_m Interface

Overloading routine getdata_fwdbwdplane for integer and real data

handle_error error_handling_m Subroutine

Logs an error to stderr and stops the program. If status_code is PARALLAX_SUCCESS, this subroutine will do nothing.

Read more…
handle_error_netcdf error_handling_m Subroutine

Wrapper of handle error for calls of NetCDF functions. Checks for NetCDF errors and prints a standardized error message.

heaviside elementary_functions_m Function

Heaviside function, i.e. discontinuous step function

helmholtz_single_boundary helmholtz_operator_m Function

Computes helmholtz operator for single boundary point

helmholtz_single_ghost helmholtz_operator_m Function

Computes helmholtz operator for single boundary point

helmholtz_single_inner helmholtz_operator_m Function

Computes helmholtz operator for single inner grid point

helmholtz_solver_factory helmholtz_solver_factory_m Interface
impose_default_device_affinity device_handling_m Subroutine

Assign devices to MPI ranks in order. Only works if number of ranks is greater or equal to number of devices Device assigned to rank rr is (rr modulo total_number_of_devices).

in_vessel divertor_equilibrium_m Function

Returns whether a point (x, y, phi) lies inside the divertor vessel Not especially performant, would be better to check if the point is outside of flux limits rather than checking the full district routine

in_vessel slab_equilibrium_m Function

For slab always inside vessel

in_vessel dommaschk_equilibrium_m Function
init slab_equilibrium_m Subroutine

Initialises the slab equilibrium

init dommaschk_equilibrium_m Subroutine
init cerfons_equilibrium_m Subroutine
init_B_norm dommaschk_equilibrium_m Subroutine

Determine the magnetic field normalization with the un-normalized value of btor evaluated at the location of the magnetic axis. This is used to normalize all subsequent magnetic field calculations.

init_CD_CN dommaschk_equilibrium_m Subroutine

Compute and store C^D_{m,k}(R) and C^N_{m,k}(R) (Eq. 31 and 32)

init_Imn dommaschk_equilibrium_m Subroutine

Compute and store D_{m,n} and N_{m,n} (as used in Eq. 12 in [*]) via Eq. 3

init_mag_axis_loc dommaschk_equilibrium_m Subroutine

Initializes two arrays (equidistant in phi) of x- and y-coordinates of magnetic axis within the first field period calculated via field line tracing. These are used as data points for fast interpolation in 'mag_axis_loc'

init_mesh_cart mesh_cart_m Interface
init_rho_array dommaschk_equilibrium_m Subroutine

Calculates the value of rho for every surface in the given rho file. Used later in rho calculation, to interpolate between surfaces

initialize_multigrid multigrid_m Interface
initialize_multigrid_solver multigrid_solver_m Interface
initialize_np_and_idx_arrays multigrid_m Interface
initialize_polar_grid polar_grid_m Interface
initialize_snapsfile snapshots_test_diffusion_m Subroutine

Creates a snapfile and sets dimension and variables

insertion_sort list_operations_m Subroutine

Sorts integer tuple arr in ascending order according to row decr

interpol1d interpolation_m Function

Performs a 1D polynomial interpolation

interpol_coeffs interpolation_m Subroutine

computes coefficients of interpolation such that quantity at position x,y can be computed as

Read more…
intersection_lines euclidean_geo_m Subroutine

Computes intersection point of two lines going through points [pa, qa] and [pb, qb]

is_axisymmetric divertor_equilibrium_m Function
is_axisymmetric slab_equilibrium_m Function
is_axisymmetric dommaschk_equilibrium_m Function
is_boundary_point mesh_cart_m Interface
is_ghost_point mesh_cart_m Interface
is_inner_point mesh_cart_m Interface
is_master comm_handling_m Function

Returns if the current proc is the MPI master or not

is_yperiodic slab_equilibrium_m Function

Returns .true. if the equilibrium is y periodic and .false. otherwise

jacobian divertor_equilibrium_m Function
jacobian slab_equilibrium_m Function

Jacobian of geometry (J=1)

jacobian dommaschk_equilibrium_m Function
jacobian_polar coords_polar_m Function

Jacobian of polar coordinate system To compute derivatives on rho, finite difference is used N.B. currently only axisymmetric (2D), proper inclusion of toroidal phi will change this function

linspace array_generation_m Function

Returns an array of evenly spaced points over an interval from left to right. The endpoints on both sides can optionally be included. Optionally staggering can be used which effectively shifts all points by half the grid spacing to the right, creating a staggered grid. In that case the rightmost point will exceed the right boundary specified.

mag_axis_loc divertor_equilibrium_m Subroutine

Returns the coordinates of magnetic axis

mag_axis_loc slab_equilibrium_m Subroutine

Returns the coordinates of magnetic axis

mag_axis_loc dommaschk_equilibrium_m Subroutine

Returns the coordinates of magnetic axis

make_polygon divertor_equilibrium_m Subroutine

Initialises a polygon object "polygon" with points {X_points, Y_points} If local_min and local_max are given, a limiting_polygon2d_t is created, which stores these limits for later recall N.b. X_points and Y_points should be given normalised

make_polygon_from_params divertor_equilibrium_m Subroutine

Makes polygon from

multigrid_read_netcdf multigrid_m Interface
multigrid_write_netcdf multigrid_m Interface
nf90_handle_err screen_io_m Subroutine

Checks for NetCDF errors and prints a standardized error message

normal_to_boundary mesh_cart_m Interface
on_grid divertor_equilibrium_m Function

Returns whether a point (x, y, phi) lies on the computational grid

parallel_diffusion_shortley_weller auxiliaries_test_diffusion_m Subroutine

Parallel diffusion according to Shortley-Weller scheme

parallel_diffusion_supp auxiliaries_test_diffusion_m Subroutine

Parallel divergence (from staggered to full mesh)

parallel_divergence_supp auxiliaries_test_diffusion_m Subroutine

Parallel divergence (from staggered to full mesh)

parallel_gradient_supp auxiliaries_test_diffusion_m Subroutine

Parallel gradient (from full to staggered mesh)

perf_get_time_last perf_m Function

Returns time [s] spent in last profiling section

perf_print perf_m Subroutine

Prints profiling statistics to screen

perf_reset perf_m Subroutine

Resets profiling (if nm is not present, all profiling sections are reset)

perf_start perf_m Subroutine

Starts profiling

perf_stop perf_m Subroutine

Starts profiling

point_inside mesh_cart_m Interface
polar_to_cart coords_polar_m Subroutine

Coordinate transformation from Cartesian to polar

polyder polynomials_m Function

Returns the derivative of a 1D polynomial given by its coefficients array

polygon_projection divertor_equilibrium_m Subroutine

Find the x and y components of a unit vector along the nearest polygon edge The polygon boundary dV is expected to have positive (counterclockwise) orientation Can check this with signed_area (in initialisation)

polyval polynomials_m Interface
print_usage diagnose_poincare Subroutine

Prints the intended usage of the executable

progress_bar screen_io_m Subroutine

prints a progress bar for loops to screen

prolong multigrid_m Interface
psi cerfons_equilibrium_m Function
rank_list list_operations_m Interface
read_bndry_polygons dommaschk_equilibrium_m Interface
read_circtor_bnd_params params_equi_circular_toroidal_m Subroutine

Reads parameters for describing boundary segments

read_equi_params_flare_type params_equi_flare_m Subroutine

Reads the equi_params_flare_type namelist from the given file

read_flare_bnd_params params_equi_flare_m Subroutine

Reads parameters for describing boundary segments

read_flare_equi_params params_equi_flare_m Subroutine

Reads parameters for a specific equilibrium type of flare

read_flare_rho_params params_equi_flare_m Subroutine

Reads parameters for describing flux surfaces *rho)

read_netcdf csrmat_m Subroutine

Reads csr matrix from file

read_netcdf_helmholtz helmholtz_netcdfio_m Subroutine

Reads a Helmholtz problem to NETCDF file

read_netcdf_mesh_cart mesh_cart_m Interface
read_netcdf_polar polar_grid_m Interface
read_params_circular params_equi_circular_m Subroutine

Reads the equi circular namelist from the given filename

read_params_circular_toroidal params_equi_circular_toroidal_m Subroutine

Reads the equi_circular_toroidal namelist from the given file

read_params_dommaschk params_equi_dommaschk_m Subroutine
read_params_salpha params_equi_salpha_m Subroutine

Reads the equi salpha namelist from the given filename

read_params_slab params_equi_slab_m Subroutine

Reads the equi slab namelist from the given filename

read_rho_polygons dommaschk_equilibrium_m Interface
relative_difference reldiff_m Function
reorder mesh_cart_m Interface
residuum multigrid_solver_m Interface
restrict multigrid_m Interface
restrict_inner multigrid_m Interface
rho divertor_equilibrium_m Function

Flux surface label normalised such that rho = 0 at the magnetic axis, and rho = 1 at the seperatrix

rho slab_equilibrium_m Function

flux surface label = x

rho dommaschk_equilibrium_m Function
safety_factor safety_factor_m Function

Compute safety factor q(rho)

set_device_id device_handling_m Subroutine

Given a specific backend, set the device to use

set_error_mode error_handling_m Subroutine

Sets the way PARALLAX responds to internal errors. When set to errors return, the error is logged into stderr without program termination, expecting that the error will be handled by the calling routine. When set to errors are fatal, the code will be terminated with error stop.

set_perpbnds boundaries_perp_m Subroutine

Sets non-homogeneous perpendicular boundary condition for some quantity u

set_phi mesh_cart_m Interface
set_phi_coarse multigrid_m Subroutine

Sets phi value on coarse meshes to a new value On finest mesh that is pointed to, needs to be set separately

set_stderr screen_io_m Subroutine

Redirects the stderr in PARALLAX to the given unit

set_stdout screen_io_m Subroutine

Redirects the stdout in PARALLAX to the given unit

set_tolerance fieldline_tracer_m Subroutine

Sets the DOP853 relative and absolute error tolerances for each equation solved during the field line tracing

setup_comm comm_handling_m Subroutine

Sets the communication to the given communicator. Allows to change the rank of the master proc.

shortest_dist_to_bound connection_length_m Subroutine

It computes the shortest distance to the boundary along B. If (x, y, phi) is located inside the wall, the output is negative. If (x, y, phi) is located in the closed flux surface region, the output is the largest allowable number for PARALLAX precision.

solout_none safety_factor_m Subroutine

An empty function needed in order to run the field line tracer

solve_abstract solver3d_m Interface
solve_CERFACS solver3d_m Interface
solve_PIM solver3d_m Interface
solver3d_factory solver3d_factory_m Subroutine

Factory routine for solver3d

sort_and_sum list_operations_m Subroutine

Uniques and sorts values according to j-ascending ordering Same j-values are summed up in val

sort_row list_operations_m Subroutine

Simple bubble sort for small arrays. Different from the sort_and_sum function below as it does not include the summed-up part.

sort_tuples list_operations_m Subroutine

Sorts integer tuples arr in ascending order, where pecedence of rows in sorting is prescribed

sortsum csrmat_m Subroutine

sorts and sums entries in ascending j-order for each row

step_hermite elementary_functions_m Function

Smooth step function based on Hermite interpolation exactly zero for x < wx/2 and one for x > wx/2 see https://en.wikipedia.org/wiki/Smoothstep

step_tanh elementary_functions_m Function

Smooth step function based on hyperbolic tangent

sync_device device_handling_m Subroutine

Get the number of available devices for the backend specified.

testfun_co testfunctions_m Function

Test function for polarisation coefficeint

testfun_dudrhon testfunctions_m Function

Gradient normal to flux surface label, via finite difference on analytic solution with small grid distance

testfun_helm_u testfunctions_m Function
testfun_lambda testfunctions_m Function

Test function for lambda

testfun_u testfunctions_m Function

Test_function u

testfun_xi testfunctions_m Function

Test function for xi

trace fieldline_tracer_m Subroutine

Performs integration along field line. If condition is present, performs field line tracing while condition is true

unique_tuples list_operations_m Subroutine

Removes duplicate entries from integer tuple arr

update_multigrid_solver multigrid_solver_m Interface
write_circtor_bnd_params params_equi_circular_toroidal_m Subroutine

Writes parameters for describing boundary segments

write_equi_params_flare_type params_equi_flare_m Subroutine

Writes the equi_params_flare_type namelist

write_flare_bnd_params params_equi_flare_m Subroutine

Writes parameters for describing boundary segments

write_flare_equi_params params_equi_flare_m Subroutine

Writes parameters for a specific equilibrium type of flare

write_flare_rho_params params_equi_flare_m Subroutine

Writes parameters for describing rho segments

write_netcdf csrmat_m Subroutine

writes csr matrix to file

write_netcdf_helmholtz helmholtz_netcdfio_m Subroutine

Writes a Helmholtz problem to NETCDF file

write_netcdf_mesh_cart mesh_cart_m Interface
write_netcdf_polar polar_grid_m Interface
write_params_circular params_equi_circular_m Subroutine

Writes the equi circular namelist to the given filename

write_params_circular_toroidal params_equi_circular_toroidal_m Subroutine

Writes the equi_circular_toroidal namelist into the given filename

write_params_dommaschk params_equi_dommaschk_m Subroutine
write_params_salpha params_equi_salpha_m Subroutine

Writes the equi salpha namelist to the given filename

write_params_slab params_equi_slab_m Subroutine

Writes the equi slab namelist to the given filename

write_poincare diagnose_poincare Subroutine

Writes generated poincare data to a NetCDF file

write_to_snapsfile snapshots_test_diffusion_m Subroutine

Writes variables to snapsfile

write_vtk_mesh vis_vtk3d_m Subroutine

Writes mesh to vtk files Based on VTKFortran library (https://github.com/szaghi/VTKFortran/) For description of cell types and their definition of connectivity see https://kitware.github.io/vtk-examples/site/VTKBook/05Chapter5/ here used (quad, bi-quadrtatic quad, hexahedron, quadratic hexahedron) For their VTK descriptor see https://vtk.org/doc/nightly/html/vtkCellType_8h_source.html

zeroin zeroin.f Function