| Procedure | Location | Procedure Type | Description |
|---|---|---|---|
| accumulate_mean | m_stats | Subroutine | Incremental running-mean update:
where |
| alloc_cuda_tdsops | m_cuda_backend | Subroutine | |
| alloc_omp_tdsops | m_omp_backend | Subroutine | |
| allocate_io_reader | m_io_backend | Subroutine | |
| allocate_io_reader | m_io_backend | Subroutine | |
| allocate_io_writer | m_io_backend | Subroutine | |
| allocate_io_writer | m_io_backend | Subroutine | |
| allocate_tdsops | m_solver | Subroutine | |
| allocator_init | m_allocator | Function | |
| allocator_t | m_allocator | Interface | |
| apply_BC_channel | m_case_channel | Subroutine | |
| apply_BC_cylinder | m_case_cylinder | Subroutine | |
| apply_BC_generic | m_case_generic | Subroutine | |
| apply_BC_tgv | m_case_tgv | Subroutine | |
| apply_les | m_solver | Subroutine | Add the configured explicit SGS closure to the momentum RHS. |
| axpby | m_cuda_kernels_fieldops | Subroutine | |
| base_init | m_poisson_fft | Subroutine | |
| base_init | m_base_backend | Subroutine | |
| buffer_copy | m_cuda_kernels_fieldops | Subroutine | |
| case_channel_init | m_case_channel | Function | |
| case_channel_t | m_case_channel | Interface | |
| case_cylinder_init | m_case_cylinder | Function | |
| case_cylinder_t | m_case_cylinder | Interface | |
| case_finalise | m_base_case | Subroutine | |
| case_generic_init | m_case_generic | Function | |
| case_generic_t | m_case_generic | Interface | |
| case_init | m_base_case | Subroutine | |
| case_tgv_init | m_case_tgv | Function | |
| case_tgv_t | m_case_tgv | Interface | |
| cleanup_field_arrays | m_io_field_utils | Subroutine | |
| cleanup_field_buffers | m_io_field_utils | Subroutine | |
| compute_derived_fields | m_postprocess | Subroutine | Compute derived fields from the velocity gradient tensor. |
| compute_outflow_params | m_case_cylinder | Subroutine | |
| compute_pressure_vert | m_postprocess | Subroutine | Interpolates the pressure field from CELL (DIR_Z) to VERT (DIR_X) for snapshot output and rescales from pseudo-pressure to physical (kinematic) pressure. |
| compute_qcriterion_cuda | m_cuda_backend | Subroutine | |
| compute_qcriterion_omp | m_omp_backend | Subroutine | |
| compute_rank_pos_from_global | m_mesh_content | Subroutine | From the global rank maps, fills in the rank position as well
as the previous and next rank in the |
| compute_sgs_stress_cuda | m_cuda_backend | Subroutine | |
| compute_sgs_stress_omp | m_omp_backend | Subroutine | |
| compute_smagorinsky_nut_cuda | m_cuda_backend | Subroutine | |
| compute_smagorinsky_nut_omp | m_omp_backend | Subroutine | |
| compute_vorticity_cuda | m_cuda_backend | Subroutine | |
| compute_vorticity_omp | m_omp_backend | Subroutine | |
| copy | m_cuda_kernels_fieldops | Subroutine | |
| copy_cell2vert_dims | m_mesh_content | Subroutine | Copies cell_dims information to vert_dims taking periodicity into account |
| copy_data_to_f_cuda | m_cuda_backend | Subroutine | |
| copy_data_to_f_omp | m_omp_backend | Subroutine | |
| copy_f_to_data_cuda | m_cuda_backend | Subroutine | |
| copy_f_to_data_omp | m_omp_backend | Subroutine | |
| copy_into_buffers | m_cuda_backend | Subroutine | |
| copy_into_buffers | m_omp_backend | Subroutine | |
| copy_vert2cell_dims | m_mesh_content | Subroutine | Copies vert_dims information to cell_dims taking periodicity into account |
| create_block | m_allocator | Function | Allocate memory for a new block and return a pointer to a new m_allocator object. |
| create_cuda_block | m_cuda_allocator | Function | |
| cuda_allocator_init | m_cuda_allocator | Function | |
| cuda_allocator_t | m_cuda_allocator | Interface | |
| cuda_backend_t | m_cuda_backend | Interface | |
| cuda_field_init | m_cuda_allocator | Function | |
| cuda_field_t | m_cuda_allocator | Interface | |
| cuda_tdsops_init | m_cuda_tdsops | Function | Constructor function for the cuda_tdsops_t class. See tdsops_t for details. |
| cuda_tdsops_t | m_cuda_tdsops | Interface | |
| cufftExecC2R_C | m_cuda_poisson_fft | Interface | |
| cufftExecR2C_C | m_cuda_poisson_fft | Interface | |
| curl | m_solver | Subroutine | Wrapper for curl |
| curl | m_vector_calculus | Subroutine | Curl of a vector field (u, v, w). |
| decomposition_2decomp | m_decomp | Subroutine | |
| decomposition_2decomp | m_decomp | Subroutine | Performs 2D mesh decomposition using 2decomp&fft |
| decomposition_generic | m_mesh | Subroutine | |
| define_BC_channel | m_case_channel | Subroutine | |
| define_BC_cylinder | m_case_cylinder | Subroutine | |
| define_BC_generic | m_case_generic | Subroutine | |
| define_BC_tgv | m_case_tgv | Subroutine | |
| der_penta_full | m_cuda_kernels_dist | Subroutine | Full (forward + backward) non-periodic pentadiagonal Thomas solve. |
| der_penta_full | m_omp_kernels_dist | Subroutine | Full (forward + backward) non-periodic pentadiagonal Thomas solve on CPU. Mirrors the CUDA der_penta_full kernel; operates on 2D (SZ, n) arrays. |
| der_penta_periodic | m_cuda_kernels_dist | Subroutine | Periodic pentadiagonal Thomas solve via Sherman-Morrison-Woodbury rank-4. |
| der_penta_periodic | m_omp_kernels_dist | Subroutine | Cyclic pentadiagonal compact solve via Sherman-Morrison-Woodbury rank-4 correction. A_cyc = A_np + U*W^T where U = [e_1,e_2,e_{n-1},e_n] and W^T encodes the four corner coupling pairs; A_np is the non-periodic Thomas factorisation in (ffr,...). |
| der_univ_dist | m_cuda_kernels_dist | Subroutine | |
| der_univ_dist | m_omp_kernels_dist | Subroutine | |
| der_univ_fused_subs | m_omp_kernels_dist | Subroutine | |
| der_univ_subs | m_cuda_kernels_dist | Subroutine | |
| der_univ_subs | m_omp_kernels_dist | Subroutine | |
| der_univ_thom | m_omp_kernels_thom | Subroutine | |
| der_univ_thom | m_cuda_kernels_thom | Subroutine | |
| der_univ_thom_per | m_omp_kernels_thom | Subroutine | |
| der_univ_thom_per | m_cuda_kernels_thom | Subroutine | |
| deriv_1st | m_tdsops | Subroutine | |
| deriv_2nd | m_tdsops | Subroutine | |
| destroy | m_allocator | Subroutine | Go through the block list from head to tail, deallocating each memory block in turn. Deallocation of a m_allocator object automatically deallocates its internal allocatable data array. |
| divergence_v2c | m_vector_calculus | Subroutine | Divergence of a vector field (u, v, w). |
| divergence_v2p | m_solver | Subroutine | Wrapper for divergence_v2p |
| enforce_periodicity_x | m_cuda_spectral | Subroutine | |
| enforce_periodicity_x_cuda | m_cuda_poisson_fft | Subroutine | |
| enforce_periodicity_x_omp | m_omp_poisson_fft | Subroutine | Gathers the non-periodic x line into a periodic one so that a plain FFT can stand in for the cosine transform. Unlike the y version below this handles an odd nx, which the 100 case requires. |
| enforce_periodicity_xy | m_cuda_spectral | Subroutine | Combined X and Y periodicity enforcement (interleave shuffle). |
| enforce_periodicity_xy_cuda | m_cuda_poisson_fft | Subroutine | |
| enforce_periodicity_xy_omp | m_omp_poisson_fft | Subroutine | Gathers the non-periodic x and, when it is not split across ranks, y lines into periodic ones so that a plain FFT can stand in for the cosine transform in both directions. |
| enforce_periodicity_y | m_cuda_spectral | Subroutine | |
| enforce_periodicity_y_cuda | m_cuda_poisson_fft | Subroutine | |
| enforce_periodicity_y_omp | m_omp_poisson_fft | Subroutine | |
| exchange_mirror_100 | m_cuda_poisson_fft | Subroutine | Fills c_mirror_dev and c_plane_recv_dev with the dim2 mirror of the local spectral slab, so that the 100 paired split can read its partner mode without going looking for it in another rank's memory. |
| exec_dist_penta_compact | m_cuda_exec_dist | Subroutine | Single-GPU non-periodic pentadiagonal compact-FD solve. |
| exec_dist_penta_compact | m_omp_exec_dist | Subroutine | Single-pass non-periodic pentadiagonal compact-FD solve on CPU. No MPI exchange is needed; each group is solved independently. |
| exec_dist_penta_periodic | m_cuda_exec_dist | Subroutine | Cyclic pentadiagonal compact-FD solve via Sherman-Morrison-Woodbury. Halos u_recv_s/e must be set to periodic-extension values by the caller. |
| exec_dist_penta_periodic | m_omp_exec_dist | Subroutine | Cyclic pentadiagonal compact-FD solve via Sherman-Morrison-Woodbury. Halos u_recv_s/e must be set to periodic-extension values by the caller. |
| exec_dist_tds_compact | m_cuda_exec_dist | Subroutine | |
| exec_dist_tds_compact | m_omp_exec_dist | Subroutine | |
| exec_dist_transeq_3fused | m_cuda_exec_dist | Subroutine | |
| exec_dist_transeq_compact | m_omp_exec_dist | Subroutine | |
| exec_thom_tds_compact | m_cuda_exec_thom | Subroutine | |
| exec_thom_tds_compact | m_exec_thom | Subroutine | |
| export_field_to_device | m_base_backend | Subroutine | Pack the first |
| export_field_to_device_cuda | m_cuda_backend | Subroutine | DIR_X fields are reordered and unpadded by a single kernel. DIR_C fields are unpadded directly, and DIR_Y/DIR_Z fields are reordered to DIR_C first. Precision conversion happens in the same kernel. |
| fft_backward_010_omp | m_omp_poisson_fft | Subroutine | |
| fft_backward_100_cuda | m_cuda_poisson_fft | Subroutine | |
| fft_backward_100_omp | m_omp_poisson_fft | Subroutine | Backward FFT for the non-periodic x case, undoing the x-y transpose applied by fft_forward_100_omp. Only the unpadded extents are written, which is all undo_periodicity_x_omp goes on to read. |
| fft_backward_110_cuda | m_cuda_poisson_fft | Subroutine | Backward FFT for 110 case: C2R then transpose (nz,nx,ny)->(nx,ny,nz) |
| fft_backward_110_omp | m_omp_poisson_fft | Subroutine | Backward FFT for the non-periodic x and y case, undoing the transpose applied by fft_forward_110_omp. Only the unpadded extents are written, which is all undo_periodicity_xy_omp goes on to read. |
| fft_backward_cuda | m_cuda_poisson_fft | Subroutine | |
| fft_backward_omp | m_omp_poisson_fft | Subroutine | |
| fft_forward_010_omp | m_omp_poisson_fft | Subroutine | |
| fft_forward_100_cuda | m_cuda_poisson_fft | Subroutine | Forward FFT for non-periodic-X case We transpose X<->Y so that the non-periodic direction becomes the "Y" direction in the transposed space, then use the same FFT approach as 010 |
| fft_forward_100_omp | m_omp_poisson_fft | Subroutine | Forward FFT for the non-periodic x case. Transposes x and y so that the non-periodic direction sits in dim2, where it keeps its full mode range, then transforms the (ny, nx, nz) buffer with the swapped plan set up in init. |
| fft_forward_110_cuda | m_cuda_poisson_fft | Subroutine | Forward FFT for 110 case: transpose (nx,ny,nz)->(nz,nx,ny) then R2C |
| fft_forward_110_omp | m_omp_poisson_fft | Subroutine | Forward FFT for the non-periodic x and y case. Transposes the physical field (nx, ny, nz) to (nz, nx, ny) so that the r2c transform runs along the periodic z direction, then transforms with the plan set up in init. |
| fft_forward_cuda | m_cuda_poisson_fft | Subroutine | |
| fft_forward_omp | m_omp_poisson_fft | Subroutine | |
| fft_postprocess_000_cuda | m_cuda_poisson_fft | Subroutine | |
| fft_postprocess_000_omp | m_omp_poisson_fft | Subroutine | |
| fft_postprocess_010_cuda | m_cuda_poisson_fft | Subroutine | if stretching in y is 'bottom' |
| fft_postprocess_010_omp | m_omp_poisson_fft | Subroutine | |
| fft_postprocess_100_cuda | m_cuda_poisson_fft | Subroutine | |
| fft_postprocess_100_omp | m_omp_poisson_fft | Subroutine | Post-process div U* in spectral space for the non-periodic x case. |
| fft_postprocess_110_cuda | m_cuda_poisson_fft | Subroutine | Spectral post-processing for 110 case (R2C Z-transpose) 7 separate kernel launches to avoid cross-block race conditions. Spectral array is (nz/2+1, nx, ny) = (nx_spec, ny_spec, nz_spec). Thread i->X (ny_spec), blockIdx%y k->Y (nz_spec), serial j->Z (nx_spec). |
| fft_postprocess_110_omp | m_omp_poisson_fft | Subroutine | Post-process div U* in spectral space for the non-periodic x and y case. After the (nx, ny, nz) -> (nz, nx, ny) transpose applied by fft_forward_110_omp, dim1 holds the periodic z r2c modes, dim2 holds the non-periodic x modes and dim3 holds the non-periodic y modes. |
| field_init | m_field | Function | |
| field_max_mean_cuda | m_cuda_backend | Subroutine | |
| field_max_mean_omp | m_omp_backend | Subroutine | |
| field_max_sum | m_cuda_kernels_fieldops | Subroutine | |
| field_scale | m_cuda_kernels_fieldops | Subroutine | |
| field_scale_cuda | m_cuda_backend | Subroutine | |
| field_scale_omp | m_omp_backend | Subroutine | |
| field_set_face_cuda | m_cuda_backend | Subroutine | |
| field_set_face_from_field_cuda | m_cuda_backend | Subroutine | Set a face of |
| field_set_face_from_field_omp | m_omp_backend | Subroutine | |
| field_set_face_omp | m_omp_backend | Subroutine | |
| field_set_x_face | m_cuda_kernels_fieldops | Subroutine | Set domain X_FACE boundary values. c_start: Dirichlet value applied at the left face (i = 1) c_end: convective velocity Uc = uxmax * gdt / dx, used as multiplier in the outflow scheme du/dt + Uc*du/dx = 0 |
| field_set_x_face_from_field | m_cuda_kernels_fieldops | Subroutine | Set domain X_FACE boundary values with a spatially-varying inlet. |
| field_set_y_face | m_cuda_kernels_fieldops | Subroutine | Set domain Y_FACE boundary values. c_start: Dirichlet value applied at the bottom face (j = 1) c_end: Dirichlet value applied at the top face (j = ny) |
| field_set_y_face_from_field | m_cuda_kernels_fieldops | Subroutine | Set domain Y_FACE boundary values from another field. Both f and f_start are DIR_X VERT pencil-layout. Only the bottom (j = 1) and top (j = ny) y-pencil planes of f_start are read. |
| field_shift | m_cuda_kernels_fieldops | Subroutine | |
| field_shift_cuda | m_cuda_backend | Subroutine | |
| field_shift_omp | m_omp_backend | Subroutine | |
| field_t | m_field | Interface | |
| field_volume_integral_cuda | m_cuda_backend | Function | volume integral of a field |
| field_volume_integral_omp | m_omp_backend | Function | volume integral of a field |
| fill | m_field | Subroutine | |
| fill_cuda | m_cuda_allocator | Subroutine | |
| filter_width | m_les | Function | Volume-equivalent grid-filter width, Delta=(dxdydz)^(1/3). |
| finalise | m_monitoring | Subroutine | |
| finalise | m_solver | Subroutine | Release resources owned by the solver and its runtime models. |
| finalize | m_time_integrator | Subroutine | |
| forcings_channel | m_case_channel | Subroutine | |
| forcings_cylinder | m_case_cylinder | Subroutine | |
| forcings_generic | m_case_generic | Subroutine | |
| forcings_tgv | m_case_tgv | Subroutine | |
| generate_coordinates | m_io_field_utils | Subroutine | |
| get_argument | m_common | Function | |
| get_block | m_allocator | Function | Return a pointer to the first available memory block, i.e. the current head of the block list. If the list is empty, allocate a new block with create_block first. |
| get_block_ids | m_allocator | Function | Utility function that returns an array made of the |
| get_coordinates | m_mesh | Function | Get the coordinates of a vertex with i, j, k local cartesian indices Avoid calling this in hot loops |
| get_default_backend | m_io_backend | Function | |
| get_default_backend | m_io_backend | Function | |
| get_device_bw_info_cuda | m_cuda_backend | Subroutine | |
| get_device_bw_info_omp | m_omp_backend | Subroutine | |
| get_dims | m_mesh | Function | Getter for local domain dimensions |
| get_dims_dataloc | m_mesh | Function | Getter for domain dimensions |
| get_dirs_from_rdr | m_common | Subroutine | |
| get_field_data | m_base_backend | Subroutine | Extract data from field |
| get_field_ptr | m_io_field_utils | Function | Resolve a field name to the corresponding solver field pointer. Centralises the name-to-field mapping used by I/O managers. |
| get_global_dims | m_mesh | Function | Getter for local domain dimensions |
| get_imag | m_poisson_fft | Function | |
| get_index_dir | m_ordering | Subroutine | Get application storage directional index from cartesian index |
| get_index_ijk | m_ordering | Subroutine | Get cartesian index from application storage directional one |
| get_index_reordering | m_ordering | Subroutine | Converts indices in between any two DIR_? |
| get_km | m_poisson_fft | Function | |
| get_km_im | m_poisson_fft | Function | |
| get_km_re | m_poisson_fft | Function | |
| get_n_dir | m_mesh | Function | Getter for the main dimension a field oriented along |
| get_n_groups | m_allocator | Function | |
| get_n_phi | m_mesh | Function | Getter for the main dimension of field phi |
| get_output_dimensions | m_io_field_utils | Subroutine | |
| get_padded_dims | m_allocator | Function | |
| get_rdr_from_dirs | m_common | Function | Returns RDR_?2? value based on two direction inputs |
| get_real | m_poisson_fft | Function | |
| get_shape | m_field | Function | |
| get_shape_cuda | m_cuda_allocator | Function | |
| gradient_c2v | m_vector_calculus | Subroutine | Gradient of a scalar field 'p'. |
| gradient_p2v | m_solver | Subroutine | Wrapper for gradient_p2v |
| has_output_field | m_config | Function | Check whether a field name is present in the output_fields list. |
| ibm_t | m_ibm | Interface | |
| init | m_time_integrator | Function | |
| init | m_monitoring | Subroutine | |
| init | m_solver | Function | |
| init | m_cuda_backend | Function | |
| init | m_omp_backend | Function | |
| init | m_vector_calculus | Function | |
| init_cuda_poisson_fft | m_cuda_backend | Subroutine | |
| init_cuda_poisson_fft_t | m_cuda_poisson_fft | Subroutine | if stretching in y is 'bottom' |
| init_omp_poisson_fft | m_omp_backend | Subroutine | |
| initial_conditions_channel | m_case_channel | Subroutine | |
| initial_conditions_cylinder | m_case_cylinder | Subroutine | |
| initial_conditions_generic | m_case_generic | Subroutine | |
| initial_conditions_tgv | m_case_tgv | Subroutine | |
| interpl_c2v | m_vector_calculus | Subroutine | Interpolation of a scalar field from cell centres to vertices. |
| interpl_mid | m_tdsops | Subroutine | |
| is_avail_2decomp | m_decomp | Function | |
| is_avail_2decomp | m_decomp | Function | |
| is_root | m_mesh_content | Function | Returns whether or not the current rank is the root rank |
| laplacian | m_vector_calculus | Subroutine | Laplacian of a scalar field 'u'. |
| les_t | m_les | Interface | |
| memcpy3D | m_cuda_spectral | Subroutine | Copy data between x3d2 padded arrays and cuFFTMp descriptors |
| memcpy3D_with_transpose | m_cuda_spectral | Subroutine | Copy with transpose: src(nx, ny, nz) -> dst(ny, nx, nz) Used for 100 case forward FFT |
| memcpy3D_with_transpose_back | m_cuda_spectral | Subroutine | Copy with transpose back: src(ny, nx, nz) -> dst(nx, ny, nz) Used for 100 case backward FFT |
| mesh_init | m_mesh | Function | Completely initialise the mesh object. Upon initialisation the mesh object can be read-only and shouldn't be edited Takes as argument global information about the mesh like its length, number of cells and decomposition in each direction |
| mesh_t | m_mesh | Interface | |
| move_data_loc | m_common | Function | |
| MPI_Abort | m_mpi | Subroutine | |
| MPI_Allreduce | m_mpi | Interface | |
| MPI_Barrier | m_mpi | Subroutine | |
| MPI_Bcast | m_mpi | Subroutine | The only rank is the root, so its buffer is already the broadcast value. |
| MPI_Comm_rank | m_mpi | Subroutine | |
| MPI_Comm_size | m_mpi | Subroutine | |
| MPI_Finalize | m_mpi | Subroutine | |
| MPI_Init | m_mpi | Subroutine | |
| MPI_Initialized | m_mpi | Subroutine | Reported as initialised whether or not MPI_Init has been called. There is no MPI environment to bring up here, so callers asking whether it is safe to proceed always have their answer, and a library handed a communicator never has to wait for one. |
| MPI_Irecv | m_mpi | Subroutine | |
| MPI_Isend | m_mpi | Subroutine | |
| MPI_Reduce | m_mpi | Interface | |
| MPI_Sendrecv | m_mpi | Subroutine | Reachable only where a call site has already branched on a rank count
above one, as the exchanges in the CUDA Poisson solver do. It exists so
that callers can name it in a |
| MPI_Waitall | m_mpi | Subroutine | |
| MPI_Wtime | m_mpi | Function | Elapsed wall-clock seconds, from an arbitrary origin as MPI defines it. |
| nvtx_enabled | m_nvtx | Function | Whether ranges are emitted: X3D2_NVTX (default on), read on first use. |
| nvtx_pop | m_nvtx | Subroutine | |
| nvtx_push | m_nvtx | Subroutine | |
| obtain_coordinates | m_mesh_content | Subroutine | Obtains global coordinates for all the vertices and midpoints |
| omp_backend_t | m_omp_backend | Interface | |
| omp_poisson_fft_t | m_omp_poisson_fft | Interface | |
| omptgt_allocator_t | m_omptgt_allocator | Interface | |
| omptgt_backend_t | m_omptgt_backend | Interface | |
| pack_c_dp | m_cuda_kernels_reorder | Subroutine | Copy the unpadded (nx, ny, nz) part of a DIR_C field |
| pack_c_sp | m_cuda_kernels_reorder | Subroutine | Single precision output variant of pack_c_dp |
| pack_spectral_plane | m_cuda_spectral | Subroutine | Copies the first dim2 plane of the local spectral slab into a contiguous buffer so it can be handed to MPI. |
| pack_x2c_dp | m_cuda_kernels_reorder | Subroutine | Reorder a DIR_X field into an unpadded (nx, ny, nz) Cartesian buffer in one pass: reorder_x2c followed by dropping the padding. |
| pack_x2c_sp | m_cuda_kernels_reorder | Subroutine | Single precision output variant of pack_x2c_dp |
| pair_bw | m_cuda_spectral | Function | Backward counterpart of pair_fw, symmetric in the same way. |
| pair_fw | m_cuda_spectral | Function | Forward paired split of one dim2 mode against its mirror. The rule is symmetric, so the partner entry is pair_fw(partner, own, i2_rev). |
| poisson_000 | m_poisson_fft | Subroutine | |
| poisson_010 | m_poisson_fft | Subroutine | |
| poisson_100 | m_poisson_fft | Subroutine | |
| poisson_110 | m_poisson_fft | Subroutine | |
| poisson_cg | m_solver | Subroutine | |
| poisson_divide | m_cuda_spectral | Subroutine | Divide one entry by its spectral equivalence constant, with the eps_wave guard that keeps roundoff noise out of the pressure field. |
| poisson_fft | m_solver | Subroutine | |
| postprocess_channel | m_case_channel | Subroutine | |
| postprocess_cylinder | m_case_cylinder | Subroutine | |
| postprocess_dim13_bw | m_cuda_spectral | Subroutine | Backward counterpart of postprocess_dim13_fw. |
| postprocess_dim13_fw | m_cuda_spectral | Subroutine | Forward postprocess of one spectral entry in dim3 then dim1. |
| postprocess_generic | m_case_generic | Subroutine | |
| postprocess_tgv | m_case_tgv | Subroutine | |
| prepare_field_buffers | m_io_field_utils | Subroutine | |
| preprocess_dist | m_tdsops | Subroutine | |
| preprocess_penta_dist | m_tdsops | Subroutine | LU preprocessing for non-periodic pentadiagonal Thomas algorithm. |
| preprocess_thom | m_tdsops | Subroutine | |
| pressure_correction | m_solver | Subroutine | |
| process_spectral_000 | m_cuda_spectral | Subroutine | Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size. |
| process_spectral_000 | m_omp_spectral | Subroutine | Post-process div U* in spectral space for all periodic BCs. |
| process_spectral_010 | m_cuda_spectral | Subroutine | Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size. |
| process_spectral_010 | m_omp_spectral | Subroutine | Post-process div U* in spectral space, for non-periodic BC in y-dir. |
| process_spectral_010_bw | m_cuda_spectral | Subroutine | Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size. |
| process_spectral_010_fw | m_cuda_spectral | Subroutine | Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size. |
| process_spectral_010_poisson | m_cuda_spectral | Subroutine | Solve the Poisson equation at cell centres with non-periodic BC along y |
| process_spectral_100 | m_omp_spectral | Subroutine | Post-process div U* in spectral space, for non-periodic BC in x-dir. |
| process_spectral_100_fw | m_cuda_spectral | Subroutine | Stage 1 (forward): normalisation followed by the dim3 and dim1 postprocess. Every mode is handled on its own here. |
| process_spectral_100_pair_bw | m_cuda_spectral | Subroutine | Stage 3 (backward): the dim2 paired recombination, then the dim3 and dim1 postprocess. |
| process_spectral_100_pair_fw | m_cuda_spectral | Subroutine | Stage 2 (forward): the dim2 paired split, then the Poisson solve. |
| process_spectral_110 | m_omp_spectral | Subroutine | Post-process div U* in spectral space, for non-periodic BC in both x- and y-directions (R2C Z-transpose layout: dim1 = Z r2c modes, dim2 = X modes, dim3 = Y modes). |
| process_spectral_110_bw | m_omp_spectral | Subroutine | Backward third of the spectral post-process for the 110 case: the X paired even/odd recombine, then the Z periodic post-process backward. |
| process_spectral_110_fw | m_omp_spectral | Subroutine | Forward third of the spectral post-process for the 110 case (non-periodic x and y, periodic z, R2C Z-transpose layout): normalise, Z periodic post-process forward, then the X paired even/odd split. |
| process_spectral_110_norm_z | m_cuda_spectral | Subroutine | Step 1 (forward): normalise + Z periodic post-process Z is dim1 (serial j loop), periodic R2C — no sign flip needed since j only goes to nz/2+1. |
| process_spectral_110_poisson | m_cuda_spectral | Subroutine | Step 4: Poisson solve — divide by waves |
| process_spectral_110_solve | m_omp_spectral | Subroutine | Middle third of the spectral post-process for the 110 case: the Y paired even/odd split, the Poisson divide, and the Y paired even/odd recombine. |
| process_spectral_110_x_pair_bw | m_cuda_spectral | Subroutine | Step 6 (backward): X paired even/odd recombine |
| process_spectral_110_x_pair_fw | m_cuda_spectral | Subroutine | Step 2 (forward): X paired even/odd split X is dim2 (thread i). Only i in [2, nx/2+1] executes. Writes to i and nx-i+2. Race-free (pair doesn't enter). |
| process_spectral_110_y_pair_bw | m_cuda_spectral | Subroutine | Step 5 (backward): Y paired even/odd recombine |
| process_spectral_110_y_pair_fw | m_cuda_spectral | Subroutine | Step 3 (forward): Y paired even/odd split Y is dim3 (blockIdx%y = k). Only k in [2, ny/2+1] executes. Writes to k and ny-k+2. Race-free (pair block doesn't enter). |
| process_spectral_110_z_bw | m_cuda_spectral | Subroutine | Step 7 (backward): Z periodic undo |
| pwmul | m_cuda_kernels_fieldops | Subroutine | |
| qcriterion_from_gradients | m_cuda_kernels_fieldops | Subroutine | |
| read_channel_nml | m_config | Subroutine | |
| read_checkpoint_nml | m_config | Subroutine | |
| read_cylinder_nml | m_config | Subroutine | |
| read_domain_nml | m_config | Subroutine | |
| read_les_nml | m_config | Subroutine | |
| read_solver_nml | m_config | Subroutine | |
| read_stats_nml | m_config | Subroutine | |
| release_block | m_allocator | Subroutine | Release memory block pointed to by HANDLE to the block list. It is pushed to the front of the block list, in other words it is made the head block. |
| reorder_c2x | m_cuda_kernels_reorder | Subroutine | |
| reorder_cuda | m_cuda_backend | Subroutine | |
| reorder_omp | m_omp_backend | Subroutine | |
| reorder_x2c | m_cuda_kernels_reorder | Subroutine | |
| reorder_x2y | m_cuda_kernels_reorder | Subroutine | |
| reorder_x2z | m_cuda_kernels_reorder | Subroutine | |
| reorder_y2x | m_cuda_kernels_reorder | Subroutine | |
| reorder_y2z | m_cuda_kernels_reorder | Subroutine | |
| reorder_z2x | m_cuda_kernels_reorder | Subroutine | |
| reorder_z2y | m_cuda_kernels_reorder | Subroutine | |
| resolve_field_t | m_cuda_backend | Subroutine | |
| rotate | m_time_integrator | Subroutine | |
| run | m_base_case | Subroutine | Runs the solver forwards in time from t=t_0 to t=T, performing postprocessing/IO and reporting diagnostics. |
| scalar_product | m_cuda_kernels_fieldops | Subroutine | |
| scalar_product_cuda | m_cuda_backend | Function | |
| scalar_product_omp | m_omp_backend | Function | |
| sendrecv_3fields | m_cuda_sendrecv | Subroutine | |
| sendrecv_fields | m_cuda_sendrecv | Subroutine | |
| sendrecv_fields | m_omp_sendrecv | Subroutine | |
| set_data_loc | m_field | Subroutine | |
| set_field_data | m_base_backend | Subroutine | |
| set_init | m_base_case | Subroutine | |
| set_shape | m_field | Subroutine | |
| set_shape_cuda | m_cuda_allocator | Subroutine | |
| setup_field_arrays | m_io_field_utils | Subroutine | |
| sgs_stress_from_gradients | m_cuda_kernels_fieldops | Subroutine | |
| slice_max_sum_cuda | m_cuda_backend | Subroutine | |
| slice_max_sum_kernel | m_cuda_backend | Subroutine | Reduces a single slice f(i_slice, :, :) (in the kernel's packed-pencil indexing). Signed max/sum, no abs. One thread per (y, z) point. |
| slice_max_sum_omp | m_omp_backend | Subroutine | |
| smagorinsky_from_gradients | m_cuda_kernels_fieldops | Subroutine | |
| smagorinsky_nut | m_les | Function | |
| solve_poisson | m_poisson_fft | Subroutine | |
| solver_t | m_solver | Interface | |
| stagder_1st | m_tdsops | Subroutine | |
| strain_rate_magnitude | m_les | Function | |S|=sqrt(2 S_ij S_ij), where S_ij=(du_i/dx_j+du_j/dx_i)/2. |
| stretching_matrix | m_poisson_fft | Subroutine | Stretching necessitates a special operation in spectral space. The coefficients for the operation are stored in matrix form. |
| stride_data | m_io_field_utils | Function | |
| stride_data_to_buffer | m_io_field_utils | Subroutine | |
| sum_intox_omp | m_omp_backend | Subroutine | |
| sum_yintox | m_cuda_kernels_reorder | Subroutine | |
| sum_yintox_cuda | m_cuda_backend | Subroutine | |
| sum_yintox_omp | m_omp_backend | Subroutine | |
| sum_zintox | m_cuda_kernels_reorder | Subroutine | |
| sum_zintox_cuda | m_cuda_backend | Subroutine | |
| sum_zintox_omp | m_omp_backend | Subroutine | |
| supports_device_field_export | m_base_backend | Function | Whether |
| supports_device_field_export_cuda | m_cuda_backend | Function | |
| sync_cuda | m_cuda_backend | Subroutine | |
| sync_omp | m_omp_backend | Subroutine | |
| tds_solve_cuda | m_cuda_backend | Subroutine | |
| tds_solve_dist | m_cuda_backend | Subroutine | |
| tds_solve_dist | m_omp_backend | Subroutine | |
| tds_solve_omp | m_omp_backend | Subroutine | |
| tdsops_init | m_tdsops | Function | Constructor function for the tdsops_t class. |
| tdsops_t | m_tdsops | Interface | |
| thom_solve_cuda | m_cuda_backend | Subroutine | |
| thom_solve_omp | m_omp_backend | Subroutine | |
| time_intg_t | m_time_integrator | Interface | |
| transeq_3fused_dist | m_cuda_kernels_dist | Subroutine | |
| transeq_3fused_subs | m_cuda_kernels_dist | Subroutine | |
| transeq_cuda_dist | m_cuda_backend | Subroutine | |
| transeq_cuda_thom | m_cuda_backend | Subroutine | Thomas algorithm implementation. So much more easier than the distributed algorithm. It is intended to work only on a single rank so there is no MPI communication. |
| transeq_default | m_solver | Subroutine | Skew-symmetric form of convection-diffusion terms in the incompressible Navier-Stokes momentum equations, excluding pressure terms. Inputs from velocity grid and outputs to velocity grid. |
| transeq_lowmem | m_solver | Subroutine | low memory version of the transport equation, roughly %2 slower overall |
| transeq_omp_dist | m_omp_backend | Subroutine | |
| transeq_species | m_solver | Subroutine | Skew-symmetric form of convection-diffusion terms in the species equation. Inputs from velocity grid and outputs to velocity grid. |
| transeq_species_cuda | m_cuda_backend | Subroutine | Compute the convection and diffusion for the given field in the given direction. Halo exchange for the given field is necessary When sync is true, halo exchange of momentum is necessary |
| transeq_species_omp | m_omp_backend | Subroutine | Compute the convection and diffusion for the given field in the given direction. Halo exchange for the given field is necessary When sync is true, halo exchange of momentum is necessary |
| transeq_x_cuda | m_cuda_backend | Subroutine | |
| transeq_x_omp | m_omp_backend | Subroutine | |
| transeq_y_cuda | m_cuda_backend | Subroutine | |
| transeq_y_omp | m_omp_backend | Subroutine | |
| transeq_z_cuda | m_cuda_backend | Subroutine | |
| transeq_z_omp | m_omp_backend | Subroutine | |
| transpose_xyz_to_zxy | m_cuda_spectral | Subroutine | Used before R2C FFT for 110 case to put Z (periodic) in fast dim. |
| transpose_zxy_to_xyz | m_cuda_spectral | Subroutine | Transpose back: src(nz, nx, ny) -> dst(nx, ny, nz) Used after C2R FFT for 110 case. |
| u_func | m_case_tgv | Function | |
| undo_periodicity_x | m_cuda_spectral | Subroutine | |
| undo_periodicity_x_cuda | m_cuda_poisson_fft | Subroutine | |
| undo_periodicity_x_omp | m_omp_poisson_fft | Subroutine | Scatters the gathered x line back to its original ordering. |
| undo_periodicity_xy | m_cuda_spectral | Subroutine | Combined X and Y periodicity undo (reverse interleave shuffle). |
| undo_periodicity_xy_cuda | m_cuda_poisson_fft | Subroutine | |
| undo_periodicity_xy_omp | m_omp_poisson_fft | Subroutine | Scatters the gathered x and, when it is not split across ranks, y lines back to their original ordering. |
| undo_periodicity_y | m_cuda_spectral | Subroutine | |
| undo_periodicity_y_cuda | m_cuda_poisson_fft | Subroutine | |
| undo_periodicity_y_omp | m_omp_poisson_fft | Subroutine | |
| v_func | m_case_tgv | Function | |
| vecadd_cuda | m_cuda_backend | Subroutine | |
| vecadd_omp | m_omp_backend | Subroutine | |
| veccopy_cuda | m_cuda_backend | Subroutine | |
| veccopy_omp | m_omp_backend | Subroutine | |
| vecmult_cuda | m_cuda_backend | Subroutine | |
| vecmult_omp | m_omp_backend | Subroutine | |
| vector_calculus_t | m_vector_calculus | Interface | |
| vector_norm_squared | m_cuda_kernels_fieldops | Subroutine | |
| vector_norm_squared_cuda | m_cuda_backend | Function | Global sum of a2 + b2 + c**2, with one MPI reduction. |
| vector_norm_squared_omp | m_omp_backend | Function | Global sum of a2 + b2 + c**2, with one MPI reduction. |
| volume_integral | m_cuda_kernels_fieldops | Subroutine | |
| vorticity_from_gradients | m_cuda_kernels_fieldops | Subroutine | |
| wall_damped_mixing_length | m_les | Function | Mason-Thomson blend used by Incompact3d's ABL Smagorinsky path. |
| wave_numbers | m_poisson_fft | Subroutine | |
| waves_set | m_poisson_fft | Subroutine | Spectral equivalence constants |
| write_single_field_to_buffer | m_io_field_utils | Subroutine | |
| write_step | m_monitoring | Subroutine | Computes and reports monitoring quantities, writing to both stdout and the monitoring file. Enstrophy: Divergence: max and mean (should be ~0) |