Skip to content

Commit

Permalink
fixes regression related to tank fill/empty events
Browse files Browse the repository at this point in the history
In the affected code, q is really just a proxy for flow direction. And in cases where a tank has filled in a previous step, its connected link will have been TEMPCLOSED making the flow pretty small. When this occurs, the link actually never opens even if dH says that the tank should be draining.
  • Loading branch information
Sam Hatchett committed Jun 24, 2024
1 parent 109a93f commit 0329819
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/hydstatus.c
Original file line number Diff line number Diff line change
Expand Up @@ -433,10 +433,10 @@ void tankstatus(Project *pr, int k, int n, double q)
if (tank->A == 0.0) return;

// Can't add flow to a full tank
if (hyd->NodeHead[n] >= tank->Hmax && !tank->CanOverflow && q < TINY)
if (hyd->NodeHead[n] >= tank->Hmax && !tank->CanOverflow && q < 0.0)
hyd->LinkStatus[k] = TEMPCLOSED;

// Can't remove flow from an empty tank
else if (hyd->NodeHead[n] <= tank->Hmin && q > -TINY)
else if (hyd->NodeHead[n] <= tank->Hmin && q > 0.0)
hyd->LinkStatus[k] = TEMPCLOSED;
}

0 comments on commit 0329819

Please sign in to comment.