Procedures

ProcedureLocationProcedure TypeDescription
abl_diagnostics_t m_abl_diagnostics Interface
abl_t m_abl Interface
abort_run m_logger Subroutine

Report a fatal error and stop every rank of the run.

Read more…
accumulate_mean m_stats Subroutine

Incremental running-mean update: where stat_inc = 1/n.

add_scalar_x_face m_cuda_kernels_fieldops Subroutine

Adds a uniform constant c to a single x-normal plane (pencil index i_plane) of a DIR_X VERT field, in place.

Read more…
alloc_cuda_tdsops m_cuda_backend Subroutine
alloc_omp_tdsops m_omp_backend Subroutine
alloc_tdsops_base m_base_backend Subroutine

Allocates the backend's own tdsops type and fills in the coefficients of the requested operation.

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_tdsops_setup Subroutine
allocator_init m_allocator Function
allocator_t m_allocator Interface
apply_BC_abl m_case_abl Subroutine
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_BC_wind_turbine m_case_wind_turbine Subroutine

Pre-correction (called per substep after the integrator step): enforce the inflow Dirichlet and convective outflow BCs, then apply an exact uniform mass correction to the outlet, following Incompact3d's pre_correc.

Read more…
apply_les m_solver Subroutine

Add the configured explicit SGS closure to the momentum RHS.

apply_spatial_filter m_solver Subroutine

Apply the explicit low-pass filter to the velocity, as Incompact3d does for wall-modelled ABL runs (ifilter=1, C_filter).

Read more…
axpby m_omptgt_kernels_fieldops Subroutine
axpby m_cuda_kernels_fieldops Subroutine
base_init m_base_backend Subroutine
base_init m_poisson_fft Subroutine
buffer_copy m_omptgt_kernels_fieldops Subroutine

Copies the first and last four points of every line into the start and end send buffers. n is the line length, n_u the padded extent.

buffer_copy m_cuda_kernels_fieldops Subroutine
case_abl_init m_case_abl Function
case_abl_t m_case_abl Interface
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
case_wind_turbine_init m_case_wind_turbine Function
case_wind_turbine_t m_case_wind_turbine Interface
check_cuda m_cuda_errors Subroutine

Abort the run if a CUDA runtime call did not return cudaSuccess.

check_cufft m_cuda_errors Subroutine

Abort the run if a cuFFT call did not return CUFFT_SUCCESS (0). cuFFT has no error-string function, so only the code is reported.

check_labelled_fields m_omp_backend Subroutine

Checks the fields passed to the labelled field operations share a valid data location and the DIR_X layout.

check_labelled_fields m_cuda_backend Subroutine

Checks the fields passed to the labelled field operations share a valid data location and the DIR_X layout.

check_mpi m_logger Subroutine

Abort the run if an MPI call did not succeed.

Read more…
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.

Read more…
compute_outflow_params m_case_wind_turbine Subroutine
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_base m_base_backend Subroutine

Computes the Q-criterion from velocity gradients

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 par structure

compute_sgs_stress_base m_base_backend Subroutine

Forms nut(scale_agradient_a + scale_b*gradient_b).

compute_sgs_stress_cuda m_cuda_backend Subroutine
compute_sgs_stress_omp m_omp_backend Subroutine
compute_smagorinsky_nut_base m_base_backend Subroutine

Computes nut=l_s^2sqrt(2S_ij*S_ij) from velocity gradients.

compute_smagorinsky_nut_cuda m_cuda_backend Subroutine
compute_smagorinsky_nut_omp m_omp_backend Subroutine
compute_vorticity_base m_base_backend Subroutine

Computes the vorticity magnitude from velocity gradients

compute_vorticity_cuda m_cuda_backend Subroutine
compute_vorticity_omp m_omp_backend Subroutine
copy m_omptgt_kernels_fieldops 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_base m_base_backend Subroutine

Copy a regular 3D array in host memory into the specialist data structure field that lives on device or host

copy_data_to_f_cuda m_cuda_backend Subroutine
copy_data_to_f_omp m_omp_backend Subroutine
copy_f_to_data_base m_base_backend Subroutine

Copy the specialist data structure from device or host back to a regular 3D data array in host memory.

copy_f_to_data_cuda m_cuda_backend Subroutine
copy_f_to_data_omp m_omp_backend Subroutine
copy_halo m_cuda_sendrecv Subroutine

Periodic wrap-around on a single rank: copies the first n_data elements of a halo buffer, the groups of the direction being exchanged. The buffers are sized for the direction with the most groups, so a whole-array assignment would copy that maximum on every exchange (16 times the data in use on an elongated mesh).

Read more…
copy_into_buffers m_omp_backend Subroutine
copy_into_buffers m_cuda_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).

Read more…
decomposition_2decomp m_decomp Subroutine

Performs 2D mesh decomposition using 2decomp&fft

decomposition_2decomp m_decomp Subroutine
decomposition_generic m_mesh Subroutine
define_BC_abl m_case_abl 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
define_BC_wind_turbine m_case_wind_turbine Subroutine

Boundary Conditions hook (called per substep before transeq). Builds the inlet Dirichlet profile only; outflow parameters are computed in apply_BC from the post-integration velocity. u = bc_start_u + inlet_noise(1) * um * (2r - 1) v = bc_start_v + inlet_noise(2) * um * (2r - 1) w = bc_start_w + inlet_noise(3) * um * (2r - 1)

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_full m_omptgt_kernels_dist Subroutine

Full non-periodic pentadiagonal solve on a single subdomain.

der_penta_full m_cuda_kernels_dist Subroutine

Full (forward + backward) non-periodic pentadiagonal Thomas solve.

Read more…
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_penta_periodic m_omptgt_kernels_dist Subroutine

Cyclic pentadiagonal solve via Sherman-Morrison-Woodbury (rank 4): A_cyc = A_np + UC with U = [e_1|e_2|e_{n-1}|e_n]. z holds A_np^{-1}U (see omptgt_tdsops_t%penta_z_dev); each line forms M = I + CZ, solves Mc = Cy and applies y -= Zc.

der_penta_periodic m_cuda_kernels_dist Subroutine

Periodic pentadiagonal Thomas solve via Sherman-Morrison-Woodbury rank-4.

Read more…
der_univ_dist m_omp_kernels_dist Subroutine
der_univ_dist m_omptgt_kernels_dist Subroutine

First phase of the distributed solve: builds the RHS and runs the forward and backward hybrid sweeps, leaving the 2x2 boundary values in the send buffers.

der_univ_dist m_cuda_kernels_dist Subroutine
der_univ_fused_subs m_omp_kernels_dist Subroutine
der_univ_subs m_omp_kernels_dist Subroutine
der_univ_subs m_omptgt_kernels_dist Subroutine

Second phase of the distributed solve: resolves the 2x2 boundary systems with the neighbours' values and substitutes back.

der_univ_subs m_cuda_kernels_dist Subroutine
der_univ_thom m_omptgt_kernels_thom Subroutine

Non-periodic Thomas solve along each line of a single subdomain.

der_univ_thom m_cuda_kernels_thom Subroutine
der_univ_thom m_omp_kernels_thom Subroutine
der_univ_thom_per m_omptgt_kernels_thom Subroutine

Periodic Thomas solve along each line of a single subdomain.

der_univ_thom_per m_cuda_kernels_thom Subroutine
der_univ_thom_per m_omp_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.

dev_alloc m_omptgt_common Interface

Allocates a device array of the given extents.

dev_clone m_omptgt_common Interface

Allocates a device array of a host array's shape and copies it in.

dev_download m_omptgt_common Interface

Copies a device array into a host array of the same size.

dev_free m_omptgt_common Interface

Frees a device array allocated with dev_alloc.

dev_upload m_omptgt_common Interface

Copies a host array into a device array of the same size.

device_sync m_omptgt_common Subroutine

Waits until the device work queued so far has completed.

Read more…
disc_kernel m_adm Function

Unnormalised smearing kernel of disc at coords: Gaussian in the rotor-normal direction (delta_N), super-Gaussian (^8) in the radial direction (delta_R) to give a flat-topped disc.

divergence_v2c m_vector_calculus Subroutine

Divergence of a vector field (u, v, w).

Read more…
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.

Read more…
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_dim2_mirror 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 paired split can read its partner mode without going looking for it in another rank's memory.

Read more…
exec_dist_penta_compact m_omptgt_exec_dist Subroutine

Single-subdomain non-periodic pentadiagonal compact solve.

exec_dist_penta_compact m_cuda_exec_dist Subroutine

Single-GPU non-periodic pentadiagonal compact-FD solve.

Read more…
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_omptgt_exec_dist Subroutine

Cyclic pentadiagonal compact solve via Sherman-Morrison-Woodbury. Halos u_recv_s/e must hold the periodic extension.

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_omptgt_exec_dist Subroutine
exec_dist_tds_compact m_cuda_exec_dist Subroutine
exec_dist_tds_compact m_omp_exec_dist Subroutine
exec_dist_transeq_3fused m_omptgt_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_exec_thom Subroutine
exec_thom_tds_compact m_omptgt_exec_thom Subroutine
exec_thom_tds_compact m_cuda_exec_thom Subroutine
export_field_to_device m_base_backend Subroutine

Pack the first dims Cartesian points of field f into a contiguous device buffer, in (i, j, k) order without padding.

Read more…
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_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.

Read more…
fft_backward_cuda m_cuda_poisson_fft Subroutine
fft_backward_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.

Read more…
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.

Read more…
fft_postprocess_110_cuda m_cuda_poisson_fft Subroutine

Spectral post-processing for 110 case (R2C Z-transpose). 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). On a single rank X and Y are both whole, so 7 kernel launches avoid cross-block race conditions. On multiple ranks cuFFTMp splits X across ranks, so the X pairing reaches its partner through the dim2 mirror exchange (see exchange_dim2_mirror) instead, adding two more launches.

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.

Read more…
field_add_const_x_face_base m_base_backend Subroutine

Adds a uniform constant c to one x-normal face plane of a DIR_X field, in place. Used to enforce exact outlet mass conservation: after the convective outflow update, the outlet-plane mean is shifted uniformly so that it matches the prescribed inlet mean (mirrors Incompact3d's bxxn = bxxn - ut + ut1). at_end = .true. -> the x = nx plane (outlet) at_end = .false. -> the x = 1 plane (inlet)

field_add_const_x_face_cuda m_cuda_backend Subroutine

field_add_const_x_face_base

field_add_const_x_face_omp m_omp_backend Subroutine

field_add_const_x_face_base

field_add_face_from_field_base m_base_backend Subroutine

Add the face planes of g onto those of f, on Dirichlet faces only. Both fields are DIR_X; X_FACE and Y_FACE are supported.

field_add_face_from_field_cuda m_cuda_backend Subroutine

m_base_backend

field_add_face_from_field_omp m_omp_backend Subroutine

m_base_backend

field_add_x_face_from_field m_omptgt_kernels_fieldops Subroutine

f += g on the x faces flagged by set_start/set_end.

field_add_x_face_from_field m_cuda_kernels_fieldops Subroutine

f += g on the x-faces (pencil index 1 and nx) flagged by set_start/set_end. Launch as field_set_x_face_from_field.

field_add_y_face_from_field m_omptgt_kernels_fieldops Subroutine

f += g on the y faces flagged by set_start/set_end.

field_add_y_face_from_field m_cuda_kernels_fieldops Subroutine

f += g on the y-faces (j = 1 and ny) flagged by set_start/set_end. Launch as field_set_y_face.

field_init m_field Function
field_labelled_axpy_base m_base_backend Subroutine

Adds coeffs(1, l)g, coeffs(2, l)g and coeffs(3, l)*g to a, b and c at every point of the DIR_X fields labelled l in 1..size(coeffs, 2). Points with any other label are left unchanged.

field_labelled_axpy_cuda m_cuda_backend Subroutine

field_labelled_axpy_base

field_labelled_axpy_omp m_omp_backend Subroutine

field_labelled_axpy_base

field_labelled_sums_base m_base_backend Subroutine

Computes this rank's sums of ga, gb and g*c separately for each label in a single pass over DIR_X fields. label holds integer values stored as reals; points labelled l in 1..size(sums, 2) add to sums(:, l) and all other points are skipped. No MPI reduction is done, so the caller can reduce all labels together in one MPI call.

field_labelled_sums_cuda m_cuda_backend Subroutine

field_labelled_sums_base

field_labelled_sums_omp m_omp_backend Subroutine

field_labelled_sums_base

field_max_mean_base m_base_backend Subroutine

Obtains maximum and mean values in a field

field_max_mean_cuda m_cuda_backend Subroutine

field_max_mean_base

field_max_mean_omp m_omp_backend Subroutine

field_max_mean_base

field_max_sum m_omptgt_kernels_fieldops Subroutine

Maximum and sum of |f|.

field_max_sum m_cuda_kernels_fieldops Subroutine
field_plane_partial_sums m_omptgt_kernels_fieldops Subroutine

First pass of field_plane_sums: partial(j, z) is the sum over x of y index j at z, summed in a fixed order.

field_plane_partial_sums m_cuda_kernels_fieldops Subroutine

First pass of field_plane_sums: partial(j, z) is the sum over x of y index j at z. Launch with threads = dim3(SZ, 1, 1) and blocks = dim3(n_y_blocks, nz, 1).

field_plane_sums_base m_base_backend Subroutine

Sum a DIR_X field over x and z on every local y-plane: sums(j) is the sum over the plane of y index j. The order of summation is fixed, so the result is reproducible.

field_plane_sums_cuda m_cuda_backend Subroutine

m_base_backend

field_plane_sums_omp m_omp_backend Subroutine

m_base_backend

field_plane_sums_reduce m_omptgt_kernels_fieldops Subroutine

Second pass of field_plane_sums: sums(j) is the sum over z of partial(j, z), in a fixed order.

field_plane_sums_reduce m_cuda_kernels_fieldops Subroutine

Second pass of field_plane_sums: sums(j) = sum over z of partial(j, z), in a fixed order. Launch with one thread per y index.

field_scale m_omptgt_kernels_fieldops Subroutine
field_scale m_cuda_kernels_fieldops Subroutine
field_scale_base m_base_backend Subroutine

Scales a field by a

field_scale_cuda m_cuda_backend Subroutine
field_scale_omp m_omp_backend Subroutine
field_set_abl_wall_stress m_omptgt_kernels_fieldops Subroutine

Drag law tau = drag_coeffu_c|u_h| from each column's own sampled velocity, written into one stress plane (component 1: x, 3: z).

field_set_abl_wall_stress m_cuda_kernels_fieldops Subroutine

Drag law tau = drag_coeffu_c|u_h| from each column's own sampled velocity, written into one stress plane (component 1: x, 3: z).

field_set_abl_wall_stress_base m_base_backend Subroutine

Replace one SGS stress plane using the local sampled velocity.

field_set_abl_wall_stress_cuda m_cuda_backend Subroutine

m_base_backend

field_set_abl_wall_stress_omp m_omp_backend Subroutine

m_base_backend

field_set_face_base m_base_backend Subroutine

A field is a subdomain with a rectangular cuboid shape. It has 6 faces, and these faces are either a subdomain boundary or a global domain boundary based on the location of the subdomain. This subroutine allows us to set any of these faces to a value, 'c_start' and 'c_end' for faces at opposite sides. 'face' is one of X_FACE, Y_FACE, Z_FACE from common.f90 Optionally, bc_start/bc_end select the BC type (default BC_DIRICHLET).

field_set_face_cuda m_cuda_backend Subroutine
field_set_face_from_field_base m_base_backend Subroutine

As field_set_face but with a spatially-varying inlet face field instead of a scalar c_start.

field_set_face_from_field_cuda m_cuda_backend Subroutine

Set a face of f using values supplied by another field f_start. Both fields must be DIR_X VERT pencil-layout. X_FACE uses the inlet plane (pencil index 1) of f_start plus a convective outflow update at the right face. Y_FACE copies the bottom and top y-pencil planes of f_start onto the corresponding planes of f (Dirichlet only).

field_set_face_from_field_omp m_omp_backend Subroutine
field_set_face_omp m_omp_backend Subroutine

field_set_face_base

field_set_x_face m_omptgt_kernels_fieldops Subroutine

Sets the x faces: a Dirichlet value c_start at the inlet (pencil index 1) and the convective outflow du/dt + Uc*du/dx = 0, Uc = c_end, at the outlet (pencil index nx). BC_NEUMANN (1) leaves a face untouched.

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_omptgt_kernels_fieldops Subroutine

As field_set_x_face, with the inlet taken from the inlet plane of f_start rather than a constant.

field_set_x_face_from_field m_cuda_kernels_fieldops Subroutine

Set domain X_FACE boundary values with a spatially-varying inlet.

Read more…
field_set_x_inlet_plane_base m_base_backend Subroutine

Overwrites the x = 1 plane (pencil index 1) of a DIR_X field with the host array plane(ny, nz), in local VERT dims. Only the plane crosses to the device, so a time-varying inlet can be refreshed without uploading and reordering a full 3D field.

field_set_x_inlet_plane_cuda m_cuda_backend Subroutine

field_set_x_inlet_plane_base

field_set_x_inlet_plane_omp m_omp_backend Subroutine

field_set_x_inlet_plane_base

field_set_y_face m_omptgt_kernels_fieldops Subroutine

Sets the bottom (y = 1) and top (y = ny) faces where flagged, so the two y faces can differ (ABL: no-slip floor, free-slip lid).

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) set_start/set_end: whether that face carries a prescribed value at all, so the two y-faces can differ (ABL: no-slip floor, free-slip lid).

field_set_y_face_from_field m_omptgt_kernels_fieldops Subroutine

Copies the bottom and top y planes of f_start onto those of f.

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.

Read more…
field_set_y_plane m_omptgt_kernels_fieldops Subroutine

Sets the y plane plane to c.

field_set_y_plane m_cuda_kernels_fieldops Subroutine

Set one interior y-plane to a constant. The caller resolves the plane into its position within a y-block and the group offset for that block, so this kernel stays free of layout arithmetic.

field_set_y_plane_base m_base_backend Subroutine

Set one interior y-plane of a DIR_X field to a constant.

Read more…
field_set_y_plane_cuda m_cuda_backend Subroutine

m_base_backend

field_set_y_plane_omp m_omp_backend Subroutine

m_base_backend

field_shift m_omptgt_kernels_fieldops Subroutine
field_shift m_cuda_kernels_fieldops Subroutine
field_shift_base m_base_backend Subroutine

Shifts a field by a

field_shift_cuda m_cuda_backend Subroutine
field_shift_omp m_omp_backend Subroutine
field_t m_field Interface
field_volume_integral_base m_base_backend Function

Reduces field to a scalar by integrating over the volume

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
fill_rhs x3d2_poisson_solver Subroutine

Fill host_field with the right-hand side of the Poisson equation. The routine uses the host-associated mesh, dims and n_pi. Edit this routine to supply another right-hand side, then rebuild. The coordinates are the cell centres from mesh%get_coordinates(i, j, k, CELL). The right-hand side must have zero mean. In every supported combination of boundary conditions, the pressure has periodic or homogeneous Neumann conditions. The default is cos(2 pi x).

filter_field m_solver Subroutine

Filter one velocity component in all three directions, in place.

Read more…
filter_in_dir m_solver Subroutine

Filter a DIR_X field along one direction, in place.

filter_width m_les Function

Volume-equivalent grid-filter width, Delta=(dxdydz)^(1/3).

finalise m_solver Subroutine

Release resources owned by the solver and its runtime models.

finalise m_monitoring Subroutine
finalise_adm m_adm Subroutine
finalise_case_specific_default m_base_case Subroutine
finalise_dummy m_turbine_dummy Subroutine
finalise_wind_turbine m_case_wind_turbine Subroutine
finalize m_time_integrator Subroutine
forcings_abl m_case_abl 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
forcings_wind_turbine m_case_wind_turbine Subroutine
friction_velocity m_abl_diagnostics Function

Friction velocity from the magnitude of a mean wall-stress vector.

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.

Read more…
get_block_ids m_allocator Function

Utility function that returns an array made of the id of the block currently in the block list. Return the array [0] if block list is empty.

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_dev_ptr m_field Function

Address of the block's storage in a separate device allocation, null for a host block. A device field type that keeps its storage behind a raw device pointer overrides this, letting its backend reach the storage by dynamic dispatch rather than by a type query.

get_device_bw_info_base m_base_backend Subroutine

Reports the memory clock rate and bus width of the target device, used to work out a theoretical peak bandwidth.

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 f optionally reordering into dir orientation. To output in same orientation as f, use call ...%get_field_data(data, f, f%dir)

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_log_level m_logger Function
get_n_dir m_mesh Function

Getter for the main dimension a field oriented along dir with data on data_loc

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'.

Read more…
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_solver Function
init m_omp_backend Function
init m_time_integrator Function
init m_cuda_backend Function
init m_monitoring Subroutine
init m_vector_calculus Function
init_adm m_adm Subroutine
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_dummy m_turbine_dummy Subroutine
init_omp_poisson_fft m_omp_backend Subroutine
init_poisson_fft_base m_base_backend Subroutine

Allocates and initialises the backend's FFT based Poisson solver.

initial_conditions_abl m_case_abl 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
initial_conditions_wind_turbine m_case_wind_turbine Subroutine
interpl_c2v m_vector_calculus Subroutine

Interpolation of a scalar field from cell centres to vertices.

Read more…
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

labelled_axpy m_omptgt_kernels_fieldops Subroutine

a, b, c += coeffs(1:3, l)*g at the points labelled l.

labelled_axpy m_cuda_kernels_fieldops Subroutine

a, b, c += coeffs(1:3, l)*g at the points labelled l; launch as vector_norm_squared.

labelled_sums m_omptgt_kernels_fieldops Subroutine

s(1:3, l) += sums of ga, gb and g*c over the points labelled l, as cuda/kernels/fieldops.f90: each thread accumulates runs of equal labels along its pencil and flushes a run when the label changes, so the atomics scale with the label changes rather than the points. Atomics instead of reduction(+:s), which flang cannot do on the GPU for an array whose shape is only known at run time.

labelled_sums m_cuda_kernels_fieldops Subroutine

s(1:3, l) += sums of ga, gb and g*c over the points labelled l; launch as vector_norm_squared. Each thread accumulates runs of equal labels along its pencil and flushes a run when the label changes, so the atomics scale with the label changes rather than the points.

laplacian m_vector_calculus Subroutine

Laplacian of a scalar field 'u'.

Read more…
les_t m_les Interface
log_debug m_logger Subroutine

Detail for developers, hidden unless the level is LOG_LEVEL_DEBUG.

log_error m_logger Subroutine

An error the caller handles itself. Use abort_run to stop the run.

log_info m_logger Subroutine

Progress and setup information.

log_warn m_logger Subroutine

Something is suspicious, but the run can carry on.

lowpass m_tdsops Subroutine

Tridiagonal low-pass filter, matching Incompact3d's filter.

Read more…
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

memcpy_d2d m_omptgt_common Subroutine

Copies n reals between two device addresses.

memcpy_d2h m_omptgt_common Subroutine

Copies n reals from device address src to host address dst.

memcpy_h2d m_omptgt_common Subroutine

Copies n reals from host address src to device address dst.

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
neutral_drag_coefficient m_les Function

Neutral rough-wall drag coefficient, (kappa/ln(h/z0))2, so that the wall stress is drag_coeffu|u| at the sampling height h.

neutral_log_law m_abl_diagnostics Function
neutral_wall_stress m_les Subroutine

Neutral rough-wall drag law. Returns the wall value of the SGS stress tau_xy (and tau_yz), signed so that a positive sample gives a positive stress and hence a momentum sink once differentiated.

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
omptgt_tdsops_init m_omptgt_tdsops Subroutine

Initialises tdsops in place. See tdsops_t for the arguments.

pack_110_xyz_to_yslab m_cuda_spectral Subroutine

Packs the physical Z-slab field block (nx, ny, nz_l) into the MPI_Alltoall send buffer, selecting for each destination rank s the Y range [sny_l+1, (s+1)ny_l] it owns in the Y-slab layout.

pack_110_yslab m_cuda_spectral Subroutine

Inverse of unpack_110_yslab: packs the Y-slab real view into the MPI_Alltoall send buffer, selecting for each destination rank s the Z range it originally owned in the physical Z-slab layout.

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).

parse_arguments x3d2_poisson_solver Subroutine

Read nx ny nz, then the optional bc_x bc_y bc_z, then the optional --repeat N. The bc values are periodic or dirichlet. The default is periodic. The default for --repeat is 1. Any other input prints one usage line and stops.

penta_periodic_columns m_omptgt_tdsops Function

Solves A_np*z_k = e_{p_k} for p = 1, 2, n-1, n with the non-periodic pentadiagonal LU factors, as thread 1 of der_penta_periodic does in the CUDA backend.

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_abl m_case_abl 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
postprocess_wind_turbine m_case_wind_turbine Subroutine
precorrect_walls m_solver Subroutine

Incompact3d's pre_correc: on each Dirichlet face, add the previous projection's tangential correction to the value set by the case. The projection that follows then leaves the face at its prescribed value plus dt(grad p_old - grad p_new), instead of -dtgrad p_new. The kept correction is dt_last*grad p_old, so it is rescaled by dt_now/dt_last first, as Incompact3d does with gdt(itr). The timestep is time_intg_t%stage_dt, the time the substep has advanced from the divergence-free start of the step, which is what the projection scales its correction by. For AB this ratio is always 1; for RK it changes between stages (1/2, 3/4, 1 for RK3). Before the first projection (or after a restart, as in Incompact3d) there is no correction to add.

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.

Read more…
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.

Read more…
process_spectral_000 m_omp_spectral Subroutine

Post-process div U* in spectral space for all periodic BCs.

Read more…
process_spectral_010 m_cuda_spectral Subroutine

Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size.

Read more…
process_spectral_010 m_omp_spectral Subroutine

Post-process div U* in spectral space, for non-periodic BC in y-dir.

Read more…
process_spectral_010_bw m_cuda_spectral Subroutine

Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size.

Read more…
process_spectral_010_fw m_cuda_spectral Subroutine

Post-processes the divergence of velocity in spectral space, including scaling w.r.t. grid size.

Read more…
process_spectral_010_poisson m_cuda_spectral Subroutine

Solve the Poisson equation at cell centres with non-periodic BC along y

Read more…
process_spectral_100 m_omp_spectral Subroutine

Post-process div U* in spectral space, for non-periodic BC in x-dir.

Read more…
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.

Read more…
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.

Read more…
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. nx, ny are the local loop bounds (equal to nx_glob, ny_glob on a single rank); the normalisation divisor always needs the globals.

process_spectral_110_poisson m_cuda_spectral Subroutine

Step 4: Poisson solve — divide by waves nx is the local loop bound; the Nyquist test always needs nx_glob.

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.

Read more…
process_spectral_110_x_pair_bw m_cuda_spectral Subroutine

Step 6 (backward): X paired even/odd recombine

process_spectral_110_x_pair_bw_mirror m_cuda_spectral Subroutine

Multi-rank counterpart of process_spectral_110_x_pair_bw, see process_spectral_110_x_pair_fw_mirror.

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_x_pair_fw_mirror m_cuda_spectral Subroutine

Multi-rank counterpart of process_spectral_110_x_pair_fw: the X paired split, but the partner mode lives on another rank, reached through the dim2 mirror exchange (see exchange_dim2_mirror). Unlike the single-rank kernel this only updates this rank's own modes; the partner rank updates its own copy the same way. At the global Nyquist mode (even grid size) the mirror partner is this rank's own pre-update value, so the formula below self-pairs it exactly as the single-rank kernel does.

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

project_forces_adm m_adm Subroutine
project_forces_dummy m_turbine_dummy Subroutine
pwmul m_omptgt_kernels_fieldops Subroutine
pwmul m_cuda_kernels_fieldops Subroutine
qcriterion_from_gradients m_omptgt_kernels_fieldops Subroutine
qcriterion_from_gradients m_cuda_kernels_fieldops Subroutine
query_device_memory m_omptgt_device_info Subroutine

Memory clock (kHz) and bus width (bits) of OpenMP device device. The vendor this build targets is tried first, then the other one, as the build only guesses the vendor for some compilers.

read_abl_nml m_config Subroutine
read_ad_file m_adm Subroutine

Read turbine disc parameters from a .ad file. Format: one header line followed by one row per disc of CoR(x) CoR(y) CoR(z) Yaw[deg] Tilt[deg] RotorDiam C_T alpha

read_channel_nml m_config Subroutine
read_checkpoint_adm m_adm Subroutine
read_checkpoint_dummy m_turbine_dummy 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
read_wind_turbine_nml m_config Subroutine
redistribute_110_to_yslab m_cuda_poisson_fft Subroutine

Redistributes the 110 field from the physical Z-slab (nx, ny, nz_l) to the cuFFTMp Y-slab real view (2*(nz/2+1), nx, ny_l), ahead of the forward transform. See the comment above pack_110_xyz_to_yslab.

redistribute_110_to_zslab m_cuda_poisson_fft Subroutine

Inverse of redistribute_110_to_yslab, after the backward transform.

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 m_omptgt_kernels_fieldops Subroutine

Reorders u_i in layout dir_from into u_o in layout dir_to.

reorder_base m_base_backend Subroutine

reorder subroutines are straightforward, they rearrange data into our specialist data structure so that regardless of the direction tridiagonal systems are solved efficiently and fast.

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_omptgt_backend Subroutine

Views the device storage of u as an array of its current shape. The pointer holds a device address: pass it to a kernel, never index it on the host.

Read more…
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_omptgt_kernels_fieldops Function
scalar_product m_cuda_kernels_fieldops Subroutine
scalar_product_base m_base_backend Function

Calculates the scalar product of two input fields

scalar_product_cart m_omptgt_kernels_fieldops Function

Scalar product of two DIR_C fields, whose storage is the padded Cartesian box n_c with the physical points in 1:dims.

scalar_product_cuda m_cuda_backend Function

scalar_product_base

scalar_product_omp m_omp_backend Function

scalar_product_base

seed_rng m_case_wind_turbine Subroutine

Deterministic seeding of the intrinsic RNG, distinct for every (rank, start iteration) pair. A fresh run starts at iter = 0.

sendrecv_3fields m_cuda_sendrecv Subroutine
sendrecv_3fields m_omptgt_sendrecv Subroutine
sendrecv_fields m_omp_sendrecv Subroutine
sendrecv_fields m_cuda_sendrecv Subroutine
sendrecv_fields m_omptgt_sendrecv Subroutine
set_data_loc m_field Subroutine
set_field_data m_base_backend Subroutine
set_init m_base_case Subroutine
set_log_level m_logger Subroutine

Drop messages below level (one of the LOG_LEVEL_* parameters).

set_shape m_field Subroutine
set_shape_cuda m_cuda_allocator Subroutine
set_x_inlet_plane m_cuda_kernels_fieldops Subroutine

Copies plane(y, z) into the x = 1 plane (pencil index 1) of a DIR_X VERT field, where f(i, 1, b) holds y = (y_block - 1)SZ + i and z = b - (y_block - 1)nz. Launch as add_scalar_x_face.

setup_field_arrays m_io_field_utils Subroutine
setup_output_adm m_adm Subroutine
setup_output_dummy m_turbine_dummy Subroutine
sgs_stress_from_gradients m_omptgt_kernels_fieldops Subroutine
sgs_stress_from_gradients m_cuda_kernels_fieldops Subroutine
slice_max_sum m_omptgt_kernels_fieldops Subroutine

Signed maximum and sum of the slice f(:, i_slice, :).

slice_max_sum_base m_base_backend Subroutine

Reduces a single slice of f at index i_slice along f's DIR axis. Returns signed max (not abs) and signed sum. No division by count. Caller is responsible for MPI_Allreduce across ranks.

slice_max_sum_cuda m_cuda_backend Subroutine

slice_max_sum_base

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

slice_max_sum_base

smagorinsky_from_gradients m_omptgt_kernels_fieldops 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
str m_logger Interface
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.

Read more…
stride_data m_io_field_utils Function
stride_data_to_buffer m_io_field_utils Subroutine
sum_intox m_omptgt_kernels_fieldops Subroutine

u += u_d, where u is DIR_X and u_d the same field in layout dir_from.

sum_intox_omp m_omp_backend Subroutine
sum_yintox m_cuda_kernels_reorder Subroutine
sum_yintox_base m_base_backend Subroutine

sum_yintox combines a y directional field into the corresponding x directional field.

sum_yintox_cuda m_cuda_backend Subroutine
sum_yintox_omp m_omp_backend Subroutine
sum_zintox m_cuda_kernels_reorder Subroutine
sum_zintox_base m_base_backend Subroutine

As sum_yintox, for a z directional field.

sum_zintox_cuda m_cuda_backend Subroutine
sum_zintox_omp m_omp_backend Subroutine
supports_device_field_export m_base_backend Function

Whether export_field_to_device can pack field f without staging it through host memory. Backends without device memory keep this default and report no support.

supports_device_field_export_cuda m_cuda_backend Function
sync_base m_base_backend Subroutine

Waits for outstanding device work.

sync_cuda m_cuda_backend Subroutine
sync_omp m_omp_backend Subroutine
tds_solve_base m_base_backend Subroutine

Applies a tridiagonal operator to u, the exact algorithm used being decided at runtime. Backend implementations are responsible from directing calls to tds_solve to the correct algorithm.

tds_solve_cuda m_cuda_backend Subroutine
tds_solve_dist m_omp_backend Subroutine
tds_solve_dist m_cuda_backend Subroutine
tds_solve_omp m_omp_backend Subroutine
tdsops_init m_tdsops Function

Constructor function for the tdsops_t class.

Read more…
tdsops_t m_tdsops Interface
thom_solve_base m_base_backend Subroutine

As tds_solve, solving the tridiagonal system with the Thomas algorithm.

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_omptgt_kernels_dist Subroutine

First phase for du = d(u), dud = d(u*v) and d2u = d2(u) in one sweep.

transeq_3fused_dist m_cuda_kernels_dist Subroutine
transeq_3fused_subs m_omptgt_kernels_dist Subroutine

Second phase: substitutes back and combines r_du = -1/2(convdu + dud) + nu*d2u.

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_base m_base_backend Subroutine

As transeq_x, for a scalar species transported by uvw.

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_base m_base_backend Subroutine

transeq equation obtains the derivatives direction by direction, and the exact algorithm used to obtain these derivatives are decided at runtime. Backend implementations are responsible from directing calls to transeq_x into the correct algorithm.

transeq_x_cuda m_cuda_backend Subroutine
transeq_x_omp m_omp_backend Subroutine
transeq_y_base m_base_backend Subroutine

As transeq_x, for the y direction.

transeq_y_cuda m_cuda_backend Subroutine
transeq_y_omp m_omp_backend Subroutine
transeq_z_base m_base_backend Subroutine

As transeq_x, for the z direction.

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.

Read more…
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.

Read more…
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.

Read more…
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
unpack_110_yslab m_cuda_spectral Subroutine

Unpacks the MPI_Alltoall receive buffer into the padded real view (2(nz/2+1), nx, ny_l) of the cuFFTMp Y-slab descriptor: data received from source rank s reconstructs the global Z range [snz_l+1, (s+1)*nz_l].

unpack_110_yslab_to_xyz m_cuda_spectral Subroutine

Inverse of pack_110_xyz_to_yslab: unpacks into the physical Z-slab field block (nx, ny, nz_l). dst must be zeroed by the caller first, as fft_backward_110_cuda already does for the single rank path.

update_adm m_adm Subroutine
update_dummy m_turbine_dummy Subroutine
usage_error x3d2_poisson_solver Subroutine
v_func m_case_tgv Function
validate_abl_config m_config Subroutine

Validate relationships between ABL namelist values in one place.

vecadd_base m_base_backend Subroutine

adds two vectors together: y = ax + by

vecadd_cuda m_cuda_backend Subroutine
vecadd_omp m_omp_backend Subroutine
veccopy_base m_base_backend Subroutine

copy vectors: y = x

veccopy_cuda m_cuda_backend Subroutine
veccopy_omp m_omp_backend Subroutine
vecmult_base m_base_backend Subroutine

pointwise multiplication between two vectors: y(:) = y(:) * x(:)

vecmult_cuda m_cuda_backend Subroutine

vecmult_base

vecmult_omp m_omp_backend Subroutine

vecmult_base

vector_calculus_t m_vector_calculus Interface
vector_norm_squared m_omptgt_kernels_fieldops Function
vector_norm_squared m_cuda_kernels_fieldops Subroutine
vector_norm_squared_base m_base_backend Function

Computes the global discrete squared norm of a three-component field.

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_omptgt_kernels_fieldops Function
volume_integral m_cuda_kernels_fieldops Subroutine
vorticity_from_gradients m_omptgt_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.

warn_if_rhs_mean_nonzero x3d2_poisson_solver Subroutine

Warn on rank 0 if the right-hand side does not have zero mean. The solver needs a zero-mean right-hand side for these boundary conditions. It discards the mean component. The solve runs in both cases.

wave_numbers m_poisson_fft Subroutine
waves_set m_poisson_fft Subroutine

Spectral equivalence constants

Read more…
write_checkpoint_adm m_adm Subroutine
write_checkpoint_dummy m_turbine_dummy Subroutine
write_output_adm m_adm Subroutine
write_output_dummy m_turbine_dummy Subroutine
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)

y_group_stride m_omp_backend Function

Groups between successive z in the OMP DIR_X ordering, group = stride*(z - 1) + y_block. It is the padded y-block count (see get_index_dir in m_ordering), so it can exceed the number of y-blocks a field uses, e.g. a cell field on a non-periodic y.

call~~graph~~CallGraph interface~abl_diagnostics_t m_abl_diagnostics::abl_diagnostics_t interface~abl_t m_abl::abl_t interface~allocator_t m_allocator::allocator_t proc~allocator_init m_allocator::allocator_init interface~allocator_t->proc~allocator_init interface~case_abl_t m_case_abl::case_abl_t proc~case_abl_init m_case_abl::case_abl_init interface~case_abl_t->proc~case_abl_init interface~case_channel_t m_case_channel::case_channel_t proc~case_channel_init m_case_channel::case_channel_init interface~case_channel_t->proc~case_channel_init interface~case_cylinder_t m_case_cylinder::case_cylinder_t proc~case_cylinder_init m_case_cylinder::case_cylinder_init interface~case_cylinder_t->proc~case_cylinder_init interface~case_generic_t m_case_generic::case_generic_t proc~case_generic_init m_case_generic::case_generic_init interface~case_generic_t->proc~case_generic_init interface~case_tgv_t m_case_tgv::case_tgv_t proc~case_tgv_init m_case_tgv::case_tgv_init interface~case_tgv_t->proc~case_tgv_init interface~case_wind_turbine_t m_case_wind_turbine::case_wind_turbine_t proc~case_wind_turbine_init m_case_wind_turbine::case_wind_turbine_init interface~case_wind_turbine_t->proc~case_wind_turbine_init interface~cuda_allocator_t m_cuda_allocator::cuda_allocator_t proc~cuda_allocator_init m_cuda_allocator::cuda_allocator_init interface~cuda_allocator_t->proc~cuda_allocator_init interface~cuda_backend_t m_cuda_backend::cuda_backend_t proc~init~8 m_cuda_backend::init interface~cuda_backend_t->proc~init~8 interface~cuda_field_t m_cuda_allocator::cuda_field_t proc~cuda_field_init m_cuda_allocator::cuda_field_init interface~cuda_field_t->proc~cuda_field_init interface~cuda_tdsops_t m_cuda_tdsops::cuda_tdsops_t proc~cuda_tdsops_init m_cuda_tdsops::cuda_tdsops_init interface~cuda_tdsops_t->proc~cuda_tdsops_init interface~cufftexecc2r_c m_cuda_poisson_fft::cufftExecC2R_C interface~cufftexecr2c_c m_cuda_poisson_fft::cufftExecR2C_C interface~dev_alloc m_omptgt_common::dev_alloc interface~dev_clone m_omptgt_common::dev_clone interface~dev_download m_omptgt_common::dev_download interface~dev_free m_omptgt_common::dev_free interface~dev_upload m_omptgt_common::dev_upload interface~field_t m_field::field_t proc~field_init m_field::field_init interface~field_t->proc~field_init interface~ibm_t m_ibm::ibm_t interface~les_t m_les::les_t interface~mesh_t m_mesh::mesh_t proc~mesh_init m_mesh::mesh_init interface~mesh_t->proc~mesh_init interface~omp_backend_t m_omp_backend::omp_backend_t proc~init~3 m_omp_backend::init interface~omp_backend_t->proc~init~3 interface~omp_poisson_fft_t m_omp_poisson_fft::omp_poisson_fft_t interface~omptgt_allocator_t m_omptgt_allocator::omptgt_allocator_t interface~omptgt_backend_t m_omptgt_backend::omptgt_backend_t interface~solver_t m_solver::solver_t proc~init~2 m_solver::init interface~solver_t->proc~init~2 interface~str m_logger::str interface~tdsops_t m_tdsops::tdsops_t proc~tdsops_init m_tdsops::tdsops_init interface~tdsops_t->proc~tdsops_init interface~time_intg_t m_time_integrator::time_intg_t proc~init~4 m_time_integrator::init interface~time_intg_t->proc~init~4 interface~vector_calculus_t m_vector_calculus::vector_calculus_t proc~init~14 m_vector_calculus::init interface~vector_calculus_t->proc~init~14 none~get_n m_mesh::mesh_t%get_n proc~get_n_dir m_mesh::mesh_t%get_n_dir none~get_n->proc~get_n_dir proc~get_n_phi m_mesh::mesh_t%get_n_phi none~get_n->proc~get_n_phi none~read_data m_io_session::reader_session_t%read_data none~read_data~2 m_io_base::io_reader_t%read_data none~read_data->none~read_data~2 proc~abort_run m_logger::abort_run none~read_data->proc~abort_run none~read_data~2->proc~abort_run none~write_attribute~2 m_io_base::io_writer_t%write_attribute none~write_data m_io_session::writer_session_t%write_data none~write_data~2 m_io_base::io_writer_t%write_data none~write_data->none~write_data~2 none~write_data->proc~abort_run proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized proc~accumulate_mean m_stats::accumulate_mean proc~add_scalar_x_face m_cuda_kernels_fieldops::add_scalar_x_face proc~alloc_cuda_tdsops m_cuda_backend::cuda_backend_t%alloc_cuda_tdsops proc~alloc_omp_tdsops m_omp_backend::omp_backend_t%alloc_omp_tdsops proc~alloc_tdsops_base m_base_backend::base_backend_t%alloc_tdsops_base proc~alloc_tdsops_base->proc~abort_run proc~allocate_io_reader m_io_backend::allocate_io_reader proc~allocate_io_reader~2 m_io_backend::allocate_io_reader proc~allocate_io_writer m_io_backend::allocate_io_writer proc~allocate_io_writer~2 m_io_backend::allocate_io_writer proc~allocate_tdsops m_tdsops_setup::allocate_tdsops proc~allocate_tdsops->interface~str proc~allocate_tdsops->none~get_n proc~allocate_tdsops->proc~alloc_tdsops_base proc~log_warn m_logger::log_warn proc~allocate_tdsops->proc~log_warn proc~apply_bc_abl m_case_abl::case_abl_t%apply_BC_abl proc~field_set_face_base m_base_backend::base_backend_t%field_set_face_base proc~apply_bc_abl->proc~field_set_face_base proc~apply_bc_channel m_case_channel::case_channel_t%apply_BC_channel proc~field_set_face_from_field_base m_base_backend::base_backend_t%field_set_face_from_field_base proc~apply_bc_channel->proc~field_set_face_from_field_base proc~apply_bc_cylinder m_case_cylinder::case_cylinder_t%apply_BC_cylinder proc~apply_bc_cylinder->proc~field_set_face_from_field_base proc~apply_bc_generic m_case_generic::case_generic_t%apply_BC_generic proc~apply_bc_tgv m_case_tgv::case_tgv_t%apply_BC_tgv proc~apply_bc_wind_turbine m_case_wind_turbine::case_wind_turbine_t%apply_BC_wind_turbine proc~compute_outflow_params m_case_wind_turbine::case_wind_turbine_t%compute_outflow_params proc~apply_bc_wind_turbine->proc~compute_outflow_params proc~field_add_const_x_face_base m_base_backend::base_backend_t%field_add_const_x_face_base proc~apply_bc_wind_turbine->proc~field_add_const_x_face_base proc~apply_bc_wind_turbine->proc~field_set_face_from_field_base proc~get_dims m_mesh::mesh_t%get_dims proc~apply_bc_wind_turbine->proc~get_dims proc~get_global_dims m_mesh::mesh_t%get_global_dims proc~apply_bc_wind_turbine->proc~get_global_dims proc~slice_max_sum_base m_base_backend::base_backend_t%slice_max_sum_base proc~apply_bc_wind_turbine->proc~slice_max_sum_base mpi_allreduce mpi_allreduce proc~apply_bc_wind_turbine->mpi_allreduce proc~apply_les m_solver::solver_t%apply_les none~apply_sgs_stress m_les::les_t%apply_sgs_stress proc~apply_les->none~apply_sgs_stress proc~apply_spatial_filter m_solver::solver_t%apply_spatial_filter proc~filter_field m_solver::filter_field proc~apply_spatial_filter->proc~filter_field proc~axpby m_omptgt_kernels_fieldops::axpby proc~axpby~2 m_cuda_kernels_fieldops::axpby proc~base_init m_base_backend::base_backend_t%base_init proc~base_init~2 m_poisson_fft::poisson_fft_t%base_init proc~base_init~2->proc~abort_run proc~base_init~2->proc~get_dims proc~base_init~2->proc~get_global_dims proc~base_init~2->proc~log_warn proc~stretching_matrix m_poisson_fft::poisson_fft_t%stretching_matrix proc~base_init~2->proc~stretching_matrix proc~waves_set m_poisson_fft::poisson_fft_t%waves_set proc~base_init~2->proc~waves_set proc~buffer_copy m_omptgt_kernels_fieldops::buffer_copy proc~buffer_copy~2 m_cuda_kernels_fieldops::buffer_copy proc~case_abl_init->proc~abort_run proc~case_init m_base_case::base_case_t%case_init proc~case_abl_init->proc~case_init proc~get_argument m_common::get_argument proc~case_abl_init->proc~get_argument none~configure_wall_boundary_correction m_abl::abl_t%configure_wall_boundary_correction proc~case_abl_init->none~configure_wall_boundary_correction proc~case_channel_init->proc~case_init proc~case_channel_init->proc~get_argument proc~case_cylinder_init->proc~case_init proc~case_cylinder_init->proc~get_argument proc~case_finalise m_base_case::base_case_t%case_finalise proc~finalise_case_specific_default m_base_case::base_case_t%finalise_case_specific_default proc~case_finalise->proc~finalise_case_specific_default proc~finalise~4 m_monitoring::monitoring_t%finalise proc~case_finalise->proc~finalise~4 proc~log_info m_logger::log_info proc~case_finalise->proc~log_info proc~release_block m_allocator::allocator_t%release_block proc~case_finalise->proc~release_block proc~case_generic_init->proc~case_init proc~has_output_field m_config::has_output_field proc~case_init->proc~has_output_field proc~case_init->proc~init~2 initial_conditions initial_conditions proc~case_init->initial_conditions none~handle_restart m_io_manager::io_manager_t%handle_restart proc~case_init->none~handle_restart none~is_restart m_io_manager::io_manager_t%is_restart proc~case_init->none~is_restart proc~case_tgv_init->proc~case_init proc~case_wind_turbine_init->proc~abort_run proc~case_wind_turbine_init->proc~case_init proc~case_wind_turbine_init->proc~get_argument proc~is_root m_mesh_content::par_t%is_root proc~case_wind_turbine_init->proc~is_root proc~seed_rng m_case_wind_turbine::seed_rng proc~case_wind_turbine_init->proc~seed_rng init init proc~case_wind_turbine_init->init proc~case_wind_turbine_init->none~is_restart none~register_checkpoint_state m_io_manager::io_manager_t%register_checkpoint_state proc~case_wind_turbine_init->none~register_checkpoint_state setup_output setup_output proc~case_wind_turbine_init->setup_output proc~check_cuda m_cuda_errors::check_cuda proc~check_cuda->interface~str proc~check_cuda->proc~abort_run cudageterrorstring cudageterrorstring proc~check_cuda->cudageterrorstring proc~check_cufft m_cuda_errors::check_cufft proc~check_cufft->interface~str proc~check_cufft->proc~abort_run proc~check_labelled_fields m_omp_backend::check_labelled_fields proc~check_labelled_fields->proc~abort_run proc~check_labelled_fields~3 m_cuda_backend::check_labelled_fields proc~check_labelled_fields~3->proc~abort_run proc~check_mpi m_logger::check_mpi proc~check_mpi->interface~str proc~check_mpi->proc~abort_run mpi_error_string mpi_error_string proc~check_mpi->mpi_error_string proc~cleanup_field_arrays m_io_field_utils::cleanup_field_arrays proc~cleanup_field_arrays->proc~release_block proc~cleanup_field_buffers m_io_field_utils::cleanup_field_buffers proc~compute_derived_fields m_postprocess::compute_derived_fields proc~compute_qcriterion_base m_base_backend::base_backend_t%compute_qcriterion_base proc~compute_derived_fields->proc~compute_qcriterion_base proc~compute_vorticity_base m_base_backend::base_backend_t%compute_vorticity_base proc~compute_derived_fields->proc~compute_vorticity_base proc~get_block m_allocator::allocator_t%get_block proc~compute_derived_fields->proc~get_block proc~compute_derived_fields->proc~release_block proc~reorder_base m_base_backend::base_backend_t%reorder_base proc~compute_derived_fields->proc~reorder_base proc~tds_solve_base m_base_backend::base_backend_t%tds_solve_base proc~compute_derived_fields->proc~tds_solve_base proc~compute_outflow_params->proc~get_dims proc~compute_outflow_params->proc~slice_max_sum_base proc~compute_outflow_params->mpi_allreduce proc~compute_outflow_params~2 m_case_cylinder::case_cylinder_t%compute_outflow_params proc~compute_outflow_params~2->proc~get_dims proc~compute_outflow_params~2->proc~get_global_dims proc~compute_outflow_params~2->proc~slice_max_sum_base proc~compute_outflow_params~2->mpi_allreduce proc~compute_pressure_vert m_postprocess::compute_pressure_vert proc~compute_pressure_vert->proc~abort_run proc~compute_pressure_vert->proc~get_block proc~interpl_c2v m_vector_calculus::vector_calculus_t%interpl_c2v proc~compute_pressure_vert->proc~interpl_c2v proc~vecadd_base m_base_backend::base_backend_t%vecadd_base proc~compute_pressure_vert->proc~vecadd_base proc~compute_qcriterion_base->proc~abort_run proc~compute_qcriterion_cuda m_cuda_backend::cuda_backend_t%compute_qcriterion_cuda proc~qcriterion_from_gradients~2 m_cuda_kernels_fieldops::qcriterion_from_gradients proc~compute_qcriterion_cuda->proc~qcriterion_from_gradients~2 proc~resolve_field_t~2 m_cuda_backend::resolve_field_t proc~compute_qcriterion_cuda->proc~resolve_field_t~2 dim3 dim3 proc~compute_qcriterion_cuda->dim3 proc~compute_qcriterion_omp m_omp_backend::omp_backend_t%compute_qcriterion_omp proc~compute_rank_pos_from_global m_mesh_content::par_t%compute_rank_pos_from_global proc~compute_sgs_stress_base m_base_backend::base_backend_t%compute_sgs_stress_base proc~compute_sgs_stress_base->proc~abort_run proc~compute_sgs_stress_cuda m_cuda_backend::cuda_backend_t%compute_sgs_stress_cuda proc~compute_sgs_stress_cuda->proc~resolve_field_t~2 proc~sgs_stress_from_gradients~2 m_cuda_kernels_fieldops::sgs_stress_from_gradients proc~compute_sgs_stress_cuda->proc~sgs_stress_from_gradients~2 proc~compute_sgs_stress_cuda->dim3 proc~compute_sgs_stress_omp m_omp_backend::omp_backend_t%compute_sgs_stress_omp proc~compute_smagorinsky_nut_base m_base_backend::base_backend_t%compute_smagorinsky_nut_base proc~compute_smagorinsky_nut_base->proc~abort_run proc~compute_smagorinsky_nut_cuda m_cuda_backend::cuda_backend_t%compute_smagorinsky_nut_cuda proc~compute_smagorinsky_nut_cuda->proc~resolve_field_t~2 proc~smagorinsky_from_gradients~2 m_cuda_kernels_fieldops::smagorinsky_from_gradients proc~compute_smagorinsky_nut_cuda->proc~smagorinsky_from_gradients~2 proc~compute_smagorinsky_nut_cuda->dim3 proc~compute_smagorinsky_nut_omp m_omp_backend::omp_backend_t%compute_smagorinsky_nut_omp proc~compute_vorticity_base->proc~abort_run proc~compute_vorticity_cuda m_cuda_backend::cuda_backend_t%compute_vorticity_cuda proc~compute_vorticity_cuda->proc~resolve_field_t~2 proc~vorticity_from_gradients~2 m_cuda_kernels_fieldops::vorticity_from_gradients proc~compute_vorticity_cuda->proc~vorticity_from_gradients~2 proc~compute_vorticity_cuda->dim3 proc~compute_vorticity_omp m_omp_backend::omp_backend_t%compute_vorticity_omp proc~copy m_omptgt_kernels_fieldops::copy proc~copy_cell2vert_dims m_mesh_content::grid_t%copy_cell2vert_dims proc~copy_data_to_f_base m_base_backend::base_backend_t%copy_data_to_f_base proc~copy_data_to_f_base->proc~abort_run proc~copy_data_to_f_cuda m_cuda_backend::cuda_backend_t%copy_data_to_f_cuda proc~copy_data_to_f_omp m_omp_backend::omp_backend_t%copy_data_to_f_omp proc~copy_f_to_data_base m_base_backend::base_backend_t%copy_f_to_data_base proc~copy_f_to_data_base->proc~abort_run proc~copy_f_to_data_cuda m_cuda_backend::cuda_backend_t%copy_f_to_data_cuda proc~copy_f_to_data_omp m_omp_backend::omp_backend_t%copy_f_to_data_omp proc~copy_halo m_cuda_sendrecv::copy_halo proc~copy_halo->proc~abort_run proc~copy_into_buffers m_omp_backend::copy_into_buffers proc~copy_into_buffers~3 m_cuda_backend::copy_into_buffers proc~copy_into_buffers~3->proc~buffer_copy~2 proc~copy_into_buffers~3->dim3 proc~copy_vert2cell_dims m_mesh_content::grid_t%copy_vert2cell_dims proc~copy~2 m_cuda_kernels_fieldops::copy proc~create_block m_allocator::allocator_t%create_block proc~create_cuda_block m_cuda_allocator::cuda_allocator_t%create_cuda_block proc~cuda_tdsops_init->proc~tdsops_init proc~curl m_solver::solver_t%curl proc~curl~2 m_vector_calculus::vector_calculus_t%curl proc~curl->proc~curl~2 proc~curl~2->proc~abort_run proc~curl~2->proc~get_block proc~curl~2->proc~release_block proc~curl~2->proc~reorder_base proc~curl~2->proc~tds_solve_base proc~curl~2->proc~vecadd_base proc~decomposition_2decomp m_decomp::decomposition_2decomp proc~decomposition_2decomp->proc~abort_run proc~decomposition_2decomp->proc~compute_rank_pos_from_global proc~decomposition_2decomp->proc~copy_vert2cell_dims proc~decomposition_2decomp->proc~log_info decomp_2d_init decomp_2d_init proc~decomposition_2decomp->decomp_2d_init proc~decomposition_2decomp->mpi_allreduce mpi_cart_coords mpi_cart_coords proc~decomposition_2decomp->mpi_cart_coords proc~decomposition_2decomp->mpi_comm_rank xsize xsize proc~decomposition_2decomp->xsize xstart xstart proc~decomposition_2decomp->xstart proc~decomposition_2decomp~2 m_decomp::decomposition_2decomp proc~decomposition_2decomp~2->proc~abort_run proc~decomposition_generic m_mesh::decomposition_generic proc~decomposition_generic->proc~compute_rank_pos_from_global proc~decomposition_generic->proc~copy_vert2cell_dims proc~decomposition_generic->proc~log_info proc~define_bc_abl m_case_abl::case_abl_t%define_BC_abl proc~field_plane_sums_base m_base_backend::base_backend_t%field_plane_sums_base proc~define_bc_abl->proc~field_plane_sums_base proc~field_shift_base m_base_backend::base_backend_t%field_shift_base proc~define_bc_abl->proc~field_shift_base proc~define_bc_abl->proc~get_dims proc~define_bc_abl->proc~get_global_dims proc~define_bc_abl->mpi_allreduce proc~define_bc_channel m_case_channel::case_channel_t%define_BC_channel proc~define_bc_channel->proc~field_shift_base proc~field_volume_integral_base m_base_backend::base_backend_t%field_volume_integral_base proc~define_bc_channel->proc~field_volume_integral_base proc~define_bc_channel->proc~get_block proc~define_bc_channel->proc~get_dims proc~define_bc_channel->proc~get_global_dims proc~define_bc_channel->proc~release_block proc~set_data_loc m_field::field_t%set_data_loc proc~define_bc_channel->proc~set_data_loc proc~set_field_data m_base_backend::base_backend_t%set_field_data proc~define_bc_channel->proc~set_field_data proc~define_bc_cylinder m_case_cylinder::case_cylinder_t%define_BC_cylinder proc~define_bc_cylinder->proc~compute_outflow_params~2 proc~define_bc_cylinder->proc~get_block proc~define_bc_cylinder->proc~get_dims proc~define_bc_cylinder->proc~release_block proc~define_bc_cylinder->proc~set_data_loc proc~define_bc_cylinder->proc~set_field_data proc~define_bc_generic m_case_generic::case_generic_t%define_BC_generic proc~define_bc_tgv m_case_tgv::case_tgv_t%define_BC_tgv proc~define_bc_wind_turbine m_case_wind_turbine::case_wind_turbine_t%define_BC_wind_turbine proc~field_set_x_inlet_plane_base m_base_backend::base_backend_t%field_set_x_inlet_plane_base proc~define_bc_wind_turbine->proc~field_set_x_inlet_plane_base proc~define_bc_wind_turbine->proc~get_block proc~define_bc_wind_turbine->proc~get_dims proc~define_bc_wind_turbine->proc~set_data_loc proc~der_penta_full m_omp_kernels_dist::der_penta_full proc~der_penta_full~2 m_omptgt_kernels_dist::der_penta_full proc~der_penta_full~3 m_cuda_kernels_dist::der_penta_full proc~der_penta_periodic m_omp_kernels_dist::der_penta_periodic proc~der_penta_periodic~2 m_omptgt_kernels_dist::der_penta_periodic proc~der_penta_periodic~3 m_cuda_kernels_dist::der_penta_periodic syncthreads syncthreads proc~der_penta_periodic~3->syncthreads proc~der_univ_dist m_omp_kernels_dist::der_univ_dist proc~der_univ_dist~2 m_omptgt_kernels_dist::der_univ_dist proc~der_univ_dist~3 m_cuda_kernels_dist::der_univ_dist proc~der_univ_fused_subs m_omp_kernels_dist::der_univ_fused_subs proc~der_univ_subs m_omp_kernels_dist::der_univ_subs proc~der_univ_subs~2 m_omptgt_kernels_dist::der_univ_subs proc~der_univ_subs~3 m_cuda_kernels_dist::der_univ_subs proc~der_univ_thom m_omptgt_kernels_thom::der_univ_thom proc~der_univ_thom_per m_omptgt_kernels_thom::der_univ_thom_per proc~der_univ_thom_per~2 m_cuda_kernels_thom::der_univ_thom_per proc~der_univ_thom_per~3 m_omp_kernels_thom::der_univ_thom_per proc~der_univ_thom~2 m_cuda_kernels_thom::der_univ_thom proc~der_univ_thom~3 m_omp_kernels_thom::der_univ_thom proc~deriv_1st m_tdsops::tdsops_t%deriv_1st proc~deriv_1st->proc~abort_run proc~preprocess_dist m_tdsops::tdsops_t%preprocess_dist proc~deriv_1st->proc~preprocess_dist proc~preprocess_penta_dist m_tdsops::tdsops_t%preprocess_penta_dist proc~deriv_1st->proc~preprocess_penta_dist proc~preprocess_thom m_tdsops::tdsops_t%preprocess_thom proc~deriv_1st->proc~preprocess_thom proc~deriv_2nd m_tdsops::tdsops_t%deriv_2nd proc~deriv_2nd->proc~abort_run proc~deriv_2nd->proc~preprocess_dist proc~deriv_2nd->proc~preprocess_thom proc~destroy m_allocator::allocator_t%destroy proc~device_sync m_omptgt_common::device_sync proc~device_sync->proc~abort_run proc~disc_kernel m_adm::disc_kernel proc~divergence_v2c m_vector_calculus::vector_calculus_t%divergence_v2c proc~divergence_v2c->proc~abort_run proc~divergence_v2c->proc~get_block proc~divergence_v2c->proc~release_block proc~divergence_v2c->proc~reorder_base proc~divergence_v2c->proc~tds_solve_base proc~divergence_v2c->proc~vecadd_base proc~divergence_v2p m_solver::solver_t%divergence_v2p proc~divergence_v2p->proc~divergence_v2c proc~enforce_periodicity_x m_cuda_spectral::enforce_periodicity_x proc~enforce_periodicity_x_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%enforce_periodicity_x_cuda proc~enforce_periodicity_x_cuda->proc~enforce_periodicity_x proc~enforce_periodicity_x_cuda->dim3 proc~enforce_periodicity_x_omp m_omp_poisson_fft::omp_poisson_fft_t%enforce_periodicity_x_omp proc~enforce_periodicity_xy m_cuda_spectral::enforce_periodicity_xy proc~enforce_periodicity_xy_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%enforce_periodicity_xy_cuda proc~enforce_periodicity_xy_cuda->proc~enforce_periodicity_xy proc~enforce_periodicity_xy_cuda->dim3 proc~enforce_periodicity_xy_omp m_omp_poisson_fft::omp_poisson_fft_t%enforce_periodicity_xy_omp proc~enforce_periodicity_y m_cuda_spectral::enforce_periodicity_y proc~enforce_periodicity_y_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%enforce_periodicity_y_cuda proc~enforce_periodicity_y_cuda->proc~enforce_periodicity_y proc~enforce_periodicity_y_cuda->dim3 proc~enforce_periodicity_y_omp m_omp_poisson_fft::omp_poisson_fft_t%enforce_periodicity_y_omp proc~exchange_dim2_mirror m_cuda_poisson_fft::cuda_poisson_fft_t%exchange_dim2_mirror proc~exchange_dim2_mirror->proc~abort_run proc~exchange_dim2_mirror->proc~check_cuda proc~exchange_dim2_mirror->proc~check_mpi proc~pack_spectral_plane m_cuda_spectral::pack_spectral_plane proc~exchange_dim2_mirror->proc~pack_spectral_plane cudastreamsynchronize cudastreamsynchronize proc~exchange_dim2_mirror->cudastreamsynchronize proc~exchange_dim2_mirror->dim3 mpi_sendrecv mpi_sendrecv proc~exchange_dim2_mirror->mpi_sendrecv proc~exec_dist_penta_compact m_omptgt_exec_dist::exec_dist_penta_compact proc~exec_dist_penta_compact->proc~der_penta_full~2 proc~exec_dist_penta_compact~2 m_cuda_exec_dist::exec_dist_penta_compact proc~exec_dist_penta_compact~2->proc~der_penta_full~3 proc~exec_dist_penta_compact~3 m_omp_exec_dist::exec_dist_penta_compact proc~exec_dist_penta_compact~3->proc~der_penta_full proc~exec_dist_penta_periodic m_omptgt_exec_dist::exec_dist_penta_periodic proc~exec_dist_penta_periodic->proc~abort_run proc~exec_dist_penta_periodic->proc~der_penta_periodic~2 proc~exec_dist_penta_periodic~2 m_cuda_exec_dist::exec_dist_penta_periodic proc~exec_dist_penta_periodic~2->proc~der_penta_periodic~3 proc~exec_dist_penta_periodic~3 m_omp_exec_dist::exec_dist_penta_periodic proc~exec_dist_penta_periodic~3->proc~der_penta_periodic proc~exec_dist_tds_compact m_omptgt_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact->proc~der_univ_dist~2 proc~exec_dist_tds_compact->proc~der_univ_subs~2 proc~sendrecv_fields~3 m_omptgt_sendrecv::sendrecv_fields proc~exec_dist_tds_compact->proc~sendrecv_fields~3 proc~exec_dist_tds_compact~2 m_cuda_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~2->proc~der_univ_dist~3 proc~exec_dist_tds_compact~2->proc~der_univ_subs~3 proc~sendrecv_fields~2 m_cuda_sendrecv::sendrecv_fields proc~exec_dist_tds_compact~2->proc~sendrecv_fields~2 proc~exec_dist_tds_compact~3 m_omp_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~3->proc~der_univ_dist proc~exec_dist_tds_compact~3->proc~der_univ_subs proc~sendrecv_fields m_omp_sendrecv::sendrecv_fields proc~exec_dist_tds_compact~3->proc~sendrecv_fields proc~exec_dist_transeq_3fused m_omptgt_exec_dist::exec_dist_transeq_3fused proc~sendrecv_3fields~2 m_omptgt_sendrecv::sendrecv_3fields proc~exec_dist_transeq_3fused->proc~sendrecv_3fields~2 proc~transeq_3fused_dist m_omptgt_kernels_dist::transeq_3fused_dist proc~exec_dist_transeq_3fused->proc~transeq_3fused_dist proc~transeq_3fused_subs m_omptgt_kernels_dist::transeq_3fused_subs proc~exec_dist_transeq_3fused->proc~transeq_3fused_subs proc~exec_dist_transeq_3fused~2 m_cuda_exec_dist::exec_dist_transeq_3fused proc~sendrecv_3fields m_cuda_sendrecv::sendrecv_3fields proc~exec_dist_transeq_3fused~2->proc~sendrecv_3fields proc~transeq_3fused_dist~2 m_cuda_kernels_dist::transeq_3fused_dist proc~exec_dist_transeq_3fused~2->proc~transeq_3fused_dist~2 proc~transeq_3fused_subs~2 m_cuda_kernels_dist::transeq_3fused_subs proc~exec_dist_transeq_3fused~2->proc~transeq_3fused_subs~2 proc~exec_dist_transeq_compact m_omp_exec_dist::exec_dist_transeq_compact proc~exec_dist_transeq_compact->proc~der_univ_dist proc~exec_dist_transeq_compact->proc~der_univ_fused_subs proc~exec_dist_transeq_compact->proc~sendrecv_fields proc~exec_thom_tds_compact m_exec_thom::exec_thom_tds_compact proc~exec_thom_tds_compact->proc~der_univ_thom_per~3 proc~exec_thom_tds_compact->proc~der_univ_thom~3 proc~exec_thom_tds_compact~2 m_omptgt_exec_thom::exec_thom_tds_compact proc~exec_thom_tds_compact~2->proc~der_univ_thom proc~exec_thom_tds_compact~2->proc~der_univ_thom_per proc~exec_thom_tds_compact~3 m_cuda_exec_thom::exec_thom_tds_compact proc~exec_thom_tds_compact~3->proc~der_univ_thom_per~2 proc~exec_thom_tds_compact~3->proc~der_univ_thom~2 proc~export_field_to_device m_base_backend::base_backend_t%export_field_to_device proc~export_field_to_device->proc~abort_run proc~export_field_to_device_cuda m_cuda_backend::cuda_backend_t%export_field_to_device_cuda proc~export_field_to_device_cuda->proc~abort_run proc~export_field_to_device_cuda->proc~check_cuda proc~export_field_to_device_cuda->proc~get_block proc~get_padded_dims m_allocator::allocator_t%get_padded_dims proc~export_field_to_device_cuda->proc~get_padded_dims proc~get_rdr_from_dirs m_common::get_rdr_from_dirs proc~export_field_to_device_cuda->proc~get_rdr_from_dirs proc~pack_c_dp m_cuda_kernels_reorder::pack_c_dp proc~export_field_to_device_cuda->proc~pack_c_dp proc~pack_c_sp m_cuda_kernels_reorder::pack_c_sp proc~export_field_to_device_cuda->proc~pack_c_sp proc~pack_x2c_dp m_cuda_kernels_reorder::pack_x2c_dp proc~export_field_to_device_cuda->proc~pack_x2c_dp proc~pack_x2c_sp m_cuda_kernels_reorder::pack_x2c_sp proc~export_field_to_device_cuda->proc~pack_x2c_sp proc~export_field_to_device_cuda->proc~release_block proc~reorder_cuda m_cuda_backend::cuda_backend_t%reorder_cuda proc~export_field_to_device_cuda->proc~reorder_cuda proc~export_field_to_device_cuda->proc~resolve_field_t~2 c_devptr c_devptr proc~export_field_to_device_cuda->c_devptr cudaforgetdefaultstream cudaforgetdefaultstream proc~export_field_to_device_cuda->cudaforgetdefaultstream cudagetlasterror cudagetlasterror proc~export_field_to_device_cuda->cudagetlasterror proc~export_field_to_device_cuda->cudastreamsynchronize proc~export_field_to_device_cuda->dim3 proc~fft_backward_100_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_backward_100_cuda proc~fft_backward_100_cuda->interface~cufftexecc2r_c proc~fft_backward_100_cuda->proc~check_cufft proc~memcpy3d_with_transpose_back m_cuda_spectral::memcpy3D_with_transpose_back proc~fft_backward_100_cuda->proc~memcpy3d_with_transpose_back cufftexecz2d cufftexecz2d proc~fft_backward_100_cuda->cufftexecz2d cufftxtexecdescriptor cufftxtexecdescriptor proc~fft_backward_100_cuda->cufftxtexecdescriptor proc~fft_backward_100_cuda->dim3 proc~fft_backward_100_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_backward_100_omp decomp_2d_fft_3d decomp_2d_fft_3d proc~fft_backward_100_omp->decomp_2d_fft_3d transpose_x_to_y transpose_x_to_y proc~fft_backward_100_omp->transpose_x_to_y ysz ysz proc~fft_backward_100_omp->ysz proc~fft_backward_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_backward_110_cuda proc~fft_backward_110_cuda->interface~cufftexecc2r_c proc~fft_backward_110_cuda->proc~check_cufft proc~redistribute_110_to_zslab m_cuda_poisson_fft::cuda_poisson_fft_t%redistribute_110_to_zslab proc~fft_backward_110_cuda->proc~redistribute_110_to_zslab proc~transpose_zxy_to_xyz m_cuda_spectral::transpose_zxy_to_xyz proc~fft_backward_110_cuda->proc~transpose_zxy_to_xyz proc~fft_backward_110_cuda->cufftexecz2d proc~fft_backward_110_cuda->cufftxtexecdescriptor proc~fft_backward_110_cuda->dim3 proc~fft_backward_110_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_backward_110_omp proc~fft_backward_110_omp->decomp_2d_fft_3d transpose_y_to_x transpose_y_to_x proc~fft_backward_110_omp->transpose_y_to_x transpose_z_to_y transpose_z_to_y proc~fft_backward_110_omp->transpose_z_to_y proc~fft_backward_110_omp->ysz zsz zsz proc~fft_backward_110_omp->zsz proc~fft_backward_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_backward_cuda proc~fft_backward_cuda->interface~cufftexecc2r_c proc~fft_backward_cuda->proc~check_cufft proc~memcpy3d m_cuda_spectral::memcpy3D proc~fft_backward_cuda->proc~memcpy3d proc~fft_backward_cuda->cufftexecz2d proc~fft_backward_cuda->cufftxtexecdescriptor proc~fft_backward_cuda->dim3 proc~fft_backward_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_backward_omp proc~fft_backward_omp->decomp_2d_fft_3d proc~fft_forward_100_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_forward_100_cuda proc~fft_forward_100_cuda->interface~cufftexecr2c_c proc~fft_forward_100_cuda->proc~check_cufft proc~memcpy3d_with_transpose m_cuda_spectral::memcpy3D_with_transpose proc~fft_forward_100_cuda->proc~memcpy3d_with_transpose cufftexecd2z cufftexecd2z proc~fft_forward_100_cuda->cufftexecd2z proc~fft_forward_100_cuda->cufftxtexecdescriptor proc~fft_forward_100_cuda->dim3 proc~fft_forward_100_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_forward_100_omp proc~fft_forward_100_omp->decomp_2d_fft_3d proc~fft_forward_100_omp->transpose_y_to_x proc~fft_forward_100_omp->ysz proc~fft_forward_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_forward_110_cuda proc~fft_forward_110_cuda->interface~cufftexecr2c_c proc~fft_forward_110_cuda->proc~check_cufft proc~redistribute_110_to_yslab m_cuda_poisson_fft::cuda_poisson_fft_t%redistribute_110_to_yslab proc~fft_forward_110_cuda->proc~redistribute_110_to_yslab proc~transpose_xyz_to_zxy m_cuda_spectral::transpose_xyz_to_zxy proc~fft_forward_110_cuda->proc~transpose_xyz_to_zxy proc~fft_forward_110_cuda->cufftexecd2z proc~fft_forward_110_cuda->cufftxtexecdescriptor proc~fft_forward_110_cuda->dim3 proc~fft_forward_110_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_forward_110_omp proc~fft_forward_110_omp->decomp_2d_fft_3d proc~fft_forward_110_omp->transpose_x_to_y transpose_y_to_z transpose_y_to_z proc~fft_forward_110_omp->transpose_y_to_z proc~fft_forward_110_omp->ysz proc~fft_forward_110_omp->zsz proc~fft_forward_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_forward_cuda proc~fft_forward_cuda->interface~cufftexecr2c_c proc~fft_forward_cuda->proc~check_cufft proc~fft_forward_cuda->proc~memcpy3d proc~fft_forward_cuda->cufftexecd2z proc~fft_forward_cuda->cufftxtexecdescriptor proc~fft_forward_cuda->dim3 proc~fft_forward_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_forward_omp proc~fft_forward_omp->decomp_2d_fft_3d proc~fft_postprocess_000_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_postprocess_000_cuda proc~process_spectral_000 m_cuda_spectral::process_spectral_000 proc~fft_postprocess_000_cuda->proc~process_spectral_000 proc~fft_postprocess_000_cuda->dim3 proc~fft_postprocess_000_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_postprocess_000_omp proc~process_spectral_000~2 m_omp_spectral::process_spectral_000 proc~fft_postprocess_000_omp->proc~process_spectral_000~2 proc~fft_postprocess_010_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_postprocess_010_cuda proc~process_spectral_010 m_cuda_spectral::process_spectral_010 proc~fft_postprocess_010_cuda->proc~process_spectral_010 proc~process_spectral_010_bw m_cuda_spectral::process_spectral_010_bw proc~fft_postprocess_010_cuda->proc~process_spectral_010_bw proc~process_spectral_010_fw m_cuda_spectral::process_spectral_010_fw proc~fft_postprocess_010_cuda->proc~process_spectral_010_fw proc~process_spectral_010_poisson m_cuda_spectral::process_spectral_010_poisson proc~fft_postprocess_010_cuda->proc~process_spectral_010_poisson proc~fft_postprocess_010_cuda->dim3 proc~fft_postprocess_010_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_postprocess_010_omp proc~process_spectral_010~2 m_omp_spectral::process_spectral_010 proc~fft_postprocess_010_omp->proc~process_spectral_010~2 proc~fft_postprocess_010_omp->transpose_y_to_z proc~fft_postprocess_010_omp->transpose_z_to_y yst yst proc~fft_postprocess_010_omp->yst proc~fft_postprocess_010_omp->ysz proc~fft_postprocess_100_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_postprocess_100_cuda proc~fft_postprocess_100_cuda->proc~exchange_dim2_mirror proc~fft_postprocess_100_cuda->proc~process_spectral_010 proc~process_spectral_100_fw m_cuda_spectral::process_spectral_100_fw proc~fft_postprocess_100_cuda->proc~process_spectral_100_fw proc~process_spectral_100_pair_bw m_cuda_spectral::process_spectral_100_pair_bw proc~fft_postprocess_100_cuda->proc~process_spectral_100_pair_bw proc~process_spectral_100_pair_fw m_cuda_spectral::process_spectral_100_pair_fw proc~fft_postprocess_100_cuda->proc~process_spectral_100_pair_fw proc~fft_postprocess_100_cuda->dim3 proc~fft_postprocess_100_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_postprocess_100_omp proc~process_spectral_100 m_omp_spectral::process_spectral_100 proc~fft_postprocess_100_omp->proc~process_spectral_100 proc~fft_postprocess_100_omp->transpose_y_to_z proc~fft_postprocess_100_omp->transpose_z_to_y proc~fft_postprocess_100_omp->yst proc~fft_postprocess_100_omp->ysz proc~fft_postprocess_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_postprocess_110_cuda proc~fft_postprocess_110_cuda->proc~exchange_dim2_mirror proc~process_spectral_110_norm_z m_cuda_spectral::process_spectral_110_norm_z proc~fft_postprocess_110_cuda->proc~process_spectral_110_norm_z proc~process_spectral_110_poisson m_cuda_spectral::process_spectral_110_poisson proc~fft_postprocess_110_cuda->proc~process_spectral_110_poisson proc~process_spectral_110_x_pair_bw m_cuda_spectral::process_spectral_110_x_pair_bw proc~fft_postprocess_110_cuda->proc~process_spectral_110_x_pair_bw proc~process_spectral_110_x_pair_bw_mirror m_cuda_spectral::process_spectral_110_x_pair_bw_mirror proc~fft_postprocess_110_cuda->proc~process_spectral_110_x_pair_bw_mirror proc~process_spectral_110_x_pair_fw m_cuda_spectral::process_spectral_110_x_pair_fw proc~fft_postprocess_110_cuda->proc~process_spectral_110_x_pair_fw proc~process_spectral_110_x_pair_fw_mirror m_cuda_spectral::process_spectral_110_x_pair_fw_mirror proc~fft_postprocess_110_cuda->proc~process_spectral_110_x_pair_fw_mirror proc~process_spectral_110_y_pair_bw m_cuda_spectral::process_spectral_110_y_pair_bw proc~fft_postprocess_110_cuda->proc~process_spectral_110_y_pair_bw proc~process_spectral_110_y_pair_fw m_cuda_spectral::process_spectral_110_y_pair_fw proc~fft_postprocess_110_cuda->proc~process_spectral_110_y_pair_fw proc~process_spectral_110_z_bw m_cuda_spectral::process_spectral_110_z_bw proc~fft_postprocess_110_cuda->proc~process_spectral_110_z_bw proc~fft_postprocess_110_cuda->dim3 proc~fft_postprocess_110_omp m_omp_poisson_fft::omp_poisson_fft_t%fft_postprocess_110_omp proc~process_spectral_110 m_omp_spectral::process_spectral_110 proc~fft_postprocess_110_omp->proc~process_spectral_110 proc~process_spectral_110_bw m_omp_spectral::process_spectral_110_bw proc~fft_postprocess_110_omp->proc~process_spectral_110_bw proc~process_spectral_110_fw m_omp_spectral::process_spectral_110_fw proc~fft_postprocess_110_omp->proc~process_spectral_110_fw proc~process_spectral_110_solve m_omp_spectral::process_spectral_110_solve proc~fft_postprocess_110_omp->proc~process_spectral_110_solve proc~fft_postprocess_110_omp->transpose_y_to_z proc~fft_postprocess_110_omp->transpose_z_to_y proc~fft_postprocess_110_omp->yst proc~fft_postprocess_110_omp->ysz proc~field_add_const_x_face_base->proc~abort_run proc~field_add_const_x_face_cuda m_cuda_backend::cuda_backend_t%field_add_const_x_face_cuda proc~field_add_const_x_face_cuda->proc~abort_run proc~field_add_const_x_face_cuda->proc~add_scalar_x_face proc~field_add_const_x_face_cuda->proc~get_dims proc~field_add_const_x_face_cuda->proc~resolve_field_t~2 proc~field_add_const_x_face_cuda->dim3 proc~field_add_const_x_face_omp m_omp_backend::omp_backend_t%field_add_const_x_face_omp proc~field_add_const_x_face_omp->proc~abort_run proc~field_add_const_x_face_omp->proc~get_dims proc~y_group_stride m_omp_backend::y_group_stride proc~field_add_const_x_face_omp->proc~y_group_stride proc~field_add_face_from_field_base m_base_backend::base_backend_t%field_add_face_from_field_base proc~field_add_face_from_field_base->proc~abort_run proc~field_add_face_from_field_cuda m_cuda_backend::cuda_backend_t%field_add_face_from_field_cuda proc~field_add_face_from_field_cuda->proc~abort_run proc~field_add_x_face_from_field~2 m_cuda_kernels_fieldops::field_add_x_face_from_field proc~field_add_face_from_field_cuda->proc~field_add_x_face_from_field~2 proc~field_add_y_face_from_field~2 m_cuda_kernels_fieldops::field_add_y_face_from_field proc~field_add_face_from_field_cuda->proc~field_add_y_face_from_field~2 proc~field_add_face_from_field_cuda->proc~get_dims proc~field_add_face_from_field_cuda->proc~resolve_field_t~2 proc~field_add_face_from_field_cuda->dim3 proc~field_add_face_from_field_omp m_omp_backend::omp_backend_t%field_add_face_from_field_omp proc~field_add_face_from_field_omp->proc~abort_run proc~field_add_face_from_field_omp->proc~get_dims proc~field_add_face_from_field_omp->proc~y_group_stride proc~field_add_x_face_from_field m_omptgt_kernels_fieldops::field_add_x_face_from_field proc~field_add_y_face_from_field m_omptgt_kernels_fieldops::field_add_y_face_from_field proc~field_labelled_axpy_base m_base_backend::base_backend_t%field_labelled_axpy_base proc~field_labelled_axpy_base->proc~abort_run proc~field_labelled_axpy_cuda m_cuda_backend::cuda_backend_t%field_labelled_axpy_cuda proc~field_labelled_axpy_cuda->proc~check_labelled_fields~3 proc~field_labelled_axpy_cuda->proc~get_dims proc~field_labelled_axpy_cuda->proc~get_padded_dims proc~labelled_axpy~2 m_cuda_kernels_fieldops::labelled_axpy proc~field_labelled_axpy_cuda->proc~labelled_axpy~2 proc~field_labelled_axpy_cuda->proc~resolve_field_t~2 proc~field_labelled_axpy_cuda->dim3 proc~field_labelled_axpy_omp m_omp_backend::omp_backend_t%field_labelled_axpy_omp proc~field_labelled_axpy_omp->proc~check_labelled_fields proc~field_labelled_axpy_omp->proc~get_dims proc~field_labelled_axpy_omp->proc~y_group_stride proc~field_labelled_sums_base m_base_backend::base_backend_t%field_labelled_sums_base proc~field_labelled_sums_base->proc~abort_run proc~field_labelled_sums_cuda m_cuda_backend::cuda_backend_t%field_labelled_sums_cuda proc~field_labelled_sums_cuda->proc~check_labelled_fields~3 proc~field_labelled_sums_cuda->proc~get_dims proc~field_labelled_sums_cuda->proc~get_padded_dims proc~labelled_sums~2 m_cuda_kernels_fieldops::labelled_sums proc~field_labelled_sums_cuda->proc~labelled_sums~2 proc~field_labelled_sums_cuda->proc~resolve_field_t~2 proc~field_labelled_sums_cuda->dim3 proc~field_labelled_sums_omp m_omp_backend::omp_backend_t%field_labelled_sums_omp proc~field_labelled_sums_omp->proc~check_labelled_fields proc~field_labelled_sums_omp->proc~get_dims proc~field_labelled_sums_omp->proc~y_group_stride proc~field_max_mean_base m_base_backend::base_backend_t%field_max_mean_base proc~field_max_mean_base->proc~abort_run proc~field_max_mean_cuda m_cuda_backend::cuda_backend_t%field_max_mean_cuda proc~field_max_mean_cuda->proc~abort_run proc~field_max_sum~2 m_cuda_kernels_fieldops::field_max_sum proc~field_max_mean_cuda->proc~field_max_sum~2 proc~field_max_mean_cuda->proc~get_dims proc~field_max_mean_cuda->proc~get_global_dims proc~field_max_mean_cuda->proc~get_padded_dims proc~field_max_mean_cuda->proc~resolve_field_t~2 proc~field_max_mean_cuda->dim3 proc~field_max_mean_cuda->mpi_allreduce proc~field_max_mean_omp m_omp_backend::omp_backend_t%field_max_mean_omp proc~field_max_mean_omp->proc~abort_run proc~field_max_mean_omp->proc~get_dims proc~field_max_mean_omp->proc~get_global_dims proc~field_max_mean_omp->proc~get_padded_dims proc~field_max_mean_omp->mpi_allreduce proc~field_max_sum m_omptgt_kernels_fieldops::field_max_sum atomicadd atomicadd proc~field_max_sum~2->atomicadd atomicmax atomicmax proc~field_max_sum~2->atomicmax proc~field_plane_partial_sums m_omptgt_kernels_fieldops::field_plane_partial_sums proc~field_plane_partial_sums~2 m_cuda_kernels_fieldops::field_plane_partial_sums proc~field_plane_sums_base->proc~abort_run proc~field_plane_sums_cuda m_cuda_backend::cuda_backend_t%field_plane_sums_cuda proc~field_plane_sums_cuda->proc~abort_run proc~field_plane_sums_cuda->proc~field_plane_partial_sums~2 proc~field_plane_sums_reduce~2 m_cuda_kernels_fieldops::field_plane_sums_reduce proc~field_plane_sums_cuda->proc~field_plane_sums_reduce~2 proc~field_plane_sums_cuda->proc~get_dims proc~field_plane_sums_cuda->proc~resolve_field_t~2 proc~field_plane_sums_cuda->dim3 proc~field_plane_sums_omp m_omp_backend::omp_backend_t%field_plane_sums_omp proc~field_plane_sums_omp->proc~abort_run proc~field_plane_sums_omp->proc~get_dims proc~field_plane_sums_omp->proc~y_group_stride proc~field_plane_sums_reduce m_omptgt_kernels_fieldops::field_plane_sums_reduce proc~field_scale m_omptgt_kernels_fieldops::field_scale proc~field_scale_base m_base_backend::base_backend_t%field_scale_base proc~field_scale_base->proc~abort_run proc~field_scale_cuda m_cuda_backend::cuda_backend_t%field_scale_cuda proc~field_scale~2 m_cuda_kernels_fieldops::field_scale proc~field_scale_cuda->proc~field_scale~2 proc~field_scale_cuda->proc~resolve_field_t~2 proc~field_scale_cuda->dim3 proc~field_scale_omp m_omp_backend::omp_backend_t%field_scale_omp proc~field_set_abl_wall_stress m_omptgt_kernels_fieldops::field_set_abl_wall_stress proc~field_set_abl_wall_stress_base m_base_backend::base_backend_t%field_set_abl_wall_stress_base proc~field_set_abl_wall_stress_base->proc~abort_run proc~field_set_abl_wall_stress_cuda m_cuda_backend::cuda_backend_t%field_set_abl_wall_stress_cuda proc~field_set_abl_wall_stress_cuda->proc~abort_run proc~field_set_abl_wall_stress~2 m_cuda_kernels_fieldops::field_set_abl_wall_stress proc~field_set_abl_wall_stress_cuda->proc~field_set_abl_wall_stress~2 proc~field_set_abl_wall_stress_cuda->proc~get_dims proc~field_set_abl_wall_stress_cuda->proc~resolve_field_t~2 proc~field_set_abl_wall_stress_cuda->dim3 proc~field_set_abl_wall_stress_omp m_omp_backend::omp_backend_t%field_set_abl_wall_stress_omp proc~field_set_abl_wall_stress_omp->proc~abort_run proc~field_set_abl_wall_stress_omp->proc~get_dims proc~field_set_abl_wall_stress_omp->proc~y_group_stride proc~field_set_face_base->proc~abort_run proc~field_set_face_cuda m_cuda_backend::cuda_backend_t%field_set_face_cuda proc~field_set_face_cuda->proc~abort_run proc~field_set_x_face~2 m_cuda_kernels_fieldops::field_set_x_face proc~field_set_face_cuda->proc~field_set_x_face~2 proc~field_set_y_face~2 m_cuda_kernels_fieldops::field_set_y_face proc~field_set_face_cuda->proc~field_set_y_face~2 proc~field_set_face_cuda->proc~get_dims proc~field_set_face_cuda->proc~resolve_field_t~2 proc~field_set_face_cuda->dim3 proc~field_set_face_from_field_base->proc~abort_run proc~field_set_face_from_field_cuda m_cuda_backend::cuda_backend_t%field_set_face_from_field_cuda proc~field_set_face_from_field_cuda->proc~abort_run proc~field_set_x_face_from_field~2 m_cuda_kernels_fieldops::field_set_x_face_from_field proc~field_set_face_from_field_cuda->proc~field_set_x_face_from_field~2 proc~field_set_y_face_from_field~2 m_cuda_kernels_fieldops::field_set_y_face_from_field proc~field_set_face_from_field_cuda->proc~field_set_y_face_from_field~2 proc~field_set_face_from_field_cuda->proc~get_dims proc~field_set_face_from_field_cuda->proc~resolve_field_t~2 proc~field_set_face_from_field_cuda->dim3 proc~field_set_face_from_field_omp m_omp_backend::omp_backend_t%field_set_face_from_field_omp proc~field_set_face_from_field_omp->proc~abort_run proc~field_set_face_from_field_omp->proc~get_dims proc~field_set_face_from_field_omp->proc~y_group_stride proc~field_set_face_omp m_omp_backend::omp_backend_t%field_set_face_omp proc~field_set_face_omp->proc~abort_run proc~field_set_face_omp->proc~get_dims proc~field_set_face_omp->proc~y_group_stride proc~field_set_x_face m_omptgt_kernels_fieldops::field_set_x_face proc~field_set_x_face_from_field m_omptgt_kernels_fieldops::field_set_x_face_from_field proc~field_set_x_inlet_plane_base->proc~abort_run proc~field_set_x_inlet_plane_cuda m_cuda_backend::cuda_backend_t%field_set_x_inlet_plane_cuda proc~field_set_x_inlet_plane_cuda->proc~abort_run proc~field_set_x_inlet_plane_cuda->proc~get_dims proc~field_set_x_inlet_plane_cuda->proc~resolve_field_t~2 proc~set_x_inlet_plane m_cuda_kernels_fieldops::set_x_inlet_plane proc~field_set_x_inlet_plane_cuda->proc~set_x_inlet_plane proc~field_set_x_inlet_plane_cuda->dim3 proc~field_set_x_inlet_plane_omp m_omp_backend::omp_backend_t%field_set_x_inlet_plane_omp proc~field_set_x_inlet_plane_omp->proc~abort_run proc~field_set_x_inlet_plane_omp->proc~get_dims proc~field_set_x_inlet_plane_omp->proc~y_group_stride proc~field_set_y_face m_omptgt_kernels_fieldops::field_set_y_face proc~field_set_y_face_from_field m_omptgt_kernels_fieldops::field_set_y_face_from_field proc~field_set_y_plane m_omptgt_kernels_fieldops::field_set_y_plane proc~field_set_y_plane_base m_base_backend::base_backend_t%field_set_y_plane_base proc~field_set_y_plane_base->proc~abort_run proc~field_set_y_plane_cuda m_cuda_backend::cuda_backend_t%field_set_y_plane_cuda proc~field_set_y_plane_cuda->proc~abort_run proc~field_set_y_plane~2 m_cuda_kernels_fieldops::field_set_y_plane proc~field_set_y_plane_cuda->proc~field_set_y_plane~2 proc~field_set_y_plane_cuda->proc~get_dims proc~field_set_y_plane_cuda->proc~resolve_field_t~2 proc~field_set_y_plane_cuda->dim3 proc~field_set_y_plane_omp m_omp_backend::omp_backend_t%field_set_y_plane_omp proc~field_set_y_plane_omp->proc~abort_run proc~field_set_y_plane_omp->proc~get_dims proc~field_set_y_plane_omp->proc~y_group_stride proc~field_shift m_omptgt_kernels_fieldops::field_shift proc~field_shift_base->proc~abort_run proc~field_shift_cuda m_cuda_backend::cuda_backend_t%field_shift_cuda proc~field_shift~2 m_cuda_kernels_fieldops::field_shift proc~field_shift_cuda->proc~field_shift~2 proc~field_shift_cuda->proc~resolve_field_t~2 proc~field_shift_cuda->dim3 proc~field_shift_omp m_omp_backend::omp_backend_t%field_shift_omp proc~field_volume_integral_base->proc~abort_run proc~field_volume_integral_cuda m_cuda_backend::cuda_backend_t%field_volume_integral_cuda proc~field_volume_integral_cuda->proc~abort_run proc~field_volume_integral_cuda->proc~get_dims proc~field_volume_integral_cuda->proc~get_padded_dims proc~field_volume_integral_cuda->proc~resolve_field_t~2 proc~volume_integral~2 m_cuda_kernels_fieldops::volume_integral proc~field_volume_integral_cuda->proc~volume_integral~2 proc~field_volume_integral_cuda->dim3 proc~field_volume_integral_cuda->mpi_allreduce proc~field_volume_integral_omp m_omp_backend::omp_backend_t%field_volume_integral_omp proc~field_volume_integral_omp->proc~abort_run proc~field_volume_integral_omp->proc~get_dims proc~field_volume_integral_omp->mpi_allreduce proc~fill m_field::field_t%fill proc~fill_cuda m_cuda_allocator::cuda_field_t%fill_cuda proc~fill_rhs x3d2_poisson_solver::fill_rhs proc~get_coordinates m_mesh::mesh_t%get_coordinates proc~fill_rhs->proc~get_coordinates proc~filter_in_dir m_solver::filter_in_dir proc~filter_field->proc~filter_in_dir proc~filter_in_dir->proc~abort_run proc~filter_in_dir->proc~get_block proc~filter_in_dir->proc~release_block proc~filter_in_dir->proc~reorder_base proc~filter_in_dir->proc~tds_solve_base proc~veccopy_base m_base_backend::base_backend_t%veccopy_base proc~filter_in_dir->proc~veccopy_base proc~filter_width m_les::filter_width proc~finalise m_solver::solver_t%finalise proc~finalise->proc~release_block none~finalise~14 m_les::les_t%finalise proc~finalise->none~finalise~14 proc~finalise_adm m_adm::adm_t%finalise_adm proc~finalise_adm->proc~release_block none~finalise~6 m_scalar_series::scalar_series_t%finalise proc~finalise_adm->none~finalise~6 proc~finalise_dummy m_turbine_dummy::turbine_dummy_t%finalise_dummy proc~finalise_wind_turbine m_case_wind_turbine::case_wind_turbine_t%finalise_wind_turbine finalise finalise proc~finalise_wind_turbine->finalise none~unregister_checkpoint_state m_io_manager::io_manager_t%unregister_checkpoint_state proc~finalise_wind_turbine->none~unregister_checkpoint_state proc~finalise~4->none~finalise~6 proc~finalize m_time_integrator::time_intg_t%finalize proc~finalize->proc~log_info proc~finalize->proc~release_block proc~forcings_abl m_case_abl::case_abl_t%forcings_abl none~apply_forcing m_abl::abl_t%apply_forcing proc~forcings_abl->none~apply_forcing proc~forcings_channel m_case_channel::case_channel_t%forcings_channel proc~forcings_channel->proc~vecadd_base proc~forcings_cylinder m_case_cylinder::case_cylinder_t%forcings_cylinder proc~forcings_generic m_case_generic::case_generic_t%forcings_generic proc~forcings_tgv m_case_tgv::case_tgv_t%forcings_tgv proc~forcings_wind_turbine m_case_wind_turbine::case_wind_turbine_t%forcings_wind_turbine project_forces project_forces proc~forcings_wind_turbine->project_forces update update proc~forcings_wind_turbine->update proc~friction_velocity m_abl_diagnostics::friction_velocity proc~generate_coordinates m_io_field_utils::generate_coordinates proc~generate_coordinates->none~write_data~2 proc~generate_coordinates->proc~get_coordinates proc~get_argument->proc~abort_run proc~get_block->proc~create_block proc~set_shape m_field::field_t%set_shape proc~get_block->proc~set_shape proc~get_block_ids m_allocator::allocator_t%get_block_ids proc~get_default_backend m_io_backend::get_default_backend proc~get_default_backend~2 m_io_backend::get_default_backend proc~get_dev_ptr m_field::field_t%get_dev_ptr proc~get_device_bw_info_base m_base_backend::base_backend_t%get_device_bw_info_base proc~get_device_bw_info_base->proc~abort_run proc~get_device_bw_info_cuda m_cuda_backend::cuda_backend_t%get_device_bw_info_cuda cudadevicegetattribute cudadevicegetattribute proc~get_device_bw_info_cuda->cudadevicegetattribute cudagetdevice cudagetdevice proc~get_device_bw_info_cuda->cudagetdevice proc~get_device_bw_info_omp m_omp_backend::omp_backend_t%get_device_bw_info_omp proc~get_dims_dataloc m_mesh::get_dims_dataloc proc~get_dims->proc~get_dims_dataloc proc~get_dirs_from_rdr m_common::get_dirs_from_rdr proc~get_field_data m_base_backend::base_backend_t%get_field_data proc~get_field_data->proc~copy_f_to_data_base proc~get_field_data->proc~get_block proc~get_field_data->proc~get_rdr_from_dirs proc~get_field_data->proc~release_block proc~get_field_data->proc~reorder_base proc~get_field_ptr m_io_field_utils::get_field_ptr proc~get_field_ptr->proc~abort_run proc~get_global_dims->proc~get_dims_dataloc proc~get_imag m_poisson_fft::get_imag proc~get_index_dir m_ordering::get_index_dir proc~get_index_ijk m_ordering::get_index_ijk proc~get_index_reordering m_ordering::get_index_reordering proc~get_index_reordering->proc~get_index_dir proc~get_index_reordering->proc~get_index_ijk proc~get_km m_poisson_fft::poisson_fft_t%get_km proc~get_km->proc~get_imag proc~get_real m_poisson_fft::get_real proc~get_km->proc~get_real proc~get_km_im m_poisson_fft::poisson_fft_t%get_km_im proc~get_km_im->proc~get_imag proc~get_km_im->proc~get_km proc~get_km_re m_poisson_fft::poisson_fft_t%get_km_re proc~get_km_re->proc~get_km proc~get_km_re->proc~get_real proc~get_log_level m_logger::get_log_level proc~get_n_groups m_allocator::allocator_t%get_n_groups proc~get_n_phi->none~get_n proc~get_output_dimensions m_io_field_utils::get_output_dimensions proc~get_shape m_field::field_t%get_shape proc~get_shape_cuda m_cuda_allocator::cuda_field_t%get_shape_cuda proc~gradient_c2v m_vector_calculus::vector_calculus_t%gradient_c2v proc~gradient_c2v->proc~abort_run proc~gradient_c2v->proc~get_block proc~gradient_c2v->proc~release_block proc~gradient_c2v->proc~reorder_base proc~gradient_c2v->proc~tds_solve_base proc~gradient_p2v m_solver::solver_t%gradient_p2v proc~gradient_p2v->proc~gradient_c2v proc~init_adm m_adm::adm_t%init_adm proc~init_adm->interface~str proc~init_adm->proc~abort_run proc~init_adm->proc~disc_kernel proc~init_adm->proc~get_block proc~init_adm->proc~get_coordinates proc~init_adm->proc~get_dims proc~init_adm->proc~log_info proc~read_ad_file m_adm::read_ad_file proc~init_adm->proc~read_ad_file proc~init_adm->proc~release_block proc~init_adm->proc~set_field_data proc~init_adm->mpi_allreduce proc~init_cuda_poisson_fft m_cuda_backend::cuda_backend_t%init_cuda_poisson_fft proc~init_cuda_poisson_fft_t m_cuda_poisson_fft::init_cuda_poisson_fft_t proc~init_cuda_poisson_fft->proc~init_cuda_poisson_fft_t proc~init_cuda_poisson_fft_t->interface~str proc~init_cuda_poisson_fft_t->proc~abort_run proc~init_cuda_poisson_fft_t->proc~base_init~2 proc~init_cuda_poisson_fft_t->proc~check_cufft proc~init_cuda_poisson_fft_t->proc~get_dims proc~init_cuda_poisson_fft_t->proc~get_global_dims proc~init_cuda_poisson_fft_t->proc~log_info proc~init_cuda_poisson_fft_t->proc~log_warn cufftcreate cufftcreate proc~init_cuda_poisson_fft_t->cufftcreate cufftdestroy cufftdestroy proc~init_cuda_poisson_fft_t->cufftdestroy cufftmakeplan3d cufftmakeplan3d proc~init_cuda_poisson_fft_t->cufftmakeplan3d cufftmpattachcomm cufftmpattachcomm proc~init_cuda_poisson_fft_t->cufftmpattachcomm cufftxtmalloc cufftxtmalloc proc~init_cuda_poisson_fft_t->cufftxtmalloc proc~init_dummy m_turbine_dummy::turbine_dummy_t%init_dummy proc~init_omp_poisson_fft m_omp_backend::omp_backend_t%init_omp_poisson_fft proc~init_omp_poisson_fft->proc~abort_run proc~init_poisson_fft_base m_base_backend::base_backend_t%init_poisson_fft_base proc~init_poisson_fft_base->proc~abort_run proc~initial_conditions_abl m_case_abl::case_abl_t%initial_conditions_abl none~initialise m_abl::abl_t%initialise proc~initial_conditions_abl->none~initialise proc~initial_conditions_channel m_case_channel::case_channel_t%initial_conditions_channel proc~initial_conditions_channel->proc~get_block proc~initial_conditions_channel->proc~get_coordinates proc~initial_conditions_channel->proc~get_dims proc~initial_conditions_channel->proc~release_block proc~initial_conditions_channel->proc~set_data_loc proc~initial_conditions_channel->proc~set_field_data proc~initial_conditions_cylinder m_case_cylinder::case_cylinder_t%initial_conditions_cylinder proc~initial_conditions_cylinder->proc~get_block proc~initial_conditions_cylinder->proc~get_coordinates proc~initial_conditions_cylinder->proc~get_dims proc~initial_conditions_cylinder->proc~release_block proc~initial_conditions_cylinder->proc~set_data_loc proc~initial_conditions_cylinder->proc~set_field_data proc~initial_conditions_generic m_case_generic::case_generic_t%initial_conditions_generic proc~initial_conditions_generic->proc~fill proc~initial_conditions_generic->proc~set_data_loc proc~initial_conditions_tgv m_case_tgv::case_tgv_t%initial_conditions_tgv proc~initial_conditions_tgv->proc~fill proc~initial_conditions_tgv->proc~set_data_loc proc~set_init m_base_case::base_case_t%set_init proc~initial_conditions_tgv->proc~set_init proc~initial_conditions_wind_turbine m_case_wind_turbine::case_wind_turbine_t%initial_conditions_wind_turbine proc~initial_conditions_wind_turbine->proc~get_block proc~initial_conditions_wind_turbine->proc~get_dims proc~initial_conditions_wind_turbine->proc~release_block proc~initial_conditions_wind_turbine->proc~set_data_loc proc~initial_conditions_wind_turbine->proc~set_field_data proc~init~2->interface~str proc~init~2->proc~abort_run proc~init~2->proc~allocate_tdsops proc~init~2->proc~get_argument proc~init~2->proc~get_block proc~init~2->proc~get_global_dims proc~init~2->proc~init_poisson_fft_base proc~init~2->proc~log_info proc~init~2->proc~log_warn proc~init~3->proc~base_init proc~init~3->proc~get_n_groups proc~init~4->proc~abort_run proc~init~4->proc~get_block proc~init~8->proc~base_init proc~init~8->proc~get_n_groups proc~init~8->dim3 proc~init~9 m_monitoring::monitoring_t%init proc~init~9->proc~is_root none~init~6 m_scalar_series::scalar_series_t%init proc~init~9->none~init~6 proc~interpl_c2v->proc~abort_run proc~interpl_c2v->proc~get_block proc~interpl_c2v->proc~release_block proc~interpl_c2v->proc~reorder_base proc~interpl_c2v->proc~tds_solve_base proc~interpl_mid m_tdsops::tdsops_t%interpl_mid proc~interpl_mid->proc~abort_run proc~interpl_mid->proc~preprocess_dist proc~interpl_mid->proc~preprocess_thom proc~is_avail_2decomp m_decomp::is_avail_2decomp proc~is_avail_2decomp~2 m_decomp::is_avail_2decomp proc~labelled_axpy m_omptgt_kernels_fieldops::labelled_axpy proc~labelled_sums m_omptgt_kernels_fieldops::labelled_sums proc~labelled_sums~2->atomicadd proc~laplacian m_vector_calculus::vector_calculus_t%laplacian proc~laplacian->proc~abort_run proc~laplacian->proc~get_block proc~laplacian->proc~release_block proc~laplacian->proc~reorder_base proc~sum_yintox_base m_base_backend::base_backend_t%sum_yintox_base proc~laplacian->proc~sum_yintox_base proc~sum_zintox_base m_base_backend::base_backend_t%sum_zintox_base proc~laplacian->proc~sum_zintox_base proc~laplacian->proc~tds_solve_base proc~log_debug m_logger::log_debug proc~log_debug->interface~str proc~log_debug->mpi_comm_rank proc~log_debug->mpi_comm_size proc~log_debug->mpi_finalized proc~log_debug->mpi_initialized proc~log_error m_logger::log_error proc~log_error->interface~str proc~log_error->mpi_comm_rank proc~log_error->mpi_comm_size proc~log_error->mpi_finalized proc~log_error->mpi_initialized proc~log_info->interface~str proc~log_info->mpi_comm_rank proc~log_info->mpi_comm_size proc~log_info->mpi_finalized proc~log_info->mpi_initialized proc~log_warn->interface~str proc~log_warn->mpi_comm_rank proc~log_warn->mpi_comm_size proc~log_warn->mpi_finalized proc~log_warn->mpi_initialized proc~lowpass m_tdsops::tdsops_t%lowpass proc~lowpass->proc~abort_run proc~lowpass->proc~preprocess_dist proc~lowpass->proc~preprocess_thom proc~memcpy_d2d m_omptgt_common::memcpy_d2d proc~memcpy_d2d->proc~abort_run omp_get_default_device omp_get_default_device proc~memcpy_d2d->omp_get_default_device omp_target_memcpy omp_target_memcpy proc~memcpy_d2d->omp_target_memcpy proc~memcpy_d2h m_omptgt_common::memcpy_d2h proc~memcpy_d2h->proc~abort_run proc~memcpy_d2h->omp_get_default_device omp_get_initial_device omp_get_initial_device proc~memcpy_d2h->omp_get_initial_device proc~memcpy_d2h->omp_target_memcpy proc~memcpy_h2d m_omptgt_common::memcpy_h2d proc~memcpy_h2d->proc~abort_run proc~memcpy_h2d->omp_get_default_device proc~memcpy_h2d->omp_get_initial_device proc~memcpy_h2d->omp_target_memcpy proc~mesh_init->proc~abort_run proc~mesh_init->proc~decomposition_2decomp proc~mesh_init->proc~decomposition_generic proc~mesh_init->proc~is_avail_2decomp proc~obtain_coordinates m_mesh_content::geo_t%obtain_coordinates proc~mesh_init->proc~obtain_coordinates proc~mesh_init->mpi_comm_rank proc~mesh_init->mpi_comm_size proc~move_data_loc m_common::move_data_loc proc~neutral_drag_coefficient m_les::neutral_drag_coefficient proc~neutral_log_law m_abl_diagnostics::neutral_log_law proc~neutral_wall_stress m_les::neutral_wall_stress proc~neutral_wall_stress->proc~neutral_drag_coefficient proc~nvtx_enabled m_nvtx::nvtx_enabled proc~nvtx_pop m_nvtx::nvtx_pop proc~nvtx_pop->proc~nvtx_enabled proc~nvtx_push m_nvtx::nvtx_push proc~nvtx_push->proc~nvtx_enabled proc~obtain_coordinates->proc~abort_run proc~omptgt_tdsops_init m_omptgt_tdsops::omptgt_tdsops_init proc~omptgt_tdsops_init->interface~dev_alloc proc~omptgt_tdsops_init->interface~dev_clone proc~omptgt_tdsops_init->interface~dev_upload proc~penta_periodic_columns m_omptgt_tdsops::penta_periodic_columns proc~omptgt_tdsops_init->proc~penta_periodic_columns proc~omptgt_tdsops_init->proc~tdsops_init proc~pack_110_xyz_to_yslab m_cuda_spectral::pack_110_xyz_to_yslab proc~pack_110_yslab m_cuda_spectral::pack_110_yslab proc~pack_x2c_dp->syncthreads proc~pack_x2c_sp->syncthreads proc~pair_bw m_cuda_spectral::pair_bw proc~pair_fw m_cuda_spectral::pair_fw proc~parse_arguments x3d2_poisson_solver::parse_arguments proc~usage_error x3d2_poisson_solver::usage_error proc~parse_arguments->proc~usage_error proc~poisson_000 m_poisson_fft::poisson_000 fft_backward fft_backward proc~poisson_000->fft_backward fft_forward fft_forward proc~poisson_000->fft_forward fft_postprocess_000 fft_postprocess_000 proc~poisson_000->fft_postprocess_000 proc~poisson_010 m_poisson_fft::poisson_010 enforce_periodicity_y enforce_periodicity_y proc~poisson_010->enforce_periodicity_y fft_backward_010 fft_backward_010 proc~poisson_010->fft_backward_010 fft_forward_010 fft_forward_010 proc~poisson_010->fft_forward_010 fft_postprocess_010 fft_postprocess_010 proc~poisson_010->fft_postprocess_010 undo_periodicity_y undo_periodicity_y proc~poisson_010->undo_periodicity_y proc~poisson_100 m_poisson_fft::poisson_100 enforce_periodicity_x enforce_periodicity_x proc~poisson_100->enforce_periodicity_x fft_backward_100 fft_backward_100 proc~poisson_100->fft_backward_100 fft_forward_100 fft_forward_100 proc~poisson_100->fft_forward_100 fft_postprocess_100 fft_postprocess_100 proc~poisson_100->fft_postprocess_100 undo_periodicity_x undo_periodicity_x proc~poisson_100->undo_periodicity_x proc~poisson_110 m_poisson_fft::poisson_110 enforce_periodicity_xy enforce_periodicity_xy proc~poisson_110->enforce_periodicity_xy fft_backward_110 fft_backward_110 proc~poisson_110->fft_backward_110 fft_forward_110 fft_forward_110 proc~poisson_110->fft_forward_110 fft_postprocess_110 fft_postprocess_110 proc~poisson_110->fft_postprocess_110 undo_periodicity_xy undo_periodicity_xy proc~poisson_110->undo_periodicity_xy proc~poisson_cg m_solver::poisson_cg proc~poisson_cg->proc~fill proc~poisson_divide m_cuda_spectral::poisson_divide proc~poisson_fft m_solver::poisson_fft proc~poisson_fft->proc~get_block proc~poisson_fft->proc~release_block proc~poisson_fft->proc~reorder_base proc~solve_poisson m_poisson_fft::poisson_fft_t%solve_poisson proc~poisson_fft->proc~solve_poisson proc~postprocess_abl m_case_abl::case_abl_t%postprocess_abl proc~postprocess_abl->interface~str proc~postprocess_abl->proc~log_info proc~write_step~2 m_monitoring::monitoring_t%write_step proc~postprocess_abl->proc~write_step~2 none~sample m_abl_diagnostics::abl_diagnostics_t%sample proc~postprocess_abl->none~sample proc~postprocess_channel m_case_channel::case_channel_t%postprocess_channel proc~postprocess_channel->interface~str proc~postprocess_channel->proc~log_info proc~postprocess_channel->proc~write_step~2 proc~postprocess_cylinder m_case_cylinder::case_cylinder_t%postprocess_cylinder proc~postprocess_cylinder->interface~str proc~postprocess_cylinder->proc~log_info proc~postprocess_cylinder->proc~write_step~2 proc~postprocess_dim13_bw m_cuda_spectral::postprocess_dim13_bw proc~postprocess_dim13_fw m_cuda_spectral::postprocess_dim13_fw proc~postprocess_generic m_case_generic::case_generic_t%postprocess_generic proc~postprocess_generic->interface~str proc~postprocess_generic->proc~log_info proc~postprocess_generic->proc~write_step~2 proc~postprocess_tgv m_case_tgv::case_tgv_t%postprocess_tgv proc~postprocess_tgv->interface~str proc~postprocess_tgv->proc~log_info proc~postprocess_tgv->proc~write_step~2 proc~postprocess_wind_turbine m_case_wind_turbine::case_wind_turbine_t%postprocess_wind_turbine proc~postprocess_wind_turbine->interface~str proc~postprocess_wind_turbine->proc~is_root proc~postprocess_wind_turbine->proc~log_info proc~postprocess_wind_turbine->proc~write_step~2 write_output write_output proc~postprocess_wind_turbine->write_output proc~precorrect_walls m_solver::solver_t%precorrect_walls proc~precorrect_walls->proc~abort_run proc~precorrect_walls->proc~field_add_face_from_field_base proc~precorrect_walls->proc~field_scale_base proc~prepare_field_buffers m_io_field_utils::prepare_field_buffers proc~prepare_field_buffers->proc~get_dims proc~prepare_field_buffers->proc~get_global_dims proc~prepare_field_buffers->proc~get_output_dimensions proc~pressure_correction m_solver::solver_t%pressure_correction proc~pressure_correction->proc~divergence_v2p proc~pressure_correction->proc~get_block proc~pressure_correction->proc~gradient_p2v proc~pressure_correction->proc~release_block proc~pressure_correction->proc~vecadd_base proc~process_spectral_010->proc~pair_bw proc~process_spectral_010->proc~pair_fw proc~process_spectral_010->proc~poisson_divide proc~process_spectral_010->proc~postprocess_dim13_bw proc~process_spectral_010->proc~postprocess_dim13_fw proc~process_spectral_010_bw->proc~pair_bw proc~process_spectral_010_bw->proc~postprocess_dim13_bw proc~process_spectral_010_fw->proc~pair_fw proc~process_spectral_010_fw->proc~postprocess_dim13_fw proc~process_spectral_100->proc~process_spectral_010~2 proc~process_spectral_100_fw->proc~postprocess_dim13_fw proc~process_spectral_100_pair_bw->proc~pair_bw proc~process_spectral_100_pair_bw->proc~postprocess_dim13_bw proc~process_spectral_100_pair_fw->proc~pair_fw proc~process_spectral_100_pair_fw->proc~poisson_divide proc~process_spectral_110->proc~abort_run proc~process_spectral_110->proc~process_spectral_110_bw proc~process_spectral_110->proc~process_spectral_110_fw proc~process_spectral_110->proc~process_spectral_110_solve proc~process_spectral_110_x_pair_bw_mirror->proc~pair_bw proc~process_spectral_110_x_pair_fw_mirror->proc~pair_fw proc~project_forces_adm m_adm::adm_t%project_forces_adm proc~project_forces_adm->proc~field_labelled_axpy_base proc~project_forces_adm->proc~field_labelled_sums_base proc~project_forces_adm->mpi_allreduce proc~project_forces_dummy m_turbine_dummy::turbine_dummy_t%project_forces_dummy proc~pwmul m_omptgt_kernels_fieldops::pwmul proc~pwmul~2 m_cuda_kernels_fieldops::pwmul proc~qcriterion_from_gradients m_omptgt_kernels_fieldops::qcriterion_from_gradients proc~query_device_memory m_omptgt_device_info::query_device_memory proc~read_abl_nml m_config::abl_config_t%read_abl_nml proc~read_abl_nml->proc~abort_run proc~validate_abl_config m_config::validate_abl_config proc~read_abl_nml->proc~validate_abl_config proc~read_ad_file->proc~abort_run proc~read_channel_nml m_config::channel_config_t%read_channel_nml proc~read_channel_nml->proc~abort_run proc~read_checkpoint_adm m_adm::adm_t%read_checkpoint_adm proc~read_checkpoint_adm->none~read_data proc~read_checkpoint_adm->proc~abort_run proc~read_checkpoint_dummy m_turbine_dummy::turbine_dummy_t%read_checkpoint_dummy proc~read_checkpoint_nml m_config::checkpoint_config_t%read_checkpoint_nml proc~read_checkpoint_nml->proc~abort_run proc~read_checkpoint_nml->proc~log_warn proc~read_cylinder_nml m_config::cylinder_config_t%read_cylinder_nml proc~read_cylinder_nml->proc~abort_run proc~read_domain_nml m_config::domain_config_t%read_domain_nml proc~read_domain_nml->proc~abort_run proc~read_les_nml m_config::les_config_t%read_les_nml proc~read_les_nml->proc~abort_run proc~read_solver_nml m_config::solver_config_t%read_solver_nml proc~read_solver_nml->proc~abort_run proc~read_stats_nml m_config::stats_config_t%read_stats_nml proc~read_stats_nml->proc~abort_run proc~read_stats_nml->proc~log_warn proc~read_wind_turbine_nml m_config::wind_turbine_config_t%read_wind_turbine_nml proc~read_wind_turbine_nml->proc~abort_run proc~redistribute_110_to_yslab->proc~abort_run proc~redistribute_110_to_yslab->proc~check_cuda proc~redistribute_110_to_yslab->proc~check_mpi proc~redistribute_110_to_yslab->proc~pack_110_xyz_to_yslab proc~unpack_110_yslab m_cuda_spectral::unpack_110_yslab proc~redistribute_110_to_yslab->proc~unpack_110_yslab proc~redistribute_110_to_yslab->cudastreamsynchronize proc~redistribute_110_to_yslab->dim3 mpi_alltoall mpi_alltoall proc~redistribute_110_to_yslab->mpi_alltoall proc~redistribute_110_to_zslab->proc~abort_run proc~redistribute_110_to_zslab->proc~check_cuda proc~redistribute_110_to_zslab->proc~check_mpi proc~redistribute_110_to_zslab->proc~pack_110_yslab proc~unpack_110_yslab_to_xyz m_cuda_spectral::unpack_110_yslab_to_xyz proc~redistribute_110_to_zslab->proc~unpack_110_yslab_to_xyz proc~redistribute_110_to_zslab->cudastreamsynchronize proc~redistribute_110_to_zslab->dim3 proc~redistribute_110_to_zslab->mpi_alltoall proc~reorder m_omptgt_kernels_fieldops::reorder proc~reorder_base->proc~abort_run proc~reorder_c2x m_cuda_kernels_reorder::reorder_c2x proc~reorder_c2x->syncthreads proc~reorder_cuda->proc~abort_run proc~reorder_cuda->proc~get_block proc~reorder_cuda->proc~get_padded_dims proc~reorder_cuda->proc~release_block proc~reorder_cuda->proc~reorder_c2x proc~reorder_x2c m_cuda_kernels_reorder::reorder_x2c proc~reorder_cuda->proc~reorder_x2c proc~reorder_x2y m_cuda_kernels_reorder::reorder_x2y proc~reorder_cuda->proc~reorder_x2y proc~reorder_x2z m_cuda_kernels_reorder::reorder_x2z proc~reorder_cuda->proc~reorder_x2z proc~reorder_y2x m_cuda_kernels_reorder::reorder_y2x proc~reorder_cuda->proc~reorder_y2x proc~reorder_y2z m_cuda_kernels_reorder::reorder_y2z proc~reorder_cuda->proc~reorder_y2z proc~reorder_z2x m_cuda_kernels_reorder::reorder_z2x proc~reorder_cuda->proc~reorder_z2x proc~reorder_z2y m_cuda_kernels_reorder::reorder_z2y proc~reorder_cuda->proc~reorder_z2y proc~reorder_cuda->proc~resolve_field_t~2 proc~reorder_cuda->proc~set_data_loc proc~reorder_cuda->dim3 proc~reorder_omp m_omp_backend::omp_backend_t%reorder_omp proc~reorder_omp->proc~get_dirs_from_rdr proc~reorder_omp->proc~get_index_reordering proc~reorder_omp->proc~get_padded_dims proc~reorder_omp->proc~set_data_loc proc~reorder_x2c->syncthreads proc~reorder_x2y->syncthreads proc~reorder_y2x->syncthreads proc~reorder_y2z->syncthreads proc~reorder_z2y->syncthreads proc~resolve_field_t m_omptgt_backend::resolve_field_t proc~resolve_field_t->interface~str proc~resolve_field_t->proc~abort_run proc~resolve_field_t->proc~get_dev_ptr proc~resolve_field_t->proc~get_shape proc~rotate m_time_integrator::rotate proc~run m_base_case::base_case_t%run proc~run->interface~str proc~run->proc~abort_run proc~run->proc~apply_spatial_filter proc~run->proc~case_finalise proc~run->proc~compute_derived_fields proc~run->proc~compute_pressure_vert proc~run->proc~get_block proc~run->proc~has_output_field proc~run->proc~log_info proc~run->proc~precorrect_walls proc~run->proc~pressure_correction proc~run->proc~release_block apply_BC apply_BC proc~run->apply_BC define_BC define_BC proc~run->define_BC forcings forcings proc~run->forcings mpi_reduce mpi_reduce proc~run->mpi_reduce mpi_wtime mpi_wtime proc~run->mpi_wtime none~body m_ibm::ibm_t%body proc~run->none~body none~handle_io_step m_io_manager::io_manager_t%handle_io_step proc~run->none~handle_io_step proc~run->none~is_restart none~update_stats m_io_manager::io_manager_t%update_stats proc~run->none~update_stats postprocess postprocess proc~run->postprocess proc~scalar_product m_omptgt_kernels_fieldops::scalar_product proc~scalar_product_base m_base_backend::base_backend_t%scalar_product_base proc~scalar_product_base->proc~abort_run proc~scalar_product_cart m_omptgt_kernels_fieldops::scalar_product_cart proc~scalar_product_cuda m_cuda_backend::cuda_backend_t%scalar_product_cuda proc~scalar_product_cuda->proc~abort_run proc~scalar_product_cuda->proc~get_dims proc~scalar_product_cuda->proc~get_padded_dims proc~scalar_product_cuda->proc~resolve_field_t~2 proc~scalar_product~2 m_cuda_kernels_fieldops::scalar_product proc~scalar_product_cuda->proc~scalar_product~2 proc~scalar_product_cuda->dim3 proc~scalar_product_cuda->mpi_allreduce proc~scalar_product_omp m_omp_backend::omp_backend_t%scalar_product_omp proc~scalar_product_omp->proc~abort_run proc~scalar_product_omp->proc~get_block proc~scalar_product_omp->proc~get_dims proc~scalar_product_omp->proc~get_field_data proc~scalar_product_omp->proc~release_block proc~scalar_product_omp->mpi_allreduce proc~scalar_product~2->atomicadd proc~sendrecv_3fields->proc~check_cuda proc~sendrecv_3fields->proc~check_mpi proc~sendrecv_3fields->proc~copy_halo proc~sendrecv_3fields->cudastreamsynchronize mpi_irecv mpi_irecv proc~sendrecv_3fields->mpi_irecv mpi_isend mpi_isend proc~sendrecv_3fields->mpi_isend mpi_waitall mpi_waitall proc~sendrecv_3fields->mpi_waitall proc~sendrecv_3fields~2->proc~device_sync proc~sendrecv_3fields~2->proc~memcpy_d2d proc~sendrecv_3fields~2->mpi_irecv proc~sendrecv_3fields~2->mpi_isend proc~sendrecv_3fields~2->mpi_waitall proc~sendrecv_fields->proc~check_mpi proc~sendrecv_fields->mpi_irecv proc~sendrecv_fields->mpi_isend proc~sendrecv_fields->mpi_waitall proc~sendrecv_fields~2->proc~check_cuda proc~sendrecv_fields~2->proc~check_mpi proc~sendrecv_fields~2->proc~copy_halo proc~sendrecv_fields~2->cudastreamsynchronize proc~sendrecv_fields~2->mpi_irecv proc~sendrecv_fields~2->mpi_isend proc~sendrecv_fields~2->mpi_waitall proc~sendrecv_fields~3->proc~device_sync proc~sendrecv_fields~3->proc~memcpy_d2d proc~sendrecv_fields~3->mpi_irecv proc~sendrecv_fields~3->mpi_isend proc~sendrecv_fields~3->mpi_waitall proc~set_field_data->proc~copy_data_to_f_base proc~set_field_data->proc~get_block proc~set_field_data->proc~get_rdr_from_dirs proc~set_field_data->proc~release_block proc~set_field_data->proc~reorder_base proc~set_init->proc~get_block proc~set_init->proc~get_coordinates proc~set_init->proc~get_dims proc~set_init->proc~release_block proc~set_init->proc~set_field_data proc~set_log_level m_logger::set_log_level proc~set_shape_cuda m_cuda_allocator::cuda_field_t%set_shape_cuda proc~setup_field_arrays m_io_field_utils::setup_field_arrays proc~setup_field_arrays->proc~get_block proc~setup_field_arrays->proc~get_field_data proc~setup_field_arrays->proc~get_field_ptr proc~setup_field_arrays->proc~nvtx_pop proc~setup_field_arrays->proc~nvtx_push proc~setup_output_adm m_adm::adm_t%setup_output_adm proc~setup_output_adm->none~init~6 proc~setup_output_dummy m_turbine_dummy::turbine_dummy_t%setup_output_dummy proc~sgs_stress_from_gradients m_omptgt_kernels_fieldops::sgs_stress_from_gradients proc~slice_max_sum m_omptgt_kernels_fieldops::slice_max_sum proc~slice_max_sum_base->proc~abort_run proc~slice_max_sum_cuda m_cuda_backend::cuda_backend_t%slice_max_sum_cuda proc~slice_max_sum_cuda->proc~abort_run proc~slice_max_sum_cuda->proc~get_dims proc~slice_max_sum_cuda->proc~get_padded_dims proc~slice_max_sum_cuda->proc~resolve_field_t~2 proc~slice_max_sum_kernel m_cuda_backend::slice_max_sum_kernel proc~slice_max_sum_cuda->proc~slice_max_sum_kernel proc~slice_max_sum_cuda->dim3 proc~slice_max_sum_kernel->atomicadd proc~slice_max_sum_kernel->atomicmax proc~slice_max_sum_omp m_omp_backend::omp_backend_t%slice_max_sum_omp proc~slice_max_sum_omp->proc~abort_run proc~slice_max_sum_omp->proc~get_dims proc~slice_max_sum_omp->proc~get_padded_dims proc~smagorinsky_from_gradients m_omptgt_kernels_fieldops::smagorinsky_from_gradients proc~smagorinsky_nut m_les::smagorinsky_nut proc~strain_rate_magnitude m_les::strain_rate_magnitude proc~smagorinsky_nut->proc~strain_rate_magnitude proc~stagder_1st m_tdsops::tdsops_t%stagder_1st proc~stagder_1st->proc~abort_run proc~stagder_1st->proc~preprocess_dist proc~stagder_1st->proc~preprocess_thom proc~stretching_matrix->proc~get_imag proc~stretching_matrix->proc~get_km proc~stretching_matrix->proc~get_km_im proc~stretching_matrix->proc~get_km_re proc~stretching_matrix->proc~get_real proc~stride_data m_io_field_utils::stride_data proc~stride_data_to_buffer m_io_field_utils::stride_data_to_buffer proc~sum_intox m_omptgt_kernels_fieldops::sum_intox proc~sum_intox_omp m_omp_backend::sum_intox_omp proc~sum_intox_omp->proc~get_index_reordering proc~sum_intox_omp->proc~get_padded_dims proc~sum_yintox m_cuda_kernels_reorder::sum_yintox proc~sum_yintox->syncthreads proc~sum_yintox_base->proc~abort_run proc~sum_yintox_cuda m_cuda_backend::cuda_backend_t%sum_yintox_cuda proc~sum_yintox_cuda->proc~get_padded_dims proc~sum_yintox_cuda->proc~resolve_field_t~2 proc~sum_yintox_cuda->proc~sum_yintox proc~sum_yintox_cuda->dim3 proc~sum_yintox_omp m_omp_backend::omp_backend_t%sum_yintox_omp proc~sum_yintox_omp->proc~sum_intox_omp proc~sum_zintox m_cuda_kernels_reorder::sum_zintox proc~sum_zintox_base->proc~abort_run proc~sum_zintox_cuda m_cuda_backend::cuda_backend_t%sum_zintox_cuda proc~sum_zintox_cuda->proc~get_padded_dims proc~sum_zintox_cuda->proc~resolve_field_t~2 proc~sum_zintox_cuda->proc~sum_zintox proc~sum_zintox_cuda->dim3 proc~sum_zintox_omp m_omp_backend::omp_backend_t%sum_zintox_omp proc~sum_zintox_omp->proc~sum_intox_omp proc~supports_device_field_export m_base_backend::base_backend_t%supports_device_field_export proc~supports_device_field_export_cuda m_cuda_backend::cuda_backend_t%supports_device_field_export_cuda proc~sync_base m_base_backend::base_backend_t%sync_base proc~sync_base->proc~abort_run proc~sync_cuda m_cuda_backend::cuda_backend_t%sync_cuda proc~sync_cuda->proc~check_cuda cudadevicesynchronize cudadevicesynchronize proc~sync_cuda->cudadevicesynchronize proc~sync_omp m_omp_backend::omp_backend_t%sync_omp proc~tds_solve_base->proc~abort_run proc~tds_solve_cuda m_cuda_backend::cuda_backend_t%tds_solve_cuda proc~tds_solve_cuda->proc~abort_run proc~tds_solve_cuda->proc~get_n_groups proc~tds_solve_cuda->proc~move_data_loc proc~tds_solve_cuda->proc~set_data_loc proc~tds_solve_dist~3 m_cuda_backend::cuda_backend_t%tds_solve_dist proc~tds_solve_cuda->proc~tds_solve_dist~3 proc~thom_solve_cuda m_cuda_backend::cuda_backend_t%thom_solve_cuda proc~tds_solve_cuda->proc~thom_solve_cuda proc~tds_solve_cuda->dim3 proc~tds_solve_dist m_omp_backend::tds_solve_dist proc~tds_solve_dist->proc~copy_into_buffers proc~tds_solve_dist->proc~exec_dist_tds_compact~3 proc~tds_solve_dist->proc~get_n_groups proc~tds_solve_dist->proc~sendrecv_fields proc~tds_solve_dist~3->proc~copy_into_buffers~3 proc~tds_solve_dist~3->proc~exec_dist_tds_compact~2 proc~tds_solve_dist~3->proc~get_n_groups proc~tds_solve_dist~3->proc~resolve_field_t~2 proc~tds_solve_dist~3->proc~sendrecv_fields~2 proc~tds_solve_omp m_omp_backend::omp_backend_t%tds_solve_omp proc~tds_solve_omp->proc~abort_run proc~tds_solve_omp->proc~move_data_loc proc~tds_solve_omp->proc~set_data_loc proc~tds_solve_omp->proc~tds_solve_dist proc~thom_solve_omp m_omp_backend::omp_backend_t%thom_solve_omp proc~tds_solve_omp->proc~thom_solve_omp proc~tdsops_init->interface~str proc~tdsops_init->proc~abort_run proc~tdsops_init->proc~deriv_1st proc~tdsops_init->proc~deriv_2nd proc~tdsops_init->proc~interpl_mid proc~tdsops_init->proc~log_warn proc~tdsops_init->proc~lowpass proc~tdsops_init->proc~stagder_1st proc~thom_solve_base m_base_backend::base_backend_t%thom_solve_base proc~thom_solve_base->proc~abort_run proc~thom_solve_cuda->proc~abort_run proc~thom_solve_cuda->proc~exec_thom_tds_compact~3 proc~thom_solve_cuda->proc~get_n_groups proc~thom_solve_cuda->proc~move_data_loc proc~thom_solve_cuda->proc~resolve_field_t~2 proc~thom_solve_cuda->proc~set_data_loc proc~thom_solve_cuda->dim3 proc~thom_solve_omp->proc~abort_run proc~thom_solve_omp->proc~exec_thom_tds_compact proc~thom_solve_omp->proc~get_n_groups proc~thom_solve_omp->proc~move_data_loc proc~thom_solve_omp->proc~set_data_loc proc~transeq_cuda_dist m_cuda_backend::cuda_backend_t%transeq_cuda_dist proc~transeq_cuda_dist->none~get_n proc~transeq_cuda_dist->proc~copy_into_buffers~3 proc~transeq_cuda_dist->proc~exec_dist_transeq_3fused~2 proc~transeq_cuda_dist->proc~get_block proc~transeq_cuda_dist->proc~get_n_groups proc~transeq_cuda_dist->proc~release_block proc~transeq_cuda_dist->proc~resolve_field_t~2 proc~transeq_cuda_dist->proc~sendrecv_3fields proc~transeq_cuda_dist->proc~set_data_loc proc~transeq_cuda_thom m_cuda_backend::cuda_backend_t%transeq_cuda_thom proc~transeq_default m_solver::transeq_default proc~transeq_default->proc~apply_les proc~transeq_default->proc~get_block proc~transeq_default->proc~release_block proc~transeq_default->proc~reorder_base proc~transeq_default->proc~sum_yintox_base proc~transeq_default->proc~sum_zintox_base proc~transeq_species m_solver::solver_t%transeq_species proc~transeq_default->proc~transeq_species proc~transeq_x_base m_base_backend::base_backend_t%transeq_x_base proc~transeq_default->proc~transeq_x_base proc~transeq_y_base m_base_backend::base_backend_t%transeq_y_base proc~transeq_default->proc~transeq_y_base proc~transeq_z_base m_base_backend::base_backend_t%transeq_z_base proc~transeq_default->proc~transeq_z_base proc~transeq_lowmem m_solver::transeq_lowmem proc~transeq_lowmem->proc~apply_les proc~transeq_lowmem->proc~get_block proc~transeq_lowmem->proc~release_block proc~transeq_lowmem->proc~reorder_base proc~transeq_lowmem->proc~sum_yintox_base proc~transeq_lowmem->proc~sum_zintox_base proc~transeq_lowmem->proc~transeq_species proc~transeq_lowmem->proc~transeq_x_base proc~transeq_lowmem->proc~transeq_y_base proc~transeq_lowmem->proc~transeq_z_base proc~transeq_omp_dist m_omp_backend::omp_backend_t%transeq_omp_dist proc~transeq_omp_dist->none~get_n proc~transeq_omp_dist->proc~copy_into_buffers proc~transeq_omp_dist->proc~exec_dist_transeq_compact proc~transeq_omp_dist->proc~get_block proc~transeq_omp_dist->proc~get_n_groups proc~transeq_omp_dist->proc~release_block proc~transeq_omp_dist->proc~sendrecv_fields proc~transeq_omp_dist->proc~set_data_loc proc~transeq_species->proc~get_block proc~transeq_species->proc~release_block proc~transeq_species->proc~reorder_base proc~transeq_species->proc~sum_yintox_base proc~transeq_species->proc~sum_zintox_base proc~transeq_species_base m_base_backend::base_backend_t%transeq_species_base proc~transeq_species->proc~transeq_species_base proc~transeq_species_base->proc~abort_run proc~transeq_species_cuda m_cuda_backend::cuda_backend_t%transeq_species_cuda proc~transeq_species_cuda->none~get_n proc~transeq_species_cuda->proc~copy_into_buffers~3 proc~transeq_species_cuda->proc~exec_dist_transeq_3fused~2 proc~transeq_species_cuda->proc~get_block proc~transeq_species_cuda->proc~get_n_groups proc~transeq_species_cuda->proc~release_block proc~transeq_species_cuda->proc~resolve_field_t~2 proc~transeq_species_cuda->proc~sendrecv_fields~2 proc~transeq_species_cuda->proc~set_data_loc proc~transeq_species_omp m_omp_backend::omp_backend_t%transeq_species_omp proc~transeq_species_omp->proc~copy_into_buffers proc~transeq_species_omp->proc~exec_dist_transeq_compact proc~transeq_species_omp->proc~get_block proc~transeq_species_omp->proc~get_n_groups proc~transeq_species_omp->proc~release_block proc~transeq_species_omp->proc~sendrecv_fields proc~transeq_species_omp->proc~set_data_loc proc~transeq_x_base->proc~abort_run proc~transeq_x_cuda m_cuda_backend::cuda_backend_t%transeq_x_cuda proc~transeq_x_cuda->proc~transeq_cuda_dist proc~transeq_x_omp m_omp_backend::omp_backend_t%transeq_x_omp proc~transeq_x_omp->proc~transeq_omp_dist proc~transeq_y_base->proc~abort_run proc~transeq_y_cuda m_cuda_backend::cuda_backend_t%transeq_y_cuda proc~transeq_y_cuda->proc~transeq_cuda_dist proc~transeq_y_omp m_omp_backend::omp_backend_t%transeq_y_omp proc~transeq_y_omp->proc~transeq_omp_dist proc~transeq_z_base->proc~abort_run proc~transeq_z_cuda m_cuda_backend::cuda_backend_t%transeq_z_cuda proc~transeq_z_cuda->proc~transeq_cuda_dist proc~transeq_z_omp m_omp_backend::omp_backend_t%transeq_z_omp proc~transeq_z_omp->proc~transeq_omp_dist proc~u_func m_case_tgv::u_func proc~undo_periodicity_x m_cuda_spectral::undo_periodicity_x proc~undo_periodicity_x_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%undo_periodicity_x_cuda proc~undo_periodicity_x_cuda->proc~undo_periodicity_x proc~undo_periodicity_x_cuda->dim3 proc~undo_periodicity_x_omp m_omp_poisson_fft::omp_poisson_fft_t%undo_periodicity_x_omp proc~undo_periodicity_xy m_cuda_spectral::undo_periodicity_xy proc~undo_periodicity_xy_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%undo_periodicity_xy_cuda proc~undo_periodicity_xy_cuda->proc~undo_periodicity_xy proc~undo_periodicity_xy_cuda->dim3 proc~undo_periodicity_xy_omp m_omp_poisson_fft::omp_poisson_fft_t%undo_periodicity_xy_omp proc~undo_periodicity_y m_cuda_spectral::undo_periodicity_y proc~undo_periodicity_y_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%undo_periodicity_y_cuda proc~undo_periodicity_y_cuda->proc~undo_periodicity_y proc~undo_periodicity_y_cuda->dim3 proc~undo_periodicity_y_omp m_omp_poisson_fft::omp_poisson_fft_t%undo_periodicity_y_omp proc~update_adm m_adm::adm_t%update_adm proc~update_dummy m_turbine_dummy::turbine_dummy_t%update_dummy proc~usage_error->proc~abort_run proc~v_func m_case_tgv::v_func proc~validate_abl_config->proc~abort_run proc~vecadd_base->proc~abort_run proc~vecadd_cuda m_cuda_backend::cuda_backend_t%vecadd_cuda proc~vecadd_cuda->proc~axpby~2 proc~vecadd_cuda->proc~resolve_field_t~2 proc~vecadd_cuda->dim3 proc~vecadd_omp m_omp_backend::omp_backend_t%vecadd_omp proc~vecadd_omp->proc~abort_run proc~veccopy_base->proc~abort_run proc~veccopy_cuda m_cuda_backend::cuda_backend_t%veccopy_cuda proc~veccopy_cuda->proc~resolve_field_t~2 copy copy proc~veccopy_cuda->copy proc~veccopy_cuda->dim3 proc~veccopy_omp m_omp_backend::omp_backend_t%veccopy_omp proc~veccopy_omp->proc~abort_run proc~vecmult_base m_base_backend::base_backend_t%vecmult_base proc~vecmult_base->proc~abort_run proc~vecmult_cuda m_cuda_backend::cuda_backend_t%vecmult_cuda proc~vecmult_cuda->proc~pwmul~2 proc~vecmult_cuda->proc~resolve_field_t~2 proc~vecmult_cuda->dim3 proc~vecmult_omp m_omp_backend::omp_backend_t%vecmult_omp proc~vecmult_omp->proc~abort_run proc~vector_norm_squared m_omptgt_kernels_fieldops::vector_norm_squared proc~vector_norm_squared_base m_base_backend::base_backend_t%vector_norm_squared_base proc~vector_norm_squared_base->proc~abort_run proc~vector_norm_squared_cuda m_cuda_backend::cuda_backend_t%vector_norm_squared_cuda proc~vector_norm_squared_cuda->proc~abort_run proc~vector_norm_squared_cuda->proc~get_dims proc~vector_norm_squared_cuda->proc~get_padded_dims proc~vector_norm_squared_cuda->proc~resolve_field_t~2 proc~vector_norm_squared~2 m_cuda_kernels_fieldops::vector_norm_squared proc~vector_norm_squared_cuda->proc~vector_norm_squared~2 proc~vector_norm_squared_cuda->dim3 proc~vector_norm_squared_cuda->mpi_allreduce proc~vector_norm_squared_omp m_omp_backend::omp_backend_t%vector_norm_squared_omp proc~vector_norm_squared_omp->proc~abort_run proc~vector_norm_squared_omp->proc~get_dims proc~vector_norm_squared_omp->mpi_allreduce proc~vector_norm_squared~2->atomicadd proc~volume_integral m_omptgt_kernels_fieldops::volume_integral proc~volume_integral~2->atomicadd proc~vorticity_from_gradients m_omptgt_kernels_fieldops::vorticity_from_gradients proc~wall_damped_mixing_length m_les::wall_damped_mixing_length proc~warn_if_rhs_mean_nonzero x3d2_poisson_solver::warn_if_rhs_mean_nonzero proc~warn_if_rhs_mean_nonzero->interface~str proc~warn_if_rhs_mean_nonzero->proc~get_global_dims proc~warn_if_rhs_mean_nonzero->proc~log_warn proc~warn_if_rhs_mean_nonzero->mpi_allreduce proc~wave_numbers m_poisson_fft::wave_numbers proc~waves_set->proc~abort_run proc~waves_set->proc~wave_numbers proc~write_checkpoint_adm m_adm::adm_t%write_checkpoint_adm proc~write_checkpoint_adm->none~write_data proc~write_checkpoint_dummy m_turbine_dummy::turbine_dummy_t%write_checkpoint_dummy proc~write_output_adm m_adm::adm_t%write_output_adm proc~write_output_adm->interface~str proc~write_output_adm->proc~log_info none~write_step m_scalar_series::scalar_series_t%write_step proc~write_output_adm->none~write_step proc~write_output_dummy m_turbine_dummy::turbine_dummy_t%write_output_dummy proc~write_single_field_to_buffer m_io_field_utils::write_single_field_to_buffer proc~write_single_field_to_buffer->proc~abort_run proc~write_single_field_to_buffer->proc~get_dims proc~write_single_field_to_buffer->proc~get_global_dims proc~write_single_field_to_buffer->proc~get_output_dimensions proc~write_single_field_to_buffer->proc~nvtx_pop proc~write_single_field_to_buffer->proc~nvtx_push proc~write_single_field_to_buffer->proc~stride_data_to_buffer proc~write_step~2->interface~str proc~write_step~2->proc~curl proc~write_step~2->proc~divergence_v2p proc~write_step~2->proc~field_max_mean_base proc~write_step~2->proc~get_block proc~write_step~2->proc~log_info proc~write_step~2->proc~release_block proc~write_step~2->proc~vector_norm_squared_base proc~write_step~2->none~write_step proc~y_group_stride->proc~get_padded_dims program~x3d2_poisson_solver x3d2_poisson_solver program~x3d2_poisson_solver->interface~str program~x3d2_poisson_solver->proc~allocate_tdsops program~x3d2_poisson_solver->proc~fill_rhs program~x3d2_poisson_solver->proc~get_block program~x3d2_poisson_solver->proc~get_dims program~x3d2_poisson_solver->proc~init_poisson_fft_base program~x3d2_poisson_solver->proc~log_info program~x3d2_poisson_solver->proc~parse_arguments program~x3d2_poisson_solver->proc~release_block program~x3d2_poisson_solver->proc~set_data_loc program~x3d2_poisson_solver->proc~set_field_data program~x3d2_poisson_solver->proc~solve_poisson program~x3d2_poisson_solver->proc~sync_base program~x3d2_poisson_solver->proc~warn_if_rhs_mean_nonzero program~x3d2_poisson_solver->mpi_allreduce program~x3d2_poisson_solver->mpi_barrier program~x3d2_poisson_solver->mpi_comm_size mpi_finalize mpi_finalize program~x3d2_poisson_solver->mpi_finalize mpi_init mpi_init program~x3d2_poisson_solver->mpi_init program~x3d2_poisson_solver->mpi_wtime none~init~16 m_backend_setup::backend_setup_t%init program~x3d2_poisson_solver->none~init~16 program~xcompact xcompact program~xcompact->interface~str program~xcompact->proc~abort_run program~xcompact->proc~get_argument program~xcompact->proc~log_info program~xcompact->proc~log_warn program~xcompact->proc~run program~xcompact->mpi_comm_rank program~xcompact->mpi_comm_size program~xcompact->mpi_finalize program~xcompact->mpi_init program~xcompact->none~init~16
Help