Abstract Interfaces

Abstract InterfaceLocationDescription
alloc_tdsops m_base_backend
boundary_conditions m_base_case

Applies case-specific boundary coinditions

copy_data_to_f m_base_backend

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

copy_f_to_data m_base_backend

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

fft_backward m_poisson_fft
fft_forward m_poisson_fft
fft_postprocess m_poisson_fft
field_max_mean m_base_backend

Obtains maximum and mean values in a field

field_ops m_base_backend

Scales or shifts a field by a

field_process m_poisson_fft
field_reduce m_base_backend

Reduces field to a scalar, example: volume integral

field_set_face m_base_backend

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

forcings m_base_case

Applies case-specific or model realated forcings after transeq

init_poisson_fft m_base_backend
initial_conditions m_base_case

Sets case-specific initial conditions

poisson_solver m_solver
poisson_xxx m_poisson_fft
postprocess m_base_case

Triggers case-specific postprocessings at user specified intervals

pre_correction m_base_case

Applies case-specific pre-correction to the velocity fields before pressure correction

read m_config

Assigns the member variables either from a file or text source.

Read more…
reorder m_base_backend

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.

scalar_product m_base_backend

Calculates the scalar product of two input fields

stepper_func m_time_integrator
sum_intox m_base_backend

sum9into3 subroutine combines all the directional velocity derivatives into the corresponding x directional fields.

tds_solve m_base_backend

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 tds_solve to the correct algorithm.

transeq_ders m_base_backend

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_ders into the correct algorithm.

vecadd m_base_backend

adds two vectors together: y = ax + by