Procedures

ProcedureLocationProcedure TypeDescription
alloc_cuda_tdsops m_cuda_backend Subroutine
alloc_omp_tdsops m_omp_backend Subroutine
allocate_tdsops m_solver Subroutine
allocator_init m_allocator Function
allocator_t m_allocator Interface
axpby m_cuda_kernels_fieldops Subroutine
base_init m_base_backend Subroutine
base_init m_poisson_fft Subroutine
boundary_conditions_generic m_case_generic Subroutine
boundary_conditions_tgv m_case_tgv Subroutine
buffer_copy m_cuda_kernels_fieldops 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
compute_padded_dims m_allocator Subroutine
copy_data_to_f_cuda m_cuda_backend Subroutine
copy_data_to_f_omp m_omp_backend Subroutine
copy_f_to_data_cuda m_cuda_backend Subroutine
copy_f_to_data_omp m_omp_backend Subroutine
copy_into_buffers m_omp_backend Subroutine
copy_into_buffers m_cuda_backend Subroutine
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_poisson_fft_t m_cuda_poisson_fft 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
curl m_vector_calculus Subroutine

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

Read more…
curl m_solver Subroutine

Wrapper for curl

der_univ_dist m_cuda_kernels_dist Subroutine
der_univ_dist m_omp_kernels_dist Subroutine
der_univ_fused_subs m_omp_kernels_dist Subroutine
der_univ_subs m_cuda_kernels_dist Subroutine
der_univ_subs m_omp_kernels_dist Subroutine
der_univ_thom m_cuda_kernels_thom Subroutine
der_univ_thom_per m_cuda_kernels_thom Subroutine
deriv_1st m_tdsops Subroutine
deriv_2nd m_tdsops Subroutine
destroy m_allocator Subroutine

Go through the block list from head to tail, deallocating each memory block in turn. Deallocation of a m_allocator object automatically deallocates its internal allocatable data array.

divergence_v2c m_vector_calculus Subroutine

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

Read more…
divergence_v2p m_solver Subroutine

Wrapper for divergence_v2p

domain_decomposition m_mesh Subroutine

Supports 1D, 2D, and 3D domain decomposition.

Read more…
exec_dist_tds_compact m_cuda_exec_dist Subroutine
exec_dist_tds_compact m_omp_exec_dist Subroutine
exec_dist_transeq_3fused m_cuda_exec_dist Subroutine
exec_dist_transeq_compact m_omp_exec_dist Subroutine
exec_thom_tds_compact m_cuda_exec_thom Subroutine
fft_backward_cuda m_cuda_poisson_fft Subroutine
fft_backward_omp m_omp_poisson_fft Subroutine
fft_forward_cuda m_cuda_poisson_fft Subroutine
fft_forward_omp m_omp_poisson_fft Subroutine
fft_postprocess_cuda m_cuda_poisson_fft Subroutine
fft_postprocess_omp m_omp_poisson_fft Subroutine
field_init m_field Function
field_scale m_cuda_kernels_fieldops Subroutine
field_scale_cuda m_cuda_backend Subroutine
field_scale_omp m_omp_backend Subroutine
field_shift m_cuda_kernels_fieldops Subroutine
field_shift_cuda m_cuda_backend Subroutine
field_shift_omp m_omp_backend Subroutine
field_t m_field Interface
fill m_field Subroutine
fill_cuda m_cuda_allocator Subroutine
finalize m_time_integrator Subroutine
forcings_generic m_case_generic Subroutine
forcings_tgv m_case_tgv Subroutine
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 a 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 physical location of a cell center with i,j,k local indices

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_dims_dir m_mesh Function

Getter for the dimensions of an array directed along dir where data would be located on data_loc

get_field_dims_phi m_mesh Function

Getter for the dimensions of field phi

get_field_dims_phi_dataloc m_mesh Function

Getter for the dimensions of field phi where data is located on data_loc

get_global_dims m_mesh Function

Getter for local domain dimensions

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 Interface
get_index_reordering_dirs m_ordering Subroutine

Converts a set of application storage directional index to an other direction. The two directions are defined by the reorder_dir variable, RDR_X2Y will go from storage in X to Y etc.

get_index_reordering_rdr m_ordering Subroutine
get_n_dir m_mesh Function

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

get_n_groups_dir m_mesh Function

Getter for the number of groups for fields in direction dir

get_n_groups_phi m_mesh Function

Getter for the number of groups for fields phi

get_n_phi m_mesh Function

Getter for the main dimension of field phi

get_padded_dims_dir m_mesh Function

Getter for padded dimensions with structure in dir direction

get_padded_dims_phi m_mesh Function

Getter for padded dimensions for field phi Gets the field direction from the field itself

get_rdr_from_dirs m_common Function

Returns RDR_?2? value based on two direction inputs

get_shape m_field Function
get_shape_cuda m_cuda_allocator Function
get_sz m_mesh Function

Getter for parameter SZ

get_tds_n m_tdsops Function

Get the tds_n size based on the from_to value (and the mesh)

gradient_c2v m_vector_calculus Subroutine

Gradient of a scalar field 'p'.

Read more…
gradient_p2v m_solver Subroutine

Wrapper for gradient_p2v

init m_omp_backend Function
init m_time_integrator Function
init m_vector_calculus Function
init m_cuda_backend Function
init m_solver Function
init_cuda_poisson_fft m_cuda_backend Subroutine
init_omp_poisson_fft m_omp_backend Subroutine
initial_conditions_generic m_case_generic Subroutine
initial_conditions_tgv m_case_tgv Subroutine
interpl_mid m_tdsops Subroutine
is_root m_mesh Function

Returns whether or not the current rank is the root rank

laplacian m_vector_calculus Subroutine

Laplacian of a scalar field 'u'.

Read more…
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
omp_backend_t m_omp_backend Interface
omp_poisson_fft_t m_omp_poisson_fft Interface
poisson_cg m_solver Subroutine
poisson_fft m_solver Subroutine
postprocess_generic m_case_generic Subroutine
postprocess_tgv m_case_tgv Subroutine
preprocess_dist m_tdsops Subroutine
preprocess_thom m_tdsops Subroutine
pressure_correction m_solver Subroutine
print_div_max_mean m_base_case Subroutine

Reports the div(u) at cell centres

print_enstrophy m_base_case Subroutine

Reports the enstrophy

process_spectral_div_u m_cuda_spectral Subroutine

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

Read more…
release_block m_allocator Subroutine

Release memory block pointed to by HANDLE to the block list. It is pushed to the front of the block list, in other words it is made the head block.

reorder_c2x m_cuda_kernels_reorder Subroutine
reorder_cuda m_cuda_backend Subroutine
reorder_omp m_omp_backend Subroutine
reorder_x2c m_cuda_kernels_reorder Subroutine
reorder_x2y m_cuda_kernels_reorder Subroutine
reorder_x2z m_cuda_kernels_reorder Subroutine
reorder_y2x m_cuda_kernels_reorder Subroutine
reorder_y2z m_cuda_kernels_reorder Subroutine
reorder_z2x m_cuda_kernels_reorder Subroutine
reorder_z2y m_cuda_kernels_reorder Subroutine
resolve_field_t m_cuda_backend Subroutine
rotate m_time_integrator Subroutine
run m_base_case Subroutine

Runs the solver forwards in time from t=t_0 to t=T, performing postprocessing/IO and reporting diagnostics.

scalar_product m_cuda_kernels_fieldops Subroutine
scalar_product_cuda m_cuda_backend Function
scalar_product_omp m_omp_backend Function
sendrecv_3fields m_cuda_sendrecv Subroutine
sendrecv_fields m_omp_sendrecv Subroutine
sendrecv_fields m_cuda_sendrecv Subroutine
set_data_loc m_field Subroutine
set_field_data m_base_backend Subroutine
set_init m_base_case Subroutine
set_padded_dims m_mesh Subroutine
set_shape m_field Subroutine
set_shape_cuda m_cuda_allocator Subroutine
set_sz m_mesh Subroutine
solver_t m_solver Interface
stagder_1st m_tdsops Subroutine
step m_time_integrator Subroutine
sum_intox_omp m_omp_backend Subroutine
sum_yintox m_cuda_kernels_reorder Subroutine
sum_yintox_cuda m_cuda_backend Subroutine
sum_yintox_omp m_omp_backend Subroutine
sum_zintox m_cuda_kernels_reorder Subroutine
sum_zintox_cuda m_cuda_backend Subroutine
sum_zintox_omp m_omp_backend Subroutine
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
time_intg_t m_time_integrator Interface
transeq m_solver Subroutine

Skew-symmetric form of convection-diffusion terms in the incompressible Navier-Stokes momemtum equations, excluding pressure terms. Inputs from velocity grid and outputs to velocity grid.

transeq_3fused_dist m_cuda_kernels_dist Subroutine
transeq_3fused_subs m_cuda_kernels_dist Subroutine
transeq_cuda_dist m_cuda_backend Subroutine
transeq_cuda_thom m_cuda_backend Subroutine

Thomas algorithm implementation. So much more easier than the distributed algorithm. It is intended to work only on a single rank so there is no MPI communication.

transeq_omp_dist m_omp_backend Subroutine
transeq_x_cuda m_cuda_backend Subroutine
transeq_x_omp m_omp_backend Subroutine
transeq_y_cuda m_cuda_backend Subroutine
transeq_y_omp m_omp_backend Subroutine
transeq_z_cuda m_cuda_backend Subroutine
transeq_z_omp m_omp_backend Subroutine
u_func m_case_tgv Function
v_func m_case_tgv Function
vecadd_cuda m_cuda_backend Subroutine
vecadd_omp m_omp_backend Subroutine
vector_calculus_t m_vector_calculus Interface
waves_set m_poisson_fft Subroutine

Spectral equivalence constants

Read more…