| Procedure | Location | Procedure Type | Description |
|---|---|---|---|
| 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 |
| 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 |
| 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 |
| 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) |
| gauss_legendre | gauss_quadrature_m | Subroutine | Calculates the nodes and weights to perform Gauss-Legendre quadrature on the interval [-1, 1] |
| gaussian | elementary_functions_m | Function | Gaussian exp[-(x-x0)^2/wx^2] |
| generate_poincare_data | diagnose_poincare | Subroutine | For a given equilibrium |
| 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. |
| 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 |
| 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 |
| 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 |