OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
GwRechargePluginAbi.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: Apache-2.0 */
2
11
12#ifndef OPENSWMM_GW_RECHARGE_PLUGIN_ABI_H
13#define OPENSWMM_GW_RECHARGE_PLUGIN_ABI_H
14#include "GpuPluginAbi.h"
15#include <stdint.h>
16#ifdef __cplusplus
17extern "C" {
18#endif
19/* Optional, independent extension to the surface ABI. Missing exports mean
20 * CPU execution. Version1 is host-parallel CLOSED_FORM recharge only;
21 * it never owns water, quality, heat, clocks or pending transfer receipts. */
22#define OPENSWMM_GW_RECHARGE_ABI_VERSION 1
23#define OPENSWMM_GW_OPERATOR_CLOSED_FORM_RECHARGE 1u
24#define OPENSWMM_GW_HOST_WATER_AND_RECEIPTS 1u
25#define OPENSWMM_GW_HOST_TRANSPORT 2u
26#define OPENSWMM_GW_HOST_REACTIONS 4u
27#define OPENSWMM_GW_HOST_THERMAL 8u
28#define OPENSWMM_GW_EXECUTION_HOST_OPENMP 1u
29
37
39 uint32_t struct_size;
40 int32_t law;
42 double length, hu; /* SI; immutable accepted owner state, not a trial receipt. */
44
45/* Caller supplies struct_size. Exact version/shape must agree before use. */
58/* Synchronous pure operator: no retained pointers or partially accepted state.
59 * Output is raw m/s recharge; donor/ET/table budgets remain with the core. */
81#ifdef __cplusplus
82}
83#endif
84#endif
Stable C ABI between the core engine and an optional GPU solver plugin.
#define OPENSWMM_GPU_ABI
Definition GpuPluginAbi.h:65
OPENSWMM_GPU_ABI int openswmm_gw_capabilities_v1(OpenSwmmGwCapabilitiesV1 *)
Query an independent host recharge-operator capability record.
Definition GpuPluginOmp.cpp:131
OPENSWMM_GPU_ABI int openswmm_gw_recharge_v1(const OpenSwmmGwRechargeInputV1 *, int, double *, int)
Evaluate a synchronous batch of independent CLOSED_FORM recharge cells.
Definition GpuPluginOmp.cpp:166
Definition GwRechargePluginAbi.h:30
uint32_t operators
Definition GwRechargePluginAbi.h:32
char label[128]
Definition GwRechargePluginAbi.h:35
uint32_t closures
Definition GwRechargePluginAbi.h:32
uint32_t canonical_host_restart
Definition GwRechargePluginAbi.h:33
uint32_t vendor
Definition GwRechargePluginAbi.h:31
uint32_t time_integrators
Definition GwRechargePluginAbi.h:33
uint32_t host_owned
Definition GwRechargePluginAbi.h:32
uint32_t execution_kind
Definition GwRechargePluginAbi.h:31
uint32_t struct_size
Definition GwRechargePluginAbi.h:31
uint32_t version
Definition GwRechargePluginAbi.h:31
uint32_t soil_laws
Definition GwRechargePluginAbi.h:32
uint32_t species_classes
Definition GwRechargePluginAbi.h:34
uint32_t max_layers
Definition GwRechargePluginAbi.h:34
Definition GwRechargePluginAbi.h:38
double length
Definition GwRechargePluginAbi.h:42
double psi_b
Definition GwRechargePluginAbi.h:41
double lambda
Definition GwRechargePluginAbi.h:41
double theta_r
Definition GwRechargePluginAbi.h:41
double vg_L
Definition GwRechargePluginAbi.h:41
double Ks
Definition GwRechargePluginAbi.h:41
int32_t law
Definition GwRechargePluginAbi.h:40
uint32_t struct_size
Definition GwRechargePluginAbi.h:39
double hu
Definition GwRechargePluginAbi.h:42
double vg_n
Definition GwRechargePluginAbi.h:41
double alpha
Definition GwRechargePluginAbi.h:41
double theta_s
Definition GwRechargePluginAbi.h:41