-
Notifications
You must be signed in to change notification settings - Fork 134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Level Pool Mass Balance Bug #290
Comments
As has been realized, this fix DOES NOT address what happens to orifice + weir outflows in the overtop condition. The proposed solution doesn't account for these, but could be modified to do so.
Also need to appropriately recompute H (it may not longer be maxh since the extra volume is removed from the reservoir.) This would likely mean that we maintain NEARLY max elevation, minus the extent of the weir to move flow, so by the next time step we are below max again, then will cross over with the new inflow, move the excess and however much the weir can handle, and the elevation is once again below max. |
@jdmattern-noaa attached previously attached this information to #292 which add further detail: Modification on the Level Pool MethodThis is an example of how the new fix would impact the outflow simulated by the Level Pool (LP) method. We added here results for the lake_id ==16944276. Note that graphs may not clearly represent the difference. |
@laurareads @dnyates Reference to latest Level Pool formulation discussion. |
Stay tuned for modifications according to @nels comment. We will pass unit tests on a small domain and then send off to you for comments. |
The level pool formulation doesn't correctly conserve mass when exceeding max conditionions.
Expected Behavior
When a reservoir is below max, and the current conditions would cause it to exceed max, it should fill the available storage and release the excess water.
Current Behavior
When current conditions cause the reservoir to exceed max, storage becomes max and all inflow is passed to outflow. This creates water in the reservoir!
Possible Solution
#292 PR
When the reservoir exceeds max, the discharge should be
discharge = qi1 - (((maxh - Htmp) * sap) / dt)
When the reservoir was not full, but would exceed,
maxh-Htmp = available storage
and only the excess inflow goes to outflow.When the reservoir is already full,
maxh-htmp = 0
, and all inflow goes to outflow.The text was updated successfully, but these errors were encountered: