Comments (3)
There are a number of ways in which the YAML file could look following the introduction of this, including (assuming the technology produces heat and power):
- in the same capacity as
rb
, in which there are a set ofcb
constraints defining heat output. Hereallow_cb
would be disabled onFalse
and a string when used (i.e.heat
in this case). carrier_2
is defined in the line followingcarrier
. In this case only one other constraint would be defined: the percentage ofcarrier_2
produced whencarrier
is produced (i.e. heat to power ratio).- list arrays for certain YAML values, such that
carrier = power
becomescarrier = [power, heat]
and subsequent constraints are dealt with in the same fashion or there is simply a heat to power ratio which is required when defining more than one carrier. This could allow an infinite number of carriers to be defined, which may be useful. As a result, the heat to power ratio constraint (htp
) could then also be a list, following the number of carriers defined. - Define a dummy technology which consumes no resources and has an additional constraint to force it to follow the output of the primary carrier. This requires the least change in the current code, but puts the onus on the user to understand how to use the fix, and could be misused easier.
I've attached a YAML file with each example applied. Far from exhaustive, would welcome other thoughts on it.
Currently it doesn't allow one technology to consume a resource and decide the degree to which it will produce the respective carriers, which might be useful (imagine the case where CSP produces electricity from heat but may decide that hot water is a more useful provision at a given point).
from calliope.
I think option 3 would be best, followed by option 2 or perhaps 1, but if the added flexibility of option 3 is not necessary at the moment, it may not be worth the added effort to implement.
If option 3 is implemented other parts of configuration could potentially be generalized too: source_carrier
, which defines the carrier consumed by a conversion technology, and perhaps secondary resource (``rb`)?
from calliope.
This will be dealt with in the same fashion as for issue #9, in which the multiple outputs and inputs will be defined in the yaml file, turning the source_carrier
and carrier
into dicts rather than simple strings. Expected in version 0.5.0
from calliope.
Related Issues (20)
- Store example notebooks as plain text
- Document AttrDict `_REPLACE_ ` HOT 1
- Requesting v0.7 documentation improvements/fixes HOT 3
- Cannot use IDE schema validator with Calliope model YAML files HOT 1
- `purchased` binary variable isn't linked to `energy_cap` if `energy_cap_max`/`_min`/`_equals` isn't defined
- Cannot define numeric index items when loading tabular data
- Multiple rows and columns introduce false index items HOT 7
- AttrDict sorts keys on union
- Default installation does not have optional dependencies HOT 2
- Allow setting saving of shadow prices for constraints in YAML HOT 2
- Add `title` or `long-name` parameter to math syntax
- Store start and stop time stamps in model results
- Better document and test `operate` mode
- Custom constraints sum() slicing seems to fail inconsistently HOT 1
- adding scenarios and overrides
- Run Calliope multiple times with historic data before generating results HOT 1
- Pyomo v6.7.2 regression: Gurobi Python interface not found HOT 2
- Improve package/version management by moving to pixi
- Change the name of 'tech_groups' to 'tech_class' HOT 3
- Difficult to navigate through the menu 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 calliope.