![]() |
OpenSWMM Engine
6.0.0-alpha.1
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.1)
|
Functions | |
| void | area_circular (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_full, const double *OPENSWMM_RESTRICT a_full, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for CIRCULAR/FORCE_MAIN — lookup table interpolation. | |
| void | area_rect (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT w_max, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for RECT_CLOSED / RECT_OPEN: area = depth * w_max. | |
| void | area_trapezoidal (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_bot, const double *OPENSWMM_RESTRICT s_bot, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for TRAPEZOIDAL: area = (y_bot + s_bot * depth) * depth. | |
| void | area_triangular (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT s_bot, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for TRIANGULAR: area = s_bot * depth^2. | |
| void | area_parabolic (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT r_bot, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for PARABOLIC: area = (4/3) * r_bot * depth^(3/2). | |
| void | area_powerfunc (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT s_bot, const double *OPENSWMM_RESTRICT r_bot, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for POWERFUNC: area = r_bot * depth^(s_bot+1). | |
| void | area_tabulated (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_full, const double *OPENSWMM_RESTRICT a_full, const double *table, int table_size, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for any tabulated shape (egg, horseshoe, arch, ellipse, etc.). | |
| void | area_inv_tabulated (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_full, const double *OPENSWMM_RESTRICT a_full, const double *table, int table_size, double *OPENSWMM_RESTRICT area, int count) |
| Batch area for shapes using invLookup (gothic, catenary, semielliptical, semicircular). | |
| void | hydrad_circular (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_full, const double *OPENSWMM_RESTRICT r_full, double *OPENSWMM_RESTRICT hydrad, int count) |
| void | hydrad_trapezoidal (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_bot, const double *OPENSWMM_RESTRICT s_bot, const double *OPENSWMM_RESTRICT r_bot, double *OPENSWMM_RESTRICT hydrad, int count) |
| void | hydrad_triangular (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT s_bot, const double *OPENSWMM_RESTRICT r_bot, double *OPENSWMM_RESTRICT hydrad, int count) |
| void | hydrad_rect (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT w_max, double *OPENSWMM_RESTRICT hydrad, int count) |
| void | hydrad_tabulated (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_full, const double *OPENSWMM_RESTRICT r_full, const double *table, int table_size, double *OPENSWMM_RESTRICT hydrad, int count) |
| void | width_circular (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_full, const double *OPENSWMM_RESTRICT w_max, double *OPENSWMM_RESTRICT width, int count) |
| void | width_trapezoidal (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_bot, const double *OPENSWMM_RESTRICT s_bot, double *OPENSWMM_RESTRICT width, int count) |
| void | width_triangular (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT s_bot, double *OPENSWMM_RESTRICT width, int count) |
| void | width_rect (const double *OPENSWMM_RESTRICT w_max, double *OPENSWMM_RESTRICT width, int count) |
| void | width_tabulated (const double *OPENSWMM_RESTRICT depth, const double *OPENSWMM_RESTRICT y_full, const double *OPENSWMM_RESTRICT w_max, const double *table, int table_size, double *OPENSWMM_RESTRICT width, int count) |
| void openswmm::xsect_batch::area_circular | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_full, | ||
| const double *OPENSWMM_RESTRICT | a_full, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for CIRCULAR/FORCE_MAIN — lookup table interpolation.
For each element i: area[i] = a_full[i] * lookup(depth[i]/y_full[i]). The inner loop is written for auto-vectorisation (no branches, no function calls except for the quadratic refinement at small depths).
| void openswmm::xsect_batch::area_inv_tabulated | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_full, | ||
| const double *OPENSWMM_RESTRICT | a_full, | ||
| const double * | table, | ||
| int | table_size, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for shapes using invLookup (gothic, catenary, semielliptical, semicircular).
| void openswmm::xsect_batch::area_parabolic | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | r_bot, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for PARABOLIC: area = (4/3) * r_bot * depth^(3/2).
| void openswmm::xsect_batch::area_powerfunc | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | s_bot, | ||
| const double *OPENSWMM_RESTRICT | r_bot, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for POWERFUNC: area = r_bot * depth^(s_bot+1).
| void openswmm::xsect_batch::area_rect | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | w_max, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for RECT_CLOSED / RECT_OPEN: area = depth * w_max.
| void openswmm::xsect_batch::area_tabulated | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_full, | ||
| const double *OPENSWMM_RESTRICT | a_full, | ||
| const double * | table, | ||
| int | table_size, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for any tabulated shape (egg, horseshoe, arch, ellipse, etc.).
| void openswmm::xsect_batch::area_trapezoidal | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_bot, | ||
| const double *OPENSWMM_RESTRICT | s_bot, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for TRAPEZOIDAL: area = (y_bot + s_bot * depth) * depth.
| void openswmm::xsect_batch::area_triangular | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | s_bot, | ||
| double *OPENSWMM_RESTRICT | area, | ||
| int | count | ||
| ) |
Batch area for TRIANGULAR: area = s_bot * depth^2.
| void openswmm::xsect_batch::hydrad_circular | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_full, | ||
| const double *OPENSWMM_RESTRICT | r_full, | ||
| double *OPENSWMM_RESTRICT | hydrad, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::hydrad_rect | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | w_max, | ||
| double *OPENSWMM_RESTRICT | hydrad, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::hydrad_tabulated | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_full, | ||
| const double *OPENSWMM_RESTRICT | r_full, | ||
| const double * | table, | ||
| int | table_size, | ||
| double *OPENSWMM_RESTRICT | hydrad, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::hydrad_trapezoidal | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_bot, | ||
| const double *OPENSWMM_RESTRICT | s_bot, | ||
| const double *OPENSWMM_RESTRICT | r_bot, | ||
| double *OPENSWMM_RESTRICT | hydrad, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::hydrad_triangular | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | s_bot, | ||
| const double *OPENSWMM_RESTRICT | r_bot, | ||
| double *OPENSWMM_RESTRICT | hydrad, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::width_circular | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_full, | ||
| const double *OPENSWMM_RESTRICT | w_max, | ||
| double *OPENSWMM_RESTRICT | width, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::width_rect | ( | const double *OPENSWMM_RESTRICT | w_max, |
| double *OPENSWMM_RESTRICT | width, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::width_tabulated | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_full, | ||
| const double *OPENSWMM_RESTRICT | w_max, | ||
| const double * | table, | ||
| int | table_size, | ||
| double *OPENSWMM_RESTRICT | width, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::width_trapezoidal | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | y_bot, | ||
| const double *OPENSWMM_RESTRICT | s_bot, | ||
| double *OPENSWMM_RESTRICT | width, | ||
| int | count | ||
| ) |
| void openswmm::xsect_batch::width_triangular | ( | const double *OPENSWMM_RESTRICT | depth, |
| const double *OPENSWMM_RESTRICT | s_bot, | ||
| double *OPENSWMM_RESTRICT | width, | ||
| int | count | ||
| ) |