82 const std::vector<SurfaceIntakeRequest>&,
const Capacity* =
nullptr);
114 const std::vector<SurfaceIntakeReceipt>&
receipts() const noexcept {
return receipts_; }
126 double start_ = 0, end_ = 0, completed_end_ = 0;
127 bool planned_ =
false;
129 std::vector<SurfaceIntakeAward> awards_;
130 std::vector<SurfaceIntakeReceipt> receipts_;
The two-zone kernel. Owned by SurfaceRouter2D; driven by the marcher's tier hooks.
Definition SubsurfaceSolver.hpp:128
Definition SurfaceExchange.hpp:63
const std::vector< SurfaceIntakeAward > & awards() const noexcept
Read this exchange transaction's stable result state.
Definition SurfaceExchange.hpp:105
void cancel() noexcept
Discard pending intake awards without undoing committed receipts.
Definition SurfaceExchange.cpp:235
std::string commit(SubsurfaceSolver &, const std::vector< SurfaceIntakeActual > &, const Capacity *=nullptr)
Settle the current awards against the same aquifer owner.
Definition SurfaceExchange.cpp:177
double completedEnd() const noexcept
Read this exchange transaction's stable result state.
Definition SurfaceExchange.hpp:122
friend class CommonSourceStage
Definition SurfaceExchange.hpp:125
std::function< double(const SurfaceIntakeRequest &, double)> Capacity
Definition SurfaceExchange.hpp:67
const std::vector< SurfaceIntakeReceipt > & receipts() const noexcept
Read this exchange transaction's stable result state.
Definition SurfaceExchange.hpp:114
std::string plan(const SubsurfaceSolver &, double start, double end, double completed_through, const std::vector< SurfaceIntakeRequest > &, const Capacity *=nullptr)
Plan donor-limited, receiver-limited intake over a contiguous completed interval.
Definition SurfaceExchange.cpp:68
Definition ExchangeLaw.hpp:60
SurfaceReturnKind
Definition SurfaceExchange.hpp:42
@ COLUMN_EXCESS
Definition SurfaceExchange.hpp:42
@ PHYSICAL_DUNNE
Definition SurfaceExchange.hpp:42
@ NUMERICAL_REFUND
Definition SurfaceExchange.hpp:42
SurfaceDonorKind
Definition SurfaceExchange.hpp:20
@ NON_LID
Definition SurfaceExchange.hpp:20
@ LID_BOTTOM
Definition SurfaceExchange.hpp:20
@ MESH
Definition CommonSourceStage.hpp:27
Definition SurfaceExchange.hpp:52
std::vector< double > mass
Definition SurfaceExchange.hpp:54
double volume
Definition SurfaceExchange.hpp:53
Definition SurfaceExchange.hpp:31
SurfaceIntakeRequest request
Definition SurfaceExchange.hpp:32
double demand
Definition SurfaceExchange.hpp:33
double maximum
Definition SurfaceExchange.hpp:33
Definition SurfaceExchange.hpp:35
double volume
Definition SurfaceExchange.hpp:37
SurfaceIntakeRequest request
Definition SurfaceExchange.hpp:36
double start
Definition SurfaceExchange.hpp:37
double end
Definition SurfaceExchange.hpp:37
std::vector< double > mass
Definition SurfaceExchange.hpp:40
Definition SurfaceExchange.hpp:25
double candidate
Definition SurfaceExchange.hpp:29
std::string source
Definition SurfaceExchange.hpp:27
int unit
Definition SurfaceExchange.hpp:28
double water_ceiling
Definition SurfaceExchange.hpp:29
SurfaceDonorKind kind
Definition SurfaceExchange.hpp:26
double area
Definition SurfaceExchange.hpp:29
double pond
Definition SurfaceExchange.hpp:29
int cell
Definition SurfaceExchange.hpp:28
Definition SurfaceExchange.hpp:45
std::vector< double > mass
Definition SurfaceExchange.hpp:50
SurfaceReturnKind kind
Definition SurfaceExchange.hpp:46
SurfaceIntakeReceipt intake
Definition SurfaceExchange.hpp:47
double volume
Definition SurfaceExchange.hpp:49
double available_at
Definition SurfaceExchange.hpp:48