RC1 of solph 0.5.1

We have a release candidate for v0.5.1 (Package at PyPI, Tag at GitHub). There are some additions, but we also prepare for significant API changes that will come obligatory with v0.6. When upgrading from v0.5.0 to v0.5.1, there should be no changes required for you code. (This is not true if you use features that are explicitly marked “experimental”. Those may change without notice.)

Noticeable changes include:

  • The component Transformer is now named Converter.
  • You can now combine Investment and OffsetConverter.
  • Having energy stored in a GenericStorage can now have a cost.
  • You can now give an Investment object as the nominal_value. We considered this more intuitive than working with two mutually exclusive different keyword arguments.
  • Tons of improvements in the (still experimental) MultiPeriod optimisation.

Again, there are transitional wrappers, so nothing should break when updating from v0.5.0, using the new API should be voluntary (you get a warning) for now. It would be nice if you test if your solph v0.5 code still works with this RC. We are aiming for a final release of v0.5.1 by the end of August.

News subscriptions

For many years, we have had a newsletter (via email). However, in recent time there were issues with that. For example, newsletters were delayed or not delivered. Sorry for that. (Note: Technical tests using a small number of recipients often worked, but with an increasing number of subscribers to address we had issues e.g. with spam protection measures. (Some sources go so far to call email “broken”, e.g. CERN and wired. But if you can help out, you are warmly welcome.)

Of course, there are alternative protocols developed exactly for announcements. Some have always existed at our site, but have not been promoted. For example, we of course have RSS and ATOM feeds. Also, we are working on modern a alternative, namely support for ActivityPub. Luckily, it is easily activated in WordPress. To work around the issue that you can only subscribe authors, there is now a virtual author “News Bot”. That one will be co-author to posts that should be announced in the Fediverse.

oemof.solph v0.5 released

We are happy to announce oemof.solph v0.5.0 (codename “Rigorous refactoring”) . This release brings an extreme shift towards more user focused design:

  • Clean definition of time indexes: You need N+1 points in time do define N time spans.
  • Parts of the energy system graph are now clearly structured into buses, components, and flows. This adds some extra words to imports but makes the underlying logic more transparent.
  • Public and private API are be more distinguished now. (‘_’ signifies private, public API is defined in init files.)
  • Experimental code is now sitting in sub-modules called experimental (replaces “custom”).
  • The flow arguments summed_minand summed_max now have the more descriptive names full_load_time_min and full_load_time_max.
  • Keyword arguments are now explicit. This will make it easier to find the correct arguments and will also catch typos. Custom attributes can be added using the argument custom_attributes. Those will be passed down the class hierarchy and can (possibly) be handled in parent classes.
  • Add inactivity_costs as an option for Flows. Inactivity costs is a cost for times where a Flow is not operated.
  • Examples are added to the documentation. (The format of the examples could be improved, though.)

Besides these changes, there is one big thing that has happened “under the hood”. It is now possible to combine NonConvex and Investment optimisation in the same Flow.

Continue reading “oemof.solph v0.5 released”

oemof.tabular 0.0.3: New release on PyPI

We are happy to announce that we have released a new version of oemof.tabular. Oemof.tabular allows to create energy systems from tabular datapackages, which makes it easy to build models without writing a lot of code.

The focus of the release has been the adaption of tabular to oemof.solph 0.4.5. The following changes have been made:

  • Adjusted to new oemof.solph structure.
  • Allowed definition of costum foreign keys. Keys and related descriptors are now read from config files (.json) and can be adopted by setting environment variables using custom config files.
  • Added constraint tests for most facades.
  • Reduced number of imported packages.
  • Cleaned up the badges in README.
  • Moved CI services to GitHub actions.

The following issues have been fixed:

  • Fixed Link by not setting constraints that limit direction.
  • Fixed storage investment with existing capacities
  • Introduced a conditional to fix error when running datapackages with expandable links.
  • Fixed typo in the attribute variable_costs in facades.py.
  • Introduced marginal costs for both output flows instead of only one to avoid elimination of energy.

A detailed summary can be found here.

oemof spring meeting 2023

we are pleased to announce the upcoming oemof user meeting, May 24th to 26th 2023 in Stuttgart. The meeting is open to all who use or develop the software, as well as interested new users. Thanks to the DLR site in Stuttgart for hosting us.

Being a community project, the meetings traditionally include the possibility to ask questions to fellow users and open discussion. We are happy to exchange ideas with developers and users rather than just promoting results. So let’s get together, share knowledge and inspire each other. Learn more about planned developments, find people to collaborate with on your projects and get your questions answered. We continuously gather information in the Meeting-2023.05 Wiki page (GitHub). Note that meals are self-paid as there is no conference fee.

To register, just write an email to meetings@oemof.org. Please tell your name, (if applicable) your institution, your GitHub user name, and if you want to present something. Unfortunately, we also need to know your nationality, so that you are allowed to enter the DLR campus.

What to expect?

Continue reading “oemof spring meeting 2023”

Things to come

Hack, eat, sleep, repeat: Our 2022-11 dev meeting was one big hackathon event where we joint forces to solve problems with the code. It was so intense, we even forgot to taka a photo. (We were some 15 very enthusiastic hackers.) There are a couple important decisions to be communicated:

  • The next release of solph (v0.5) is in feature freeze. We will just update the documentation and finalise making arguments explicit and release afterwards.
  • Multi-period optimisation and renaming Transformer to Converter will follow with v0.5.1 with a merge to mainline solph right after v0.5.0. The changed name will have a wrapper so it is not API breaking.
  • Stephan Günther, Caroline Möller, and Patrik Schönfeldt form the new board of the oemof association.
Letter to the register of associations

Also, today was an important day for the oemof association. After everything was agreed on by the general assembly on November 10th, 2022, the protocol as well as the statute were notarised and sent to the register of associations. By chance we also received the final documents needed to apply for our non-profit status. So, now we have to wait until things are processed until the association gets it final legal status.

oemof developer meeting November 2022

We finally opened registration for the omof developer meeting 2022. As suggested last year’s dev meeting, it will take place at Magdeburg University from the 09th to the 11th of November. One focus will definitely be on the next release of solph, but the agenda is kept flexible to meet the demands of the participants and will continuously developed at https://github.com/oemof/oemof/wiki/Meeting-2022.11.

Developer meetings are no closed shop but a great opportunity for a first contact for those who are considering to collaborate. In fact, it’s rather common that people join a developer before actively contributing. With this regard, the upcoming meeting is a particular good opportunity as there are a couple of freshly developed features also new to long-term developers.

To register, please send an email to meetings@oemof.org or post a comment at https://github.com/oemof/oemof/issues/100.

oemof general assembly 2022/11

Hereby we invite you to the general assembly (GA) of the oemof association. It will be held at the University of Magdeburg at 13:30 on the 10th of November 2022, as a part of this year’s developer meeting (9th to 11th of November). As we elect our representatives for one year, elections are the crucial point of this GA. To get used to the standard procedure, the agenda includes all typical points even if i.e. the financial report  will be really short. If you have further points to discuss, please send an email to meetings@oemof.org or post them at https://github.com/oemof/oemof/issues/105.

Proposed agenda

  1. Welcome
    1. Agreement on the agenda
    2. Acceptance of the minutes of the last GA
      (non-accessible, scan of a German printout for legal reasons)
  2. Annual report
  3. Financial report
  4. Approval of the actions of the board
  5. Election of the board
  6. Election of the auditors
  7. Infrastructure (e.g. website)
  8. Miscellaneous

Thank you for joining the oemof spring meeting 2022

We want to thank all participants of this year’s oemof spring meeting. It’s always a joy to have a few days reserved for concentrated discussions around the things you create and investigate using oemof. Some of you already provided their slides, these are now available in the collection of oemof publications.

Presentation held at the first afternoon of the meeting which took place in the meeting hall of the meeting hall of the Danish minority living in Flensburg.

This year’s spring meeting wasn’t only the biggest in-person meeting but also probably the most international one. It was located almost in sight of the Danish/German border. Some of the almost 40 participants arrived from Italy and Spain just for the meeting. Not to speak about contributions from people who stay in Germany for longer. This confirmed us in our decision to also keep the organisation of the oemof association in English. (Side node: It was in the middle of the association’s general assembly that we realised that the about ten persons joining that particular session were able to understand German.)

Special thanks also go to Simon and Uwe for the organisation, and to the Department Energy and Environmental Management for hosting the meeting at the Europa Universität Flensburg.