-
Notifications
You must be signed in to change notification settings - Fork 253
Description
Checklist
- I am using the current
main
branch or the latest release. Please indicate. - I am running on an up-to-date
pypsa-earth
environment. Update viaconda env update -f envs/environment.yaml
.
Summary
Geothemal generators can be extended without costs when using enable: retrieve_cost_data: true
and extendable_carriers: Generator: [geothermal]
. This leads to solver issues, as there is now an infinite number of solutions that are equality good.
Describe the Bug
When using enable: retrieve_cost_data: true
, PyPSA-Earth downloads costs_[year].csv
from the PyPSA technology database. If enable: retrieve_cost_data: false
is used instead, PyPSA-Earth uses data/costs.csv
. While data/costs.csv
contains a value for the investment costs of geothermal generators, costs_[year].csv
from the database does not. As a result, it will then default to the fill-values provided in the config under costs: fill_values: investment: 0
. This is problematic since:
- geothermal generators now don't cost anything, leading to wrong results
- if geothermal generators are included in
extendable_carriers: Generator: [...]
, they will most likely be build a lot as extending them doesn't cost anything - if their
p_nom_max
is sufficiently high, extending them past a certain point does not impact the system costs anymore. As a result, there is an infinite amount of solutions, which are equaly good. This can lead to the solver continuously trying to perform DPushes (which could look something like the error message), resulting in the solver shutting down.
This could be solved by either providing an investment cost for geothermal in the technology database or by using a non-zero fill value for the investment instead. The second option however may have unexpected consequences elsewhere in the code.
Error Message
2816 DPushes remaining with DInf 0.0000000+00