Comments (6)
Concerning these three points,
- Mathematical Model, i.e. MINLP or MISCOP, etc.
- Direction, i.e. whether or not the flow directions are fixed or not
- Pipeflow physics, i.e. Hazen-Williams or Darcy-Weichbach
Following the lessons from PowerModels I would recomend: (1) be solved with a model types; (2) be handed with different problem specifications, not types; (3) I am inclined to say this should also be different problem specifications as well, but it might also be reasonable to do with types. I would need to discuss the differences in the physics.
from watermodels.jl.
Concerning (2), I think this should be done through problem specification, not type. This is primarily because there may be occasions where it is useful to assume fixed directions for a only a subset of flow variables.
Concerning (3), I think this should also be handled via problem specification. Otherwise, the model will need to be constructed with the proper type after inspection of the friction formulation being used, as specified by the user's input file. We could, of course, read in the input data, then make this choice, but that seems to diverge from the way PowerModels and GasModels models are constructed.
from watermodels.jl.
I am open to discussion on how we engineer this. I would prefer to keep conditional statements out of the definitions of the constraints and variables. (i.e. if darcy do this. if directed do this). So, I'd like to see separate functions for each of these definitions. Then it can be the responsibility of the problem definition or type definition to determine which function to call.
In other words, I don't think the determination of the directed vs undirected etc should live in the data, rather that should be defined in the model type or problem definition. Maybe we can discuss this afternoon?
from watermodels.jl.
Regarding our discussion today, the following decisions were made:
- Mathematical models will be typed.
- Direction will be specified through the data model. Separate sets of directed and undirected edges will be maintained in
ref
. These sets will be looped over in the corresponding modelpost
method, where different constraints will be applied within each loop. - The physical model used (i.e., Hazen-Williams or Darcy-Weisbach) will be typed.
from watermodels.jl.
Just to clarify, on #3, these will be typed at the problem specification level, i.e. having something like post_wf_hw and post_wf_dw
from watermodels.jl.
I second @rb004f's remark.
from watermodels.jl.
Related Issues (20)
- Implement parsing, variables, and constraints for throttle control valves HOT 2
- Implement modeling of dispatchable reservoir heads, tank volumes, and demands
- Rename formulation types HOT 17
- Implement an equality-constrained quadratic form for head gain constraints
- Model edge-type flows controlled by indicator variables with semi-continuous variables
- Parse [STATUS] block in .inp files
- Translate pipes that are short with valves to just valves
- Include pump power and cost data in the solution dictionary HOT 1
- TagBot trigger issue HOT 8
- Update Infrastructure Models Conventions (01/2021) HOT 1
- Implement a function to deactivate components that need not be modeled
- Ecosystem Maintenance
- Decompose pipes with valves into separate components
- Develop test cases that explore the limitations of various tank models
- Releases HOT 20
- use appropriate demand values for single-time water model HOT 19
- Document use of `InfrastructureModels.load_timepoint!` to configure and solve single-period problems
- Filter inactive components by reading their `status` attribute
- Implement a bound tightening utility function HOT 1
- handle situation of pumps defined as "constant power" HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from watermodels.jl.