-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Divisible assets are currently stored as a (potentially) large number of individual Assets with capacities equal to the unit size of the process. When it comes to dispatch, this means that we might end up with a huge number of activity variables for all of these individual units which could be very slow to solve. It's also not necessary - since all these units are identical (pending #1041), there's no need to to solve each one because we know their activities will all be identical*
Furthermore, users don't care about this. They just want to know flows over the group as a whole.
So I'd suggest that, for divisible assets, we should have activity variables representing the group as a whole (rather than each individual unit), and only report flows in the output data for the group, rather than each individual unit. If we really need flows for each unit (e.g. to avoid reformatting the output data), then we can just divide the overall flows by the number of assets after we get the dispatch solution.
From initial tests this is a relatively minor performance bottleneck compared to the investment algorithm, but I think we should still do it.
*Not that the solver would necessarily share activity equally among all the units, even though they are identical, since there might be a large landscape of equally optimal solutions, of which the equal-shared scenario is one of them, and presumably the one we'd favour.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status