You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cleaning up a former discussion (see #643), regarding the points around available_flow_cap.
My initial comment
I failed figuring that one out from the docs, so just posting current question:
Assuming flow_cap_max is set, and operating_units exists (so integer_dispatch = true, therefore cap_method = integer must be set, and both operating_units and purchased_units exists), then:
available_flow_cap_continuous sets flow_cap as upper bound.
available_flow_cap_binary enforces the second upper bound as flow_cap_max * operating_units, based on whether or not any units are actually operating.
operating_units is bounded by purchased_units.
flow_cap is already bounded by flow_cap_max * purchased_units.
So (2.) sets a bound on available_flow_cap (using operating_units), that is tighter than the one (1.) constructs, since that in the end comes down to purchased_units. This makes me think, this actually imposes a lower bound on flow_cap, meaning it could be interpreted as caring about flow_cap >= available_flow_cap? Or is that because flow_cap is actually the continuous ("variable") cost associated with sizing the unit? But that would only work for units which have binary investment, which these do not need to have? (and here is where I'm getting lost)
(1) and (2) are part of a 3-part constraint (along with available_flow_cap_max_binary_continuous_switch) that allows you to effectively multiply a binary decision variable with a continuous one. It enables "if operating units == 0, available capacity == 0. If operating units > 0, available capacity == flow capacity". I see now that it likely needs another constraint as it only works if purchased_units has a maximum of 1, i.e. it is a binary decision variable. Because, if purchased_units=2, then when operating_units=1, available capacity<=flow_cap_max * 1 (since this will be lower than flow_cap, which is flow_cap_max * 2 in this example.
I've had a think about this some more and think it is fine so long as units_max == 1. Since this constraint allows for flow_cap to be chosen from the range [flow_cap_min,flow_cap_max], there is no reason to set units_max>1.
What happened?
Cleaning up a former discussion (see #643), regarding the points around
available_flow_cap
.My initial comment
Initial reply by @brynpickering (c.f. comment)
Which operating systems have you used?
Version
latest (48148b8)
Relevant log output
No response
The text was updated successfully, but these errors were encountered: