-
Notifications
You must be signed in to change notification settings - Fork 11
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
Implement shutoff valve data structures #28
Comments
The above assumption that |
Per our meeting, shutoff valves should exist at all pipes connected to tanks and all pipes referenced in the |
In gas models, the two types of valves we support (so far) are regulator (pressure reducing) valves and on/off valves and we model them as distinct edge objects, mainly so we didn't clutter pipe objects with extra fields that are often unused. Might be something to consider. There are pros and cons to both approaches. I think powermodels supports both... lines can act as simple switches, but can support more exotic separate breaker objects as well. |
That's a good point. Looking at the constraints, there's no reason why they shouldn't be distinct. (Check valves and shutoff valves should also be distinct from pipes, I think.) |
Clarification to my comment above (as per our meeting)! Pipes with valves should be decomposed as pipes and valves. |
Also, per our discussion, perhaps shutoff valves should not be included in all pipes connected to tanks. This could result in more binary variables introduced than necessary. Instead, as @enzoliuyang94 suggested:
@enzoliuyang94, @jjstickel, is this an accurate summary? As I read over this: (1) I don't understand the purpose of creating an artificial node for a tank. Why not just have a binary variable for each of the original tanks that allows incoming/outgoing flow when equal to one and disallows it otherwise? (2) Should a single binary variable control whether a tank is decoupled from the network? The more I think about this, I still don't see how this is as flexible as a system that includes shutoff valves for all pipes connected to tanks. Imagine a single tank connected to multiple nodes via pipes with shutoff valves: the ability to control where the tank will (or will not) send water will surely expand the set of feasible solutions, right? If we have just a single control for tanks (i.e., whether or not flow can enter/exit), then once the tank is open, water will be distributed everywhere according to the head loss relationships among connected nodes. I guess I still don't have clarity as to what's the most realistic or best approach... Discussion is appreciated! |
I also recommend that we develop some interesting edge cases in #93. |
See the Open Water Analytics definition of shutoff valves and EPANET's description of shutoff valves in Section 3.1. Note that shutoff and check valves are not considered to be
[VALVES]
but are instead parts of[PIPES]
. Although this does not appear to be documented, as far as I can tell, pipe objects with emptystatus
flags should be considered shutoff valves. A:shutoff_valve
key withinref
should be constructed to easily filter links that are pipes with shutoff valves. Since[PIPES]
objects are already parsed insrc/io/epanet.jl
, implementing these data structures should be easy.The text was updated successfully, but these errors were encountered: