Skip to content

Conversation

@p-snft
Copy link
Member

@p-snft p-snft commented Apr 2, 2025

  • Rename PERIODS to CAPACITY_PERIODS (The former can be easily confused with aggregation periods.)
  • Remove lifetime/age tracking.
  • Remove difference between fixed costs and periodical costs
  • Remove discounting and interest rate
  • Replace keyword EnergySystem.periods (list[DateRange]) by keyword investment_times (list[Timestamp]).
  • Write mapper from time step to period.
  • Write test for investment with costs depending on period

@p-snft p-snft marked this pull request as draft April 2, 2025 12:20
p-snft added 2 commits April 2, 2025 14:33
Having aggregation periods now, we should be more precise here.
I decided against INVESTMENT_PERIOD, which was used talking about
this kind of periods before, as the period can also be relevant for
parametrised capacities (without investemnt), e.g.
`Flow(nominal_calacity=[5, 8])` for a model with two CAPACITY_PERIODS.
@p-snft p-snft force-pushed the revision/steamline_investment_periods branch from bca6cfe to 9e9a9bb Compare April 2, 2025 12:36
@p-snft p-snft self-assigned this May 20, 2025
p-snft and others added 11 commits May 20, 2025 21:27
Naming points in time instead of all time steps should be more flexible.
Result processing is not adjusted, yet.
processing.Results is currently broken.
* m.es.investment_times is now always set
* use Results object for tests
The test "test_without_last_time_point" was actually a test of processing
functionality. The test "test_numeric_index" cannot be placed in the same
template anymore as overwrriting the index is no longer supported.
Comment on lines +131 to +133
timeindex = pd.Index(
np.append(np.array([0]), np.cumsum(timeincrement))
)

Check warning

Code scanning / CodeQL

Unreachable code Warning

This statement is unreachable.
@FBumann
Copy link

FBumann commented Aug 8, 2025

Hi, im from the flixopt framework.
We are currently trying to model investment decisions and their temporal coupling.
I would love to discuss the options we are evaluating at the moment, as well as your experience and thoughts on this topic.
If you are interested, please reach out.
Kind regards

@p-snft
Copy link
Member Author

p-snft commented Aug 14, 2025

Hi, @FBumann, thanks for reaching out. This is indeed interesting, but as you see also by the time this refactoring takes, we won't have time to prepare a list of options with their pros and cons.

If you like, you can drop in at our next developer meeting in Berlin (https://oemof.org/2025/07/10/2025-09-user-developer-meeting-in-berlin-save-the-date/), which shouldn't be too far from your location for a day trip.

Otherwise, you can either share your ideas so that we comment on them or browse the notes of our past developer meetings. We have (sparsely) documented our discussions.

@FBumann
Copy link

FBumann commented Aug 28, 2025

Hi @p-snft,
Thanks for your quick answer (and sorry my late response).
Unfortunately I will be on vacation during your developer conference.
I hope that I'll find the time to contribute our current thoughts on this topic.
I'll try to craft a condensed summary of what we are trying to achieve, and the reasons behind it.
I'll post it here as soon as I find the time.

Kind regards
Felix Bumann

# Conflicts:
#	src/oemof/solph/components/experimental/_sink_dsm.py
#	tests/test_scripts/test_solph/test_multi_period_model/test_multi_period_dispatch_model.py
@gnn gnn changed the title Steamline investment periods Streamline investment periods Sep 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants