Skip to content

Missing geothermal investment costs lead to solver issues #1482

@Eric-Nitschke

Description

@Eric-Nitschke

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 via conda 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions