jump-dev / jump-dev.github.io

Source for jump.dev
https://jump-dev.github.io
14 stars 10 forks source link

Add Open Energy Modeling at JuMP-dev 2024 #156

Closed odow closed 1 month ago

odow commented 1 month ago

This is part of a deliverable for #154, so we can wait until that is announced before merging.

I haven't finished yet, but I'll ping @datejada, @trulsf, @jd-lara and @hellemo for initial feedback (if you are interested/have time).

Other talks to include:

Maybe others?

datejada commented 1 month ago

@odow Thanks for the comprehensive summary of our talks from TNO. We learned a lot from the JuMP-dev workshop and were happy to participate and contribute.

odow commented 1 month ago

Thanks! Did I miss (or mis-interpret) anything in your talk? I've sent you a calendar invite for a regular call series I'm starting up as it relates to #154. But it's at a pretty terrible time for you, so once we have something concrete to discuss, we could always schedule something at a more convenient time.

trulsf commented 1 month ago

Very good summaries! Regarding PiecewiseAffineApprox, we took a lot of inspiration from PiecewiseLinearOpt. Our focus was more on finding good convex piecewise approximation to data points (where you not necessarily have access to the function or the gradients). This was not covered by PiecewiseLinearOpt so we made our own package, but I think it would make sense to combine these features into a single package. We have plans to extend our work from only convex approximations to approximation of general function (similar to Kazda & Li, 2024). Then it would make even more sense to connect it with the modelling in PiecewiseLinearOpt (at least for univariate problems).

datejada commented 1 month ago

Thanks for the invitation; let's start with that schedule, and I will try to attend as much as possible. For instance, I'm sorry in advance because I am the first one I cannot participate. It is because I will be out of the office anyway. Regarding the summary, I don't have any comments or suggested changes. Thanks!

hellemo commented 1 month ago

Thanks for the nice summary!

In the context of Energy Modeling at SINTEF it is perhaps worth to mention also EnergyModelsX, which was mentioned in our talks this year, and presented at JuMP-dev 2023 by @JulStraus https://www.youtube.com/watch?v=fARbeM8sANA&t=13s .

When it comes to performance in model building and workarounds, better documentation/advertising limitations is always useful, but I think it would benefit the JuMP ecosystem in large if the performance issues with sparse structures could be addressed at the JuMP-level by exploiting sparsity when building constraints, for example (see e.g. https://github.com/jump-dev/JuMP.jl/issues/3438). The broader point of the SparseVariables package I would say is to demonstrate that this would allow people to write formulations that are closer to the math and hence easier to write, read and maintain - without sacrificing performance. Also keep in mind that many modellers in the energy domain do not have a background in computer science, so applying the current workarounds represents a significant barrier for them, and I believe this is perhaps the motivation for earlier algebraic modelling languages like GAMS to do these kinds of optimizations.

odow commented 1 month ago

I spent most of today re-watching a lot of JuMP-dev talks (on 2x speed!) and I've added a bunch more content. We've had quite a lot of energy-related talks! There are still a bunch that I haven't got to yet.

odow commented 1 month ago

I hope this post is actually pretty useful for future energy modelers. It's really a crash course on "here's everything that people have done previously and the various issues that we've run into."

Watching the talks back-to-back and making connections between them really is more than the sum of the parts.

jd-lara commented 1 month ago

@odow I think you should distinguish between applications that are energy models like Tulipa or GenX and those that are simulations tools like Sienna (PowerSimulations.jl)

odow commented 1 month ago

Okay! This kept getting longer and longer, but I think the first draft is done. Feedback appreciated.

odow commented 1 month ago

Also cc'ing @jd-foster @leonardgoeke @richard-weinhold @iSoron @joaquimg

iSoron commented 1 month ago

@odow Thanks for including UnitCommitment.jl in this review post. A few comments and suggestions:

jd-foster commented 1 month ago

I wonder if the 'big-O' notation is potentially confusing for non-CS types.

odow commented 1 month ago

I wonder if the 'big-O' notation is potentially confusing for non-CS types.

I don't particularly care :smile: This post is mostly intended for our benefit, with a second-order benefit to energy system modelers.

jd-foster commented 1 month ago

All done.

odow commented 1 month ago

See

Feel free to share: