| Abstract Interface | Location | Description |
|---|---|---|
| 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. |
| 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. |
| transeq_ders_spec | 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. |
| transport_equation | m_solver | |
| vecadd | m_base_backend | adds two vectors together: y = ax + by |
| veccopy | m_base_backend | copy vectors: y = x |
| vecmult | m_base_backend | pointwise multiplication between two vectors: y(:) = y(:) * x(:) |