oemof.solph 0.5.2.dev1__tar.gz → 0.5.2.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.bumpversion.cfg +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/MANIFEST.in +0 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/PKG-INFO +21 -6
- oemof.solph-0.5.2.dev2/VERSION +1 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/conf.py +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/index.rst +0 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-5-2.rst +11 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/pyproject.toml +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/setup.cfg +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/setup.py +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/__init__.py +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_energy_system.py +7 -3
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_models.py +2 -3
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_options.py +14 -19
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_plumbing.py +2 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/_bus.py +20 -3
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/experimental/_electrical_bus.py +20 -5
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_converter.py +5 -5
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_generic_storage.py +3 -3
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_link.py +10 -7
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/_generic_caes.py +24 -10
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/_piecewise_linear_converter.py +20 -5
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/_sink_dsm.py +3 -3
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/equate_variables.py +5 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/integral_limit.py +5 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/investment_limit.py +5 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/shared_limit.py +5 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_investment_flow_block.py +2 -5
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_non_convex_flow_block.py +47 -27
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/PKG-INFO +21 -6
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/SOURCES.txt +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/entry_points.txt +0 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/constraint_tests.py +7 -5
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest_multi_period.lp +71 -71
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_invest_multi_period.lp +2 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_invest_multi_period_remaining_value.lp +2 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_invest_multi_period.lp +2 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_invest_multi_period_remaining_value.lp +2 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_extended.lp +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_invest_multi_period.lp +2 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_invest_multi_period_remaining_value.lp +2 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/min_max_runtime.lp +6 -44
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/min_max_runtime_multi_period.lp +23 -60
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/multi_period_period_length.lp +313 -313
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1_fixed_losses.lp +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_multi_period.lp +3 -3
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/multi_period_constraint_tests.py +38 -19
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_components.py +11 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_energy_system.py +15 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_models.py +14 -22
- oemof.solph-0.5.2.dev2/tests/test_plumbing.py +39 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_lopf/test_lopf.py +22 -27
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_multi_period_model/test_multi_period_dispatch_model.py +8 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_multi_period_model/test_multi_period_investment_model.py +8 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_options/test_non_convex.py +0 -21
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_piecewiselineartransformer/test_piecewiselineartransformer.py +0 -2
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_dispatch_one.py +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_dispatch_one_explicit_timemode.py +1 -1
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_time_index.py +6 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tox.ini +1 -1
- oemof.solph-0.5.2.dev1/VERSION +0 -1
- oemof.solph-0.5.2.dev1/docs/examples/electrical.lopf.rst +0 -7
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.coveragerc +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.editorconfig +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.pep8speaks.yml +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.prospector.yml +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/.readthedocs.yaml +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/AUTHORS.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/CITATION.cff +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/CODE_OF_CONDUCT.md +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/CONTRIBUTING.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/LICENSE +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/README.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/appveyor-with-compiler.cmd +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/bootstrap.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/requirements.txt +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/templates/.appveyor.yml +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/templates/.travis.yml +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/ci/templates/tox.ini +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/ExtractionTurbine_range_of_operation.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/GenericCHP.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/OffsetConverter_efficiency.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/OffsetConverter_power_relation.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/Plot_delay_2013-01-01.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/diesel_genset_investment_flow.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/diesel_genset_nonconvex_flow.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/diesel_genset_nonconvex_invest_flow.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/example_figures.png +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/example_network.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/example_variable_chp.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/framework_concept.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/nonconvex_invest_investcosts_power.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/nonconvex_invest_specific_costs.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/oemof_solph_example.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/pahesmf_init.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_files/variable_chp_plot.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/README.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_COMPACT_editable_fonts.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_FULL_editable_fonts.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_ICON_editable_fonts.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/editable_fonts/logo_oemof_solph_NOTEXT_editable_fonts.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_COMPACT.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_COMPACT_bg.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_FULL.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_ICON.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/_logo/logo_oemof_solph_NOTEXT.svg +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/authors.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/changelog.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/contributing.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/docutils.conf +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/activity_costs.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/basic_example.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/cellular.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/custom_constraints.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/electrical.transshipment.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/emission_constraint.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/excel_reader.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/flow_count_limit.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/flow_gradient.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/invest_nonconvex.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/min_max_runtimes.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/minimal_investment.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/nametuple.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/offset_converter.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/shared_invest_limit.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/simple_dispatch.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/startup_costs.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/storage_costs.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/storage_investment.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/storage_level_constraint.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/time_index.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/unbalanced_storage.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/examples/variable_chp.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/index.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/readme.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/index.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.busses.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.components.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.console_scripts.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.constraints.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.energy_system.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.flow.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.groupings.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.helpers.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.models.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.options.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.plumbing.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.processing.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/reference/oemof.solph.views.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/requirements.txt +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/spelling_wordlist.txt +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/usage.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-1.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-2.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-3.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-4.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-5.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-6.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-0-7.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-0.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-1.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-2.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-1-4.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-0.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-1.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-2.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-2-3.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-3-0.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-3-1.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-3-2.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-0.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-1.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-2.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-4.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-4-5.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-5-0.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/docs/whatsnew/v0-5-1.rst +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/basic_example/basic_example.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/excel_reader/scenario.xlsx +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/invest_nonconvex_flow_examples/solar_generation.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/offset_converter_example/diesel_genset_data.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/simple_dispatch/input_data.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/storage_investment/storage_investment.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/tuple_as_labels/tuple_as_label.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/examples/variable_chp/variable_chp.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_console_scripts.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_groupings.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/_helpers.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/buses/experimental/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_extraction_turbine_chp.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_generic_chp.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_offset_converter.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_sink.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_source.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/experimental/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/equate_flows.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/flow_count_limit.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/storage_level.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_flow.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_invest_non_convex_flow_block.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_simple_flow_block.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/experimental/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/experimental/_electrical_line.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/helpers.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/processing.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/views.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/dependency_links.txt +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/not-zip-safe +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/requires.txt +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof.solph.egg-info/top_level.txt +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/flow_tests.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/activity_costs.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/activity_costs_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/connect_investment.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/connect_investment_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest_with_existing.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_invest_with_existing_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/converter_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_extended.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_extended_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_invest.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DIW_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_delay_time.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_extended.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_extended_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_invest.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_DLR_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_extended_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_invest.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/dsm_module_oemof_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/emission_budget_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/emission_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/emission_limit_no_error.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/equate_flows.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_costs_sources.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_invest_sink.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_invest_sink_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_variable_sink.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/fixed_source_variable_sink_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_count_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_count_limit_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_multi_period_remaining_value.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_no_minimum.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_with_offset_no_minimum_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_without_offset.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_without_offset_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_invest_without_offset_multi_period_remaining_value.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_nonconvex_invest_bounded_converter.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_reaching_lifetime.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/flow_reaching_lifetime_initial_age.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/generic_invest_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/inactivity_costs.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/inactivity_costs_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/integer_source.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/invest_non_convex_flow.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/invest_source_fixed_sink.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/invest_source_fixed_sink_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit_with_dsm_DIW.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit_with_dsm_DLR.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/investment_limit_with_dsm_oemof.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp_invest.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp_invest_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_chp_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest_multi_period_old.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_invest_multi_period_remaining_value.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/linear_converter_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/link.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/max_source_min_sink.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/max_source_min_sink_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_shutdowns.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_shutdowns_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_startups.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/maximum_startups_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/nominal_value_to_zero.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/nominal_value_to_zero_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/nonequidistant_timeindex.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter_nonconvex.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/offsetconverter_nonconvex_investment.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_emission_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit_with_dsm_DIW.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit_with_dsm_DLR.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/periodical_investment_limit_with_dsm_oemof.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_cc.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_cc_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_dcc.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/piecewise_linear_converter_dcc_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/shared_limit.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/shared_limit_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_gradient.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_gradient_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_nonconvex_gradient.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/source_with_nonconvex_gradient_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_fixed_losses.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_fixed_losses_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_1_multi_period_remaining_value.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_2.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_2_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_3.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_3_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_4.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_4_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_5.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_5_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_6.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_6_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_all_nonconvex.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_all_nonconvex_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_minimum.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_minimum_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_unbalanced.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_with_offset.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_with_offset_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_with_offset_multi_period_remaining_value.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_without_offset.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_without_offset_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_invest_without_offset_multi_period_remaining_value.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_level_constraint.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_unbalanced.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/storage_unbalanced_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/summed_min_source.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/summed_min_source_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/variable_chp.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/lp_files/variable_chp_multi_period.lp +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/regression_tests.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_console_scripts.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_constraints_module.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_grouping.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_helpers.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_non_equidistant_time_index.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_oemof_installation_test.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_options.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_outputlib/__init__.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_outputlib/input_data.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_outputlib/test_views.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_processing.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_connect_invest/connect_invest.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_connect_invest/test_connect_invest.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_flexible_modelling/test_add_constraints.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_caes/generic_caes.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_caes/test_generic_caes.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_chp/ccet.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_generic_chp/test_generic_chp.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_invest_fix_flow/input_data.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_invest_fix_flow/test_simple_invest_fixed.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/input_data.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_dispatch.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_simple_model/test_simple_invest.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/storage_investment.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/test_invest_storage_regression.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/test_storage_investment.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_storage_investment/test_storage_with_tuple_label.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_variable_chp/test_variable_chp.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_scripts/test_solph/test_variable_chp/variable_chp.csv +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_solph_network_classes.py +0 -0
- {oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/tests/test_warnings.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: oemof.solph
|
|
3
|
-
Version: 0.5.2.
|
|
3
|
+
Version: 0.5.2.dev2
|
|
4
4
|
Summary: A model generator for energy system modelling and optimisation.
|
|
5
5
|
Home-page: https://oemof.org
|
|
6
6
|
Author: oemof developer group
|
|
@@ -9,7 +9,6 @@ License: MIT
|
|
|
9
9
|
Project-URL: Documentation, https://oemof-solph.readthedocs.io/
|
|
10
10
|
Project-URL: Changelog, https://oemof-solph.readthedocs.io/en/latest/changelog.html
|
|
11
11
|
Project-URL: Issue Tracker, https://github.com/oemof/oemof-solph/issues
|
|
12
|
-
Platform: UNKNOWN
|
|
13
12
|
Classifier: Development Status :: 5 - Production/Stable
|
|
14
13
|
Classifier: Intended Audience :: Developers
|
|
15
14
|
Classifier: Intended Audience :: Science/Research
|
|
@@ -28,11 +27,29 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
|
28
27
|
Classifier: Topic :: Utilities
|
|
29
28
|
Requires-Python: >=3.8
|
|
30
29
|
Description-Content-Type: text/x-rst
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
License-File: AUTHORS.rst
|
|
32
|
+
Requires-Dist: blinker
|
|
33
|
+
Requires-Dist: dill
|
|
34
|
+
Requires-Dist: numpy
|
|
35
|
+
Requires-Dist: pandas>=1.5.3
|
|
36
|
+
Requires-Dist: pyomo<7.0,>=6.6.0
|
|
37
|
+
Requires-Dist: networkx
|
|
38
|
+
Requires-Dist: oemof.tools>=0.4.2
|
|
39
|
+
Requires-Dist: oemof.network>=0.5.0a1
|
|
31
40
|
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: matplotlib; extra == "dev"
|
|
42
|
+
Requires-Dist: nbformat; extra == "dev"
|
|
43
|
+
Requires-Dist: pytest; extra == "dev"
|
|
44
|
+
Requires-Dist: sphinx; extra == "dev"
|
|
45
|
+
Requires-Dist: sphinx_rtd_theme; extra == "dev"
|
|
46
|
+
Requires-Dist: sphinx-copybutton; extra == "dev"
|
|
47
|
+
Requires-Dist: sphinx-design; extra == "dev"
|
|
48
|
+
Requires-Dist: termcolor; extra == "dev"
|
|
32
49
|
Provides-Extra: examples
|
|
50
|
+
Requires-Dist: matplotlib; extra == "examples"
|
|
33
51
|
Provides-Extra: dummy
|
|
34
|
-
|
|
35
|
-
License-File: AUTHORS.rst
|
|
52
|
+
Requires-Dist: oemof; extra == "dummy"
|
|
36
53
|
|
|
37
54
|
|
|
38
55
|
|tox-pytest| |tox-checks| |appveyor| |coveralls| |codecov|
|
|
@@ -327,5 +344,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
327
344
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
328
345
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
329
346
|
SOFTWARE.
|
|
330
|
-
|
|
331
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.5.2.dev2"
|
|
@@ -5,12 +5,14 @@ API changes
|
|
|
5
5
|
###########
|
|
6
6
|
|
|
7
7
|
* New bool attribute `use_remaining_value` of `oemof.solph.EnergySystem`
|
|
8
|
+
* Use list for period definition in multi-period investment optimization.
|
|
8
9
|
|
|
9
10
|
New features
|
|
10
11
|
############
|
|
11
12
|
|
|
12
13
|
* Allow for evaluating differences in the remaining vs. the original value
|
|
13
14
|
for multi-period investments.
|
|
15
|
+
* Allow to define minimum up- and down-time per time step
|
|
14
16
|
|
|
15
17
|
Documentation
|
|
16
18
|
#############
|
|
@@ -22,6 +24,9 @@ Bug fixes
|
|
|
22
24
|
Limit to costs that occur within the optimization horizon to prevent a
|
|
23
25
|
bias towards investments happening earlier in the optimization horizon.
|
|
24
26
|
* Fix bugs in multi-period documentation.
|
|
27
|
+
* Fix y intersect of OffsetConverter
|
|
28
|
+
* Fix minimum uptime being relevant for initial downtime (and vice versa).
|
|
29
|
+
* Fix duplicated discounting of fixed costs for multi-period investment
|
|
25
30
|
|
|
26
31
|
Testing
|
|
27
32
|
#######
|
|
@@ -31,6 +36,12 @@ Other changes
|
|
|
31
36
|
|
|
32
37
|
* Improved compatibility with upcoming oemof.network
|
|
33
38
|
|
|
39
|
+
Known issues
|
|
40
|
+
############
|
|
41
|
+
|
|
42
|
+
* Documentation, example and API of OffsetConverter are inconsistent
|
|
43
|
+
and might not work as expected.
|
|
44
|
+
|
|
34
45
|
Contributors
|
|
35
46
|
############
|
|
36
47
|
|
|
@@ -76,14 +76,16 @@ class EnergySystem(es.EnergySystem):
|
|
|
76
76
|
infer_last_interval=None,
|
|
77
77
|
periods=None,
|
|
78
78
|
use_remaining_value=False,
|
|
79
|
-
|
|
79
|
+
groupings=None,
|
|
80
80
|
):
|
|
81
81
|
# Doing imports at runtime is generally frowned upon, but should work
|
|
82
82
|
# for now. See the TODO in :func:`constraint_grouping
|
|
83
83
|
# <oemof.solph.groupings.constraint_grouping>` for more information.
|
|
84
84
|
from oemof.solph import GROUPINGS
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
if groupings is None:
|
|
87
|
+
groupings = []
|
|
88
|
+
groupings = GROUPINGS + groupings
|
|
87
89
|
|
|
88
90
|
if not (
|
|
89
91
|
isinstance(timeindex, pd.DatetimeIndex)
|
|
@@ -161,7 +163,9 @@ class EnergySystem(es.EnergySystem):
|
|
|
161
163
|
raise TypeError(msg)
|
|
162
164
|
|
|
163
165
|
super().__init__(
|
|
164
|
-
|
|
166
|
+
groupings=groupings,
|
|
167
|
+
timeindex=timeindex,
|
|
168
|
+
timeincrement=timeincrement,
|
|
165
169
|
)
|
|
166
170
|
|
|
167
171
|
self.periods = periods
|
|
@@ -402,12 +402,11 @@ class Model(BaseModel):
|
|
|
402
402
|
"""Add all basic sets to the model, i.e. NODES, TIMESTEPS and FLOWS.
|
|
403
403
|
Also create sets PERIODS and TIMEINDEX used for multi-period models.
|
|
404
404
|
"""
|
|
405
|
-
self.nodes = self.es.nodes
|
|
405
|
+
self.nodes = list(self.es.nodes)
|
|
406
406
|
if self.is_cellular:
|
|
407
407
|
# collect all nodes from the child cells
|
|
408
408
|
for cell in self.ec:
|
|
409
|
-
|
|
410
|
-
self.nodes.append(node)
|
|
409
|
+
self.nodes.extend(cell.nodes)
|
|
411
410
|
# create set with all nodes
|
|
412
411
|
self.NODES = po.Set(initialize=[n for n in self.nodes])
|
|
413
412
|
|
|
@@ -13,7 +13,6 @@ SPDX-FileCopyrightText: Johannes Kochems
|
|
|
13
13
|
SPDX-License-Identifier: MIT
|
|
14
14
|
|
|
15
15
|
"""
|
|
16
|
-
|
|
17
16
|
from oemof.solph._plumbing import sequence
|
|
18
17
|
|
|
19
18
|
|
|
@@ -184,11 +183,11 @@ class NonConvex:
|
|
|
184
183
|
from the actual output.
|
|
185
184
|
inactivity_costs : numeric (iterable or scalar)
|
|
186
185
|
Costs associated with not operating the flow.
|
|
187
|
-
minimum_uptime : numeric (1 or positive integer)
|
|
186
|
+
minimum_uptime : numeric or list of numeric (1 or positive integer)
|
|
188
187
|
Minimum number of time steps that a flow must be greater then its
|
|
189
188
|
minimum flow after startup. Be aware that minimum up and downtimes
|
|
190
189
|
can contradict each other and may lead to infeasible problems.
|
|
191
|
-
minimum_downtime : numeric (1 or positive integer)
|
|
190
|
+
minimum_downtime : numeric or list of numeric (1 or positive integer)
|
|
192
191
|
Minimum number of time steps a flow is forced to zero after
|
|
193
192
|
shutting down. Be aware that minimum up and downtimes can
|
|
194
193
|
contradict each other and may to infeasible problems.
|
|
@@ -199,12 +198,12 @@ class NonConvex:
|
|
|
199
198
|
initial_status : numeric (0 or 1)
|
|
200
199
|
Integer value indicating the status of the flow in the first time step
|
|
201
200
|
(0 = off, 1 = on). For minimum up and downtimes, the initial status
|
|
202
|
-
is set for the respective values in the
|
|
203
|
-
minimum uptime of four timesteps is defined
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
the
|
|
207
|
-
|
|
201
|
+
is set for the respective values in the beginning e.g. if a
|
|
202
|
+
minimum uptime of four timesteps is defined and the initial status is
|
|
203
|
+
set to one, the initial status is fixed for the four first timesteps
|
|
204
|
+
of the optimization period. Otherwise if the initial status is set to
|
|
205
|
+
zero and the first timesteps are fixed for the number of minimum
|
|
206
|
+
downtime steps.
|
|
208
207
|
negative_gradient_limit : numeric (iterable, scalar or None)
|
|
209
208
|
the normed *upper bound* on the positive difference
|
|
210
209
|
(`flow[t-1] < flow[t]`) of two consecutive flow values.
|
|
@@ -232,8 +231,8 @@ class NonConvex:
|
|
|
232
231
|
custom_attributes = {}
|
|
233
232
|
|
|
234
233
|
self.initial_status = initial_status
|
|
235
|
-
self.minimum_uptime = minimum_uptime
|
|
236
|
-
self.minimum_downtime = minimum_downtime
|
|
234
|
+
self.minimum_uptime = sequence(minimum_uptime)
|
|
235
|
+
self.minimum_downtime = sequence(minimum_downtime)
|
|
237
236
|
self.maximum_startups = maximum_startups
|
|
238
237
|
self.maximum_shutdowns = maximum_shutdowns
|
|
239
238
|
|
|
@@ -247,11 +246,7 @@ class NonConvex:
|
|
|
247
246
|
for attribute, value in custom_attributes.items():
|
|
248
247
|
setattr(self, attribute, value)
|
|
249
248
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
The maximum of both is used to set the initial status for this
|
|
255
|
-
number of time steps within the edge regions.
|
|
256
|
-
"""
|
|
257
|
-
return max(self.minimum_uptime, self.minimum_downtime)
|
|
249
|
+
if initial_status == 0:
|
|
250
|
+
self.first_flexible_timestep = self.minimum_downtime[0]
|
|
251
|
+
else:
|
|
252
|
+
self.first_flexible_timestep = self.minimum_uptime[0]
|
|
@@ -61,7 +61,7 @@ class _Sequence(UserList):
|
|
|
61
61
|
--------
|
|
62
62
|
>>> s = _Sequence(default=42)
|
|
63
63
|
>>> len(s)
|
|
64
|
-
|
|
64
|
+
1
|
|
65
65
|
>>> s[1]
|
|
66
66
|
42
|
|
67
67
|
>>> s[2]
|
|
@@ -79,7 +79,7 @@ class _Sequence(UserList):
|
|
|
79
79
|
def __init__(self, *args, **kwargs):
|
|
80
80
|
self.default = kwargs["default"]
|
|
81
81
|
self.default_changed = False
|
|
82
|
-
self.highest_index =
|
|
82
|
+
self.highest_index = 0
|
|
83
83
|
super().__init__(*args)
|
|
84
84
|
|
|
85
85
|
def __getitem__(self, key):
|
|
@@ -40,9 +40,26 @@ class Bus(Node):
|
|
|
40
40
|
|
|
41
41
|
"""
|
|
42
42
|
|
|
43
|
-
def __init__(
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
def __init__(
|
|
44
|
+
self,
|
|
45
|
+
label=None,
|
|
46
|
+
*,
|
|
47
|
+
inputs=None,
|
|
48
|
+
outputs=None,
|
|
49
|
+
balanced=True,
|
|
50
|
+
custom_properties=None,
|
|
51
|
+
):
|
|
52
|
+
if inputs is None:
|
|
53
|
+
inputs = {}
|
|
54
|
+
if outputs is None:
|
|
55
|
+
outputs = {}
|
|
56
|
+
super().__init__(
|
|
57
|
+
label,
|
|
58
|
+
inputs=inputs,
|
|
59
|
+
outputs=outputs,
|
|
60
|
+
custom_properties=custom_properties,
|
|
61
|
+
)
|
|
62
|
+
self.balanced = balanced
|
|
46
63
|
|
|
47
64
|
def constraint_group(self):
|
|
48
65
|
if self.balanced:
|
|
@@ -47,8 +47,23 @@ class ElectricalBus(Bus):
|
|
|
47
47
|
|
|
48
48
|
"""
|
|
49
49
|
|
|
50
|
-
def __init__(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
def __init__(
|
|
51
|
+
self,
|
|
52
|
+
label=None,
|
|
53
|
+
*,
|
|
54
|
+
v_max,
|
|
55
|
+
v_min,
|
|
56
|
+
inputs=None,
|
|
57
|
+
outputs=None,
|
|
58
|
+
custom_properties=None,
|
|
59
|
+
slack=False,
|
|
60
|
+
):
|
|
61
|
+
super().__init__(
|
|
62
|
+
label,
|
|
63
|
+
inputs=inputs,
|
|
64
|
+
outputs=outputs,
|
|
65
|
+
custom_properties=custom_properties,
|
|
66
|
+
)
|
|
67
|
+
self.slack = slack
|
|
68
|
+
self.v_max = v_max
|
|
69
|
+
self.v_min = v_min
|
|
@@ -101,13 +101,9 @@ class Converter(Node):
|
|
|
101
101
|
conversion_factors=None,
|
|
102
102
|
custom_attributes=None,
|
|
103
103
|
):
|
|
104
|
-
self.label = label
|
|
105
|
-
|
|
106
104
|
if inputs is None:
|
|
107
|
-
warn_if_missing_attribute(self, "inputs")
|
|
108
105
|
inputs = {}
|
|
109
106
|
if outputs is None:
|
|
110
|
-
warn_if_missing_attribute(self, "outputs")
|
|
111
107
|
outputs = {}
|
|
112
108
|
|
|
113
109
|
if custom_attributes is None:
|
|
@@ -117,8 +113,12 @@ class Converter(Node):
|
|
|
117
113
|
label=label,
|
|
118
114
|
inputs=inputs,
|
|
119
115
|
outputs=outputs,
|
|
120
|
-
|
|
116
|
+
custom_properties=custom_attributes,
|
|
121
117
|
)
|
|
118
|
+
if not inputs:
|
|
119
|
+
warn_if_missing_attribute(self, "inputs")
|
|
120
|
+
if not outputs:
|
|
121
|
+
warn_if_missing_attribute(self, "outputs")
|
|
122
122
|
|
|
123
123
|
if conversion_factors is None:
|
|
124
124
|
conversion_factors = {}
|
{oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/components/_generic_storage.py
RENAMED
|
@@ -193,10 +193,10 @@ class GenericStorage(Node):
|
|
|
193
193
|
if custom_attributes is None:
|
|
194
194
|
custom_attributes = {}
|
|
195
195
|
super().__init__(
|
|
196
|
-
label
|
|
196
|
+
label,
|
|
197
197
|
inputs=inputs,
|
|
198
198
|
outputs=outputs,
|
|
199
|
-
|
|
199
|
+
custom_properties=custom_attributes,
|
|
200
200
|
)
|
|
201
201
|
# --- BEGIN: The following code can be removed for versions >= v0.6 ---
|
|
202
202
|
if investment is not None:
|
|
@@ -1869,7 +1869,7 @@ class GenericInvestmentStorageBlock(ScalarBlock):
|
|
|
1869
1869
|
m.es.periods_years[p],
|
|
1870
1870
|
range_limit,
|
|
1871
1871
|
)
|
|
1872
|
-
)
|
|
1872
|
+
)
|
|
1873
1873
|
|
|
1874
1874
|
for n in self.EXISTING_INVESTSTORAGES:
|
|
1875
1875
|
if n.investment.fixed_costs[0] is not None:
|
|
@@ -86,23 +86,26 @@ class Link(Node):
|
|
|
86
86
|
conversion_factors=None,
|
|
87
87
|
custom_attributes=None,
|
|
88
88
|
):
|
|
89
|
+
# compatibility with omeof.network w/o explicit named arguments
|
|
89
90
|
if inputs is None:
|
|
90
|
-
warn_if_missing_attribute(self, "inputs")
|
|
91
91
|
inputs = {}
|
|
92
92
|
if outputs is None:
|
|
93
|
-
warn_if_missing_attribute(self, "outputs")
|
|
94
93
|
outputs = {}
|
|
95
|
-
if conversion_factors is None:
|
|
96
|
-
warn_if_missing_attribute(self, "conversion_factors")
|
|
97
|
-
conversion_factors = {}
|
|
98
94
|
if custom_attributes is None:
|
|
99
95
|
custom_attributes = {}
|
|
100
96
|
super().__init__(
|
|
101
|
-
label
|
|
97
|
+
label,
|
|
102
98
|
inputs=inputs,
|
|
103
99
|
outputs=outputs,
|
|
104
|
-
|
|
100
|
+
custom_properties=custom_attributes,
|
|
105
101
|
)
|
|
102
|
+
if not inputs:
|
|
103
|
+
warn_if_missing_attribute(self, "inputs")
|
|
104
|
+
if not outputs:
|
|
105
|
+
warn_if_missing_attribute(self, "outputs")
|
|
106
|
+
if conversion_factors is None:
|
|
107
|
+
warn_if_missing_attribute(self, "conversion_factors")
|
|
108
|
+
conversion_factors = {}
|
|
106
109
|
self.conversion_factors = {
|
|
107
110
|
k: sequence(v) for k, v in conversion_factors.items()
|
|
108
111
|
}
|
|
@@ -97,18 +97,32 @@ class GenericCAES(Node):
|
|
|
97
97
|
<class 'oemof.solph.components.experimental._generic_caes.GenericCAES'>
|
|
98
98
|
"""
|
|
99
99
|
|
|
100
|
-
def __init__(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
def __init__(
|
|
101
|
+
self,
|
|
102
|
+
label,
|
|
103
|
+
*,
|
|
104
|
+
electrical_input,
|
|
105
|
+
fuel_input,
|
|
106
|
+
electrical_output,
|
|
107
|
+
params,
|
|
108
|
+
custom_properties=None,
|
|
109
|
+
):
|
|
110
|
+
super().__init__(
|
|
111
|
+
label=label,
|
|
112
|
+
inputs={},
|
|
113
|
+
outputs={},
|
|
114
|
+
custom_properties=custom_properties,
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
self.electrical_input = electrical_input
|
|
118
|
+
self.fuel_input = fuel_input
|
|
119
|
+
self.electrical_output = electrical_output
|
|
120
|
+
self.params = params
|
|
107
121
|
|
|
108
122
|
# map specific flows to standard API
|
|
109
|
-
self.inputs.update(
|
|
110
|
-
self.inputs.update(
|
|
111
|
-
self.outputs.update(
|
|
123
|
+
self.inputs.update(electrical_input)
|
|
124
|
+
self.inputs.update(fuel_input)
|
|
125
|
+
self.outputs.update(electrical_output)
|
|
112
126
|
|
|
113
127
|
def constraint_group(self):
|
|
114
128
|
return GenericCAESBlock
|
|
@@ -66,12 +66,27 @@ class PiecewiseLinearConverter(Node):
|
|
|
66
66
|
PiecewiseLinearConverter'>
|
|
67
67
|
"""
|
|
68
68
|
|
|
69
|
-
def __init__(
|
|
70
|
-
|
|
69
|
+
def __init__(
|
|
70
|
+
self,
|
|
71
|
+
label,
|
|
72
|
+
*,
|
|
73
|
+
inputs,
|
|
74
|
+
outputs,
|
|
75
|
+
conversion_function,
|
|
76
|
+
in_breakpoints,
|
|
77
|
+
pw_repn,
|
|
78
|
+
custom_properties=None,
|
|
79
|
+
):
|
|
80
|
+
super().__init__(
|
|
81
|
+
label,
|
|
82
|
+
inputs=inputs,
|
|
83
|
+
outputs=outputs,
|
|
84
|
+
custom_properties=custom_properties,
|
|
85
|
+
)
|
|
71
86
|
|
|
72
|
-
self.in_breakpoints = list(
|
|
73
|
-
self.conversion_function =
|
|
74
|
-
self.pw_repn =
|
|
87
|
+
self.in_breakpoints = list(in_breakpoints)
|
|
88
|
+
self.conversion_function = conversion_function
|
|
89
|
+
self.pw_repn = pw_repn
|
|
75
90
|
|
|
76
91
|
if len(self.inputs) > 1 or len(self.outputs) > 1:
|
|
77
92
|
raise ValueError(
|
|
@@ -1447,7 +1447,7 @@ class SinkDSMOemofInvestmentBlock(ScalarBlock):
|
|
|
1447
1447
|
m.es.periods_years[p],
|
|
1448
1448
|
range_limit,
|
|
1449
1449
|
)
|
|
1450
|
-
)
|
|
1450
|
+
)
|
|
1451
1451
|
|
|
1452
1452
|
for g in self.EXISTING_INVESTDSM:
|
|
1453
1453
|
if g.investment.fixed_costs[0] is not None:
|
|
@@ -3301,7 +3301,7 @@ class SinkDSMDIWInvestmentBlock(ScalarBlock):
|
|
|
3301
3301
|
m.es.periods_years[p],
|
|
3302
3302
|
range_limit,
|
|
3303
3303
|
)
|
|
3304
|
-
)
|
|
3304
|
+
)
|
|
3305
3305
|
|
|
3306
3306
|
for g in self.EXISTING_INVESTDSM:
|
|
3307
3307
|
if g.investment.fixed_costs[0] is not None:
|
|
@@ -5800,7 +5800,7 @@ class SinkDSMDLRInvestmentBlock(ScalarBlock):
|
|
|
5800
5800
|
m.es.periods_years[p],
|
|
5801
5801
|
range_limit,
|
|
5802
5802
|
)
|
|
5803
|
-
)
|
|
5803
|
+
)
|
|
5804
5804
|
|
|
5805
5805
|
for g in self.EXISTING_INVESTDSM:
|
|
5806
5806
|
if g.investment.fixed_costs[0] is not None:
|
{oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/equate_variables.py
RENAMED
|
@@ -62,8 +62,11 @@ def equate_variables(model, var1, var2, factor1=1, name=None):
|
|
|
62
62
|
|
|
63
63
|
>>> import pandas as pd
|
|
64
64
|
>>> from oemof import solph
|
|
65
|
-
>>> date_time_index = pd.date_range('1/1/2012', periods=
|
|
66
|
-
>>> energysystem = solph.EnergySystem(
|
|
65
|
+
>>> date_time_index = pd.date_range('1/1/2012', periods=6, freq='H')
|
|
66
|
+
>>> energysystem = solph.EnergySystem(
|
|
67
|
+
... timeindex=date_time_index,
|
|
68
|
+
... infer_last_interval=False,
|
|
69
|
+
... )
|
|
67
70
|
>>> bel1 = solph.buses.Bus(label='electricity1')
|
|
68
71
|
>>> bel2 = solph.buses.Bus(label='electricity2')
|
|
69
72
|
>>> energysystem.add(bel1, bel2)
|
{oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/integral_limit.py
RENAMED
|
@@ -102,8 +102,11 @@ def generic_integral_limit(om, keyword, flows=None, limit=None):
|
|
|
102
102
|
--------
|
|
103
103
|
>>> import pandas as pd
|
|
104
104
|
>>> from oemof import solph
|
|
105
|
-
>>> date_time_index = pd.date_range('1/1/2012', periods=
|
|
106
|
-
>>> energysystem = solph.EnergySystem(
|
|
105
|
+
>>> date_time_index = pd.date_range('1/1/2012', periods=6, freq='H')
|
|
106
|
+
>>> energysystem = solph.EnergySystem(
|
|
107
|
+
... timeindex=date_time_index,
|
|
108
|
+
... infer_last_interval=False,
|
|
109
|
+
... )
|
|
107
110
|
>>> bel = solph.buses.Bus(label='electricityBus')
|
|
108
111
|
>>> flow1 = solph.flows.Flow(
|
|
109
112
|
... nominal_value=100,
|
{oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/investment_limit.py
RENAMED
|
@@ -171,8 +171,11 @@ def additional_investment_flow_limit(model, keyword, limit=None):
|
|
|
171
171
|
--------
|
|
172
172
|
>>> import pandas as pd
|
|
173
173
|
>>> from oemof import solph
|
|
174
|
-
>>> date_time_index = pd.date_range('1/1/2020', periods=
|
|
175
|
-
>>> es = solph.EnergySystem(
|
|
174
|
+
>>> date_time_index = pd.date_range('1/1/2020', periods=6, freq='H')
|
|
175
|
+
>>> es = solph.EnergySystem(
|
|
176
|
+
... timeindex=date_time_index,
|
|
177
|
+
... infer_last_interval=False,
|
|
178
|
+
... )
|
|
176
179
|
>>> bus = solph.buses.Bus(label='bus_1')
|
|
177
180
|
>>> sink = solph.components.Sink(label="sink", inputs={bus:
|
|
178
181
|
... solph.flows.Flow(nominal_value=10, fix=[10, 20, 30, 40, 50])})
|
{oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/constraints/shared_limit.py
RENAMED
|
@@ -60,8 +60,11 @@ def shared_limit(
|
|
|
60
60
|
|
|
61
61
|
>>> import pandas as pd
|
|
62
62
|
>>> from oemof import solph
|
|
63
|
-
>>> date_time_index = pd.date_range('1/1/2012', periods=
|
|
64
|
-
>>> energysystem = solph.EnergySystem(
|
|
63
|
+
>>> date_time_index = pd.date_range('1/1/2012', periods=6, freq='H')
|
|
64
|
+
>>> energysystem = solph.EnergySystem(
|
|
65
|
+
... timeindex=date_time_index,
|
|
66
|
+
... infer_last_interval=False,
|
|
67
|
+
... )
|
|
65
68
|
>>> b1 = solph.buses.Bus(label="Party1Bus")
|
|
66
69
|
>>> b2 = solph.buses.Bus(label="Party2Bus")
|
|
67
70
|
>>> storage1 = solph.components.GenericStorage(
|
{oemof.solph-0.5.2.dev1 → oemof.solph-0.5.2.dev2}/src/oemof/solph/flows/_investment_flow_block.py
RENAMED
|
@@ -1022,11 +1022,8 @@ class InvestmentFlowBlock(ScalarBlock):
|
|
|
1022
1022
|
self.invest[i, o, p]
|
|
1023
1023
|
* m.flows[i, o].investment.fixed_costs[pp]
|
|
1024
1024
|
* (1 + m.discount_rate) ** (-pp)
|
|
1025
|
-
for pp in range(
|
|
1026
|
-
|
|
1027
|
-
range_limit,
|
|
1028
|
-
)
|
|
1029
|
-
) * (1 + m.discount_rate) ** (-m.es.periods_years[p])
|
|
1025
|
+
for pp in range(m.es.periods_years[p], range_limit)
|
|
1026
|
+
)
|
|
1030
1027
|
|
|
1031
1028
|
for i, o in self.EXISTING_INVESTFLOWS:
|
|
1032
1029
|
if m.flows[i, o].investment.fixed_costs[0] is not None:
|