4d6ae97 | Tom Brown | 15 July 2020, 12:40:08 UTC | PyPSA Version 0.17.1 Hyperlinked release notes can be found here: https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-17-1-15th-july-2020 | 15 July 2020, 12:40:08 UTC |
d2c2843 | Fabian Neumann | 09 July 2020, 19:58:02 UTC | networkclustering: add s_max_pu to aggregation (#192) * networkclustering: add s_max_pu to aggregation * add release notes | 09 July 2020, 19:58:02 UTC |
b3b9800 | Fabian Neumann | 09 July 2020, 19:27:07 UTC | add compatibility with pyomo 5.7.0 (#190) * add compatibility with pyomo 5.7.0 * add release notes * remove workaround for pandas < 0.18.0 * drop support for pyomo<5.7 * move _build_sum_expression out of try-catch | 09 July 2020, 19:27:07 UTC |
8f7c015 | Fabian Neumann | 09 July 2020, 19:26:33 UTC | setup: add python 3 requirement (#194) | 09 July 2020, 19:26:33 UTC |
008e7f6 | Fabian Neumann | 09 July 2020, 19:26:12 UTC | networkclustering: handle optional dependencies (#193) * networkclustering: handle optional dependencies * add release notes | 09 July 2020, 19:26:12 UTC |
a7c98a3 | Fabian Neumann | 07 July 2020, 12:13:00 UTC | contingency: handle removed ptdf_tolerance argument for pyomo=False | 07 July 2020, 12:13:00 UTC |
da1a045 | Martha Maria | 07 July 2020, 11:08:51 UTC | fix assignment of dual variables in lv_limit for final lopf (#188) * fix assignment of dual variables in lv_limit for final lopf * add release notes * push changes to fix lv_limit duals into save_capacities and only if track_iterations=true * remove changes for last iteration Co-authored-by: martha.frysztacki <eb5194@iai-esm003.iai.kit.edu> Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 07 July 2020, 11:08:51 UTC |
3da1081 | FabianHofmann | 07 July 2020, 09:56:36 UTC | Enable retrieving shadow prices for all dispatch variables (#191) * linopf: - define variables for fix components - remove unused arguments in lopf function linopt: - better handling of references for static variables * add release note * Update doc/release_notes.rst Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> * linopt: reinsert skip_pre argument, add line break Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 07 July 2020, 09:56:36 UTC |
649d157 | Fabian Neumann | 06 July 2020, 17:08:01 UTC | search for gurobipy not gurobi (#189) | 06 July 2020, 17:08:01 UTC |
b7fc4b5 | Fabian Neumann | 06 July 2020, 17:07:27 UTC | SCLOPF for pyomo=False and ease of import (#178) * contingency: add nomopyomo variant of sclopf and move up add_contingency_constraints(n,s) as well as add_contingency_constraints_lowmem(n,s) for import by other modules * test: add nomopyomo to sclopf tests * contingency: update list of authors * contingency: fix accessing subsets of dataframes - was using reindex before in order to ignore missing values which could have occured in a previous implementation - this is now much more straightforward * contingency: default to consider all branch outages directly in * contingency: fix syntax error * Update pypsa/contingency.py Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de> * Update pypsa/contingency.py Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de> * contingency: apply style remarks of code review * contingency: glpk requires at least one variable on lhs * doc: add release notes Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de> | 06 July 2020, 17:07:27 UTC |
fa63e72 | Pietro Belotti | 17 June 2020, 12:17:32 UTC | Support for the FICO Xpress solver (#184) * wrote Xpress file-interface, added xpress to list of supported solvers * fix typos * Modifications to Xpress interface * Added Xpress solver and URL to list in documentation * Added release note * spelling * Update doc/release_notes.rst Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de> * Suggestion to catch specific exception (for getDual) * correct module name Co-authored-by: Pietro Belotti <pietrobelotti@fico.com> Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de> | 17 June 2020, 12:17:32 UTC |
8ac706d | Fabian Neumann | 04 June 2020, 08:57:00 UTC | Catch error from missing basis with CPLEX (#183) * linopt: catch missing basis error (closes #182) * doc: add release notes | 04 June 2020, 08:57:00 UTC |
d48f78d | Fabian Neumann | 28 May 2020, 17:47:01 UTC | doc: update solver installation instructions [skip travis] | 28 May 2020, 17:47:01 UTC |
0ec4f5e | Greta Yu | 27 May 2020, 08:01:43 UTC | Handle cbc asterisk (#181) * replace ** before read_csv * update release note Co-authored-by: Greta Yu <gretayu@Gretas-MacBook-Pro.local> | 27 May 2020, 08:01:43 UTC |
f21b81d | Tom Brown | 13 May 2020, 11:21:52 UTC | Merge pull request #179 from nworbmot/master linopf.py: Fix bug: multi-link outputs set when not multi-link | 13 May 2020, 11:21:52 UTC |
3af8f7e | Tom Brown | 13 May 2020, 11:21:31 UTC | linopf: Fix long line Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de> | 13 May 2020, 11:21:31 UTC |
2ac1bc0 | Tom Brown | 13 May 2020, 10:34:38 UTC | doc: Document bug fix to multi-link outputs for LOPF pyomo=False | 13 May 2020, 10:34:38 UTC |
f484adc | Tom Brown | 13 May 2020, 10:20:13 UTC | linopf.py: Fix bug: multi-link outputs set when not multi-link There can be mixed situations where some links have multiple outputs to bus2, bus3, etc, but we still have some links with single outputs to bus1 and no other outputs bus2 = "" and bus3 = "". However, the LOPF with pyomo=False was setting non-zero outputs for p2 and p3 also for the links with single outputs. Now, if bus2 and bus3 etc are empty, the p2 and p3 is set to the default, just like pyomo=True. | 13 May 2020, 10:20:13 UTC |
7ece53e | FabianHofmann | 30 March 2020, 12:26:34 UTC | Fix paths in example notebooks (#172) * example notebooks: fix paths * update binder bagde | 30 March 2020, 12:26:34 UTC |
5b84b5d | Fabian Neumann | 23 March 2020, 17:08:52 UTC | linopf: assign p0/p1 only for attr s (#170) * linopf: assign p0/p1 only for attr s * linopf: expand fix to links | 23 March 2020, 17:08:52 UTC |
fdcc817 | Tom Brown | 23 March 2020, 13:14:07 UTC | PyPSA Version 0.17.0 Hyperlinked release notes can be found here: https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-17-0-23rd-march-2020 | 23 March 2020, 13:14:07 UTC |
3e17630 | Tom Brown | 23 March 2020, 12:51:23 UTC | LOPF: Warn that shunt impedances are ignored. | 23 March 2020, 12:51:23 UTC |
0d3fe3a | FabianHofmann | 23 March 2020, 11:18:59 UTC | raise error if flow argument not passed correctly (#169) | 23 March 2020, 11:18:59 UTC |
887de30 | Tom Brown | 23 March 2020, 09:40:22 UTC | Merge pull request #166 from PyPSA/plot_branches Plot branches with new arguments | 23 March 2020, 09:40:22 UTC |
e89e064 | Fabian Neumann | 20 March 2020, 10:46:45 UTC | linopt: cplex to allow layered parameter (#168) * e.g. solver_options={barrier.convergetol: 1e-4} | 20 March 2020, 10:46:45 UTC |
939fdac | Fabian Neumann | 20 March 2020, 08:51:30 UTC | doc: bump up level of pf api [skip travis] | 20 March 2020, 08:51:30 UTC |
8506c3b | Fabian Neumann | 20 March 2020, 08:49:44 UTC | doc: append linopf module api [skip travis] | 20 March 2020, 08:49:44 UTC |
ae2968f | Fabian Neumann | 19 March 2020, 18:02:27 UTC | doc: extend api reference (#167) | 19 March 2020, 18:02:27 UTC |
dc652ca | FabianHofmann | 19 March 2020, 18:00:00 UTC | Apply suggestions from code review Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> | 19 March 2020, 18:00:00 UTC |
1625f69 | FabianHofmann | 19 March 2020, 17:59:00 UTC | Update pypsa/plot.py Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> | 19 March 2020, 17:59:00 UTC |
5f6b32e | Fabian | 17 March 2020, 23:07:52 UTC | add release notes | 17 March 2020, 23:07:52 UTC |
b1484d3 | Fabian | 17 March 2020, 23:03:10 UTC | Merge branch 'plot_branches' of github.com:PyPSA/PyPSA into plot_branches | 17 March 2020, 23:03:10 UTC |
5af70dd | Fabian | 17 March 2020, 23:02:38 UTC | iplot: mirror changes and arguments | 17 March 2020, 23:02:38 UTC |
795859d | FabianHofmann | 17 March 2020, 20:53:44 UTC | Update doc/release_notes.rst Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> | 17 March 2020, 20:53:44 UTC |
282767d | Fabian | 17 March 2020, 15:36:14 UTC | add release notes | 17 March 2020, 15:36:14 UTC |
05621c7 | Fabian | 17 March 2020, 14:42:35 UTC | further adjustment | 17 March 2020, 14:42:35 UTC |
a0c6a95 | Fabian | 17 March 2020, 14:26:37 UTC | rearrange directed_flow function, separate plotting of branch_components properly | 17 March 2020, 14:26:37 UTC |
c7d9635 | FabianHofmann | 17 March 2020, 13:35:14 UTC | add cplex support (#164) * add cplex support * update release notes * Update doc/release_notes.rst Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> * Apply suggestions from code review Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> * consistency, clean up * raise error if solver interface package is missing Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 17 March 2020, 13:35:14 UTC |
374a484 | Fabian | 17 March 2020, 12:48:24 UTC | steady state, from now on try separate line, link, transf. | 17 March 2020, 12:48:24 UTC |
06eac7f | Fabian | 16 March 2020, 22:52:44 UTC | add docstring; fix cmap | 16 March 2020, 22:52:44 UTC |
c561d57 | Fabian | 16 March 2020, 21:43:00 UTC | plot: add new arguments | 16 March 2020, 21:43:00 UTC |
2229348 | FabianHofmann | 16 March 2020, 14:34:46 UTC | Track objective constant in n.objective_constant (#165) * add n.objective_constant * add release notes * remove unneeded dir | 16 March 2020, 14:34:46 UTC |
570a9d1 | Fabian Neumann | 16 March 2020, 14:31:01 UTC | Small code cleanup (#162) * remove unused imports * remove unused variables * remove unidiomatic type checks * remove reimports * fix misc code style issues * remove __future__ imports * example: fix import for interactive plot Co-authored-by: Fabian <fab.hof@gmx.de> | 16 March 2020, 14:31:01 UTC |
d5b3bf0 | Fabian Neumann | 16 March 2020, 14:16:27 UTC | remove dconf [skip travis] | 16 March 2020, 14:16:27 UTC |
b92c578 | Fabian | 16 March 2020, 13:34:59 UTC | small rearrangement of notebooks | 16 March 2020, 13:34:59 UTC |
1df3a60 | Fabian Neumann | 16 March 2020, 09:25:20 UTC | opf: request status only if commitable (closes #159) (#161) | 16 March 2020, 09:25:20 UTC |
b7c7c35 | Fabian Neumann | 15 March 2020, 10:34:42 UTC | doc: add warning regarding upcoming release notes [skip travis] | 15 March 2020, 10:34:42 UTC |
f21a172 | Fabian Neumann | 14 March 2020, 11:03:15 UTC | components: check for np.inf values in max/min_pu (closes #152) (#154) | 14 March 2020, 11:03:15 UTC |
f28e005 | Tom Brown | 03 March 2020, 17:57:55 UTC | README, doc, website: Remove outdated "future functionality" | 03 March 2020, 17:57:55 UTC |
3eafc43 | Fabian Neumann | 03 March 2020, 15:33:46 UTC | doc: extend release notes II [skip travis] | 03 March 2020, 15:33:46 UTC |
9213048 | Fabian Neumann | 03 March 2020, 15:31:13 UTC | doc: extend release notes | 03 March 2020, 15:31:13 UTC |
1ebdca6 | Fabian | 03 March 2020, 14:03:42 UTC | plot: fix multiindex for new pandas version | 03 March 2020, 14:03:42 UTC |
b96c442 | Fabian | 28 February 2020, 17:20:59 UTC | README add badge for binder | 28 February 2020, 17:20:59 UTC |
e63c468 | Mariia Bilousova | 28 February 2020, 16:05:14 UTC | Mybinder (#150) * add jupyter notebooks to examples add binder folder * added jupyter notebooks | 28 February 2020, 16:05:14 UTC |
8d527e2 | Fabian Neumann | 27 February 2020, 17:16:26 UTC | linopf: fix kirchhoff constraint with radial network (#149) * linopf: fix kirchhoff constraint with radial network * doc: add release notes | 27 February 2020, 17:16:26 UTC |
252b49d | FabianHofmann | 20 February 2020, 13:01:48 UTC | solves #147 (#148) | 20 February 2020, 13:01:48 UTC |
9621e04 | Fabian Neumann | 18 February 2020, 15:06:48 UTC | components: fix for #145 reg. copying snapshot weightings without time | 18 February 2020, 15:06:48 UTC |
06056e1 | Fabian Neumann | 17 February 2020, 08:54:23 UTC | Network deepcopy with timeslice (#145) * components: deepcopy with subset of snapshots * doc: add release notes * components: catch nan error | 17 February 2020, 08:54:23 UTC |
a077e40 | FabianHofmann | 14 February 2020, 12:04:05 UTC | Parse shadow price of non-extenable passive branch capacities (#142) * solves #119 linopt: add return value to define_variables, etc * Update doc/release_notes.rst Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 14 February 2020, 12:04:05 UTC |
a29b035 | Martha Maria | 14 February 2020, 10:22:51 UTC | Add alpha channel for buses (#141) * Add alpha channel to buses (bus_alpha) * add description for bus_alpha * Update pypsa/plot.py Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 14 February 2020, 10:22:51 UTC |
c49698f | Fabian Neumann | 13 February 2020, 16:13:43 UTC | plot: consistency between MultiIndex and Index bus sizes (closes #132) (#140) * plot: consistency between MultiIndex and Index bus sizes (closes #132) * doc: add release notes | 13 February 2020, 16:13:43 UTC |
f1c8ec6 | FabianHofmann | 13 February 2020, 13:21:36 UTC | Remove basemap support (#139) * solves #130 plot: rename 'network' -> 'n' * add docstring | 13 February 2020, 13:21:36 UTC |
61159e1 | Fabian Neumann | 13 February 2020, 10:57:06 UTC | io: fix incomplete transition to pandapower 2.x (#138) * io: fix incomplete transition to pandapower 2.x * doc: add release notes | 13 February 2020, 10:57:06 UTC |
cab1b9c | Fabian | 11 February 2020, 13:47:04 UTC | small follow-up of #135 | 11 February 2020, 13:47:04 UTC |
011033f | Fabian | 11 February 2020, 13:29:08 UTC | linopf: small fix for snapshots != n.snapshots small fix for empty n.links | 11 February 2020, 13:29:08 UTC |
cba8ba7 | Fabian | 09 February 2020, 23:06:40 UTC | ilopf: set warmstart in last iteration to false | 09 February 2020, 23:06:40 UTC |
841116b | FabianHofmann | 07 February 2020, 15:58:43 UTC | Make Import tolerant of non-predefined series (#135) * solves #120 * add small release note * Update doc/release_notes.rst Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 07 February 2020, 15:58:43 UTC |
a3c0991 | FabianHofmann | 07 February 2020, 15:57:57 UTC | Trace optimized capacities in ilopf (#136) * solves #129 * Apply suggestions from code review Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 07 February 2020, 15:57:57 UTC |
6179a74 | FabianHofmann | 04 February 2020, 10:44:36 UTC | - fix groupby for pandas v1.0.0 (#134) - minor: fix deprecation for logger | 04 February 2020, 10:44:36 UTC |
aa187f8 | Tom Brown | 03 February 2020, 21:47:05 UTC | Merge pull request #133 from PyPSA/fix_emissions_nomopyomo linopf: Fix bug whereby snapshot_weightings name is missing | 03 February 2020, 21:47:05 UTC |
7e1dbbb | Tom Brown | 03 February 2020, 20:14:46 UTC | linopf: Fix bug whereby snapshot_weightings name is missing The old code relied on snapshot_weightings.name being "weightings". However, this is only the case when it has been exported to a netcdf file (when it's given this name) and reimported. Networks created without exporting and importing break at this point with emissions constraints. Minimum breaking model is provided in the pull request. | 03 February 2020, 20:14:46 UTC |
346de27 | FabianHofmann | 29 January 2020, 20:35:19 UTC | Carrier colors (#131) * solves #103 * update release notes | 29 January 2020, 20:35:19 UTC |
22f7ac6 | FabianHofmann | 26 January 2020, 15:25:50 UTC | fix committable generator constraint if min_up_time exceeds len(snapshots) (#128) * fixes #124 * rearrange, add warning | 26 January 2020, 15:25:50 UTC |
257495e | Fabian | 21 January 2020, 17:03:49 UTC | tiny fix for glpk solver with large objective value | 21 January 2020, 17:03:49 UTC |
1c64188 | FabianHofmann | 20 January 2020, 16:34:02 UTC | Merge pull request #126 from PyPSA/nomopyomo_objective Enable to alter the objective function | 20 January 2020, 16:34:02 UTC |
75b5bcb | FabianHofmann | 20 January 2020, 16:25:23 UTC | Apply suggestions from code review Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> | 20 January 2020, 16:25:23 UTC |
49addc3 | FabianHofmann | 20 January 2020, 16:22:11 UTC | Delete settings.json | 20 January 2020, 16:22:11 UTC |
e407946 | Fabian | 20 January 2020, 14:03:42 UTC | add doc string | 20 January 2020, 14:03:42 UTC |
5b24e0a | Fabian | 20 January 2020, 13:44:02 UTC | closes #121 | 20 January 2020, 13:44:02 UTC |
7a918e8 | FabianHofmann | 20 January 2020, 13:19:22 UTC | Merge pull request #125 from PyPSA/style rename length into size | 20 January 2020, 13:19:22 UTC |
7bc5028 | Fabian | 18 January 2020, 18:27:56 UTC | rename length into size | 18 January 2020, 18:27:56 UTC |
43029d5 | Tom Brown | 10 January 2020, 15:46:59 UTC | PyPSA Version 0.16.1 Hyperlinked release notes can be found here: https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-16-1-10th-january-2020 This release contains a few minor bux fixes from the introduction of nomopyomo in the previous release, as well as a few minor features. * When using the nomopyomo formulation of the LOPF with network.lopf(pyomo=False), PyPSA was not correcting the bus marginal prices by dividing by the network.snapshot_weightings, as is done in the pyomo formulation. This correction is now applied in the nomopyomo formulation to be consistent with the pyomo formulation. (The reason this correction is applied is so that the prices have a clear currency/MWh definition regardless of the snapshot weighting. It also makes them stay roughly the same when snapshots are aggregated: e.g. if hourly simulations are sampled every n-hours, and the snapshot weighting is n.) * The status, termination_condition that the network.lopf returns is now consistent between the nomopyomo and pyomo formulations. The possible return values are documented in the LOPF docstring, see also the documentation. Furthermore in the nomopyomo formulation, the solution is still returned when gurobi finds a suboptimal solution, since this solution is usually close to optimal. In this case the LOPF returns a status of warning and a termination_condition of suboptimal. * For plotting with network.plot() you can override the bus coordinates by passing it a layouter function from networkx. See the docstring for more information. This is particularly useful for networks with no defined coordinates. * For plotting with network.iplot() a background from mapbox can now be integrated. Please note that we are still aware of one implementation difference between nomopyomo and pyomo, namely that nomopyomo doesn’t read out shadow prices for non-extendable branches, see the github issue. | 10 January 2020, 15:46:59 UTC |
905c33d | Tom Brown | 10 January 2020, 15:04:47 UTC | Merge pull request #116 from PyPSA/nomopyomo_mp_sw linopf: Correct marginal prices by snapshot weightings | 10 January 2020, 15:04:47 UTC |
2c42aa2 | Tom Brown | 10 January 2020, 15:03:16 UTC | Merge pull request #115 from PyPSA/nomopyomo_status Harmonise nomopyomo, pyomo LOPF status and termination_condition | 10 January 2020, 15:03:16 UTC |
879a479 | Tom Brown | 10 January 2020, 15:01:50 UTC | components: Document lopf status and termination_condition return | 10 January 2020, 15:01:50 UTC |
bcfa1a5 | Tom Brown | 10 January 2020, 14:43:09 UTC | linopf: Also read out shadow prices for Transformer, Link This makes it compatible with the Pyomo formulation. | 10 January 2020, 14:43:09 UTC |
f29e3be | Fabian | 07 January 2020, 11:56:15 UTC | plot.py: fix networkx import | 07 January 2020, 11:56:15 UTC |
fdd845f | FabianHofmann | 07 January 2020, 09:20:26 UTC | enable using open mapbox styles (#118) * enable using open mapbox styles * Apply suggestions from code review Co-Authored-By: Fabian Neumann <fabian.neumann@outlook.de> * fix indentation Co-authored-by: Fabian Neumann <fabian.neumann@outlook.de> | 07 January 2020, 09:20:26 UTC |
dbdea2a | Tom Brown | 02 January 2020, 18:34:25 UTC | linopf: Correct marginal prices by snapshot weightings This is then consistent with the marginal prices in the Pyomo LOPF. It also means the prices have a clear EUR/MWh definition, and makes them stay roughly the same when snapshots are aggregated. | 02 January 2020, 18:34:25 UTC |
b76798d | Fabian Neumann | 02 January 2020, 14:37:01 UTC | plot: add autogenerated coordinates (#113) * plot: add autogenerated coordinates * Update pypsa/plot.py Co-Authored-By: FabianHofmann <hofmann@fias.uni-frankfurt.de> * Update pypsa/plot.py * Update pypsa/plot.py Co-authored-by: FabianHofmann <hofmann@fias.uni-frankfurt.de> | 02 January 2020, 14:37:01 UTC |
fcc4ad1 | Fabian Neumann | 02 January 2020, 13:48:52 UTC | plot: add mapbox option (#90) | 02 January 2020, 13:48:52 UTC |
f38c516 | Tom Brown | 31 December 2019, 13:18:51 UTC | linopt: For MILP unit commitment GPLK should return "optimal" Not "integer optimal". This is consistent with pyomo output. | 31 December 2019, 13:18:51 UTC |
9ebd7a0 | Tom Brown | 31 December 2019, 12:09:19 UTC | Harmonise nomopyomo, pyomo LOPF status and termination_condition Make nomopyomo LOPF status and termination_condition consistent with pyomo LOPF. Status, termination_condition is either: ok, optimal or: warning, infeasible For gurobi there are two additional options: If gurobi is using the barrier method and has a sub-optimal solution, nomopyomo will still read the solution and return: warning, suboptimal If gurobi is using the barrier method, sometimes it cannot distinguish between an infeasible and an unbounded problem, so returns: warning, infeasible or unbounded | 31 December 2019, 12:09:19 UTC |
54d16de | Fabian Neumann | 23 December 2019, 14:15:18 UTC | .github: add issue/PR templates [skip travis] | 23 December 2019, 14:15:18 UTC |
0e4fb5f | Tom Brown | 20 December 2019, 13:29:42 UTC | PyPSA Version 0.16.0 Hyperlinked release notes can be found here: https://pypsa.readthedocs.io/en/latest/release_notes.html#pypsa-0-16-0-20th-december-2019 This release contains major new features. It is also the first release to drop support for Python 2.7. Only Python 3.6 and 3.7 are supported going forward. Python 3.8 will be supported as soon as the gurobipy package in conda is updated. * A new version of the linear optimal power flow (LOPF) has been introduced that uses a custom optimization framework rather than Pyomo. The new framework, based on nomoypomo, uses barely any memory and is much faster than Pyomo. As a result the total memory usage of PyPSA processing and gurobi is less than a third what it is with Pyomo for large problems with millions of variables that take several gigabytes of memory (see this graphical comparison for a large network optimization). The new framework is not enabled by default. To enable it, use network.lopf(pyomo=False). Almost all features of the regular network.lopf are implemented with the exception of minimum down/up time and start up/shut down costs for unit commitment. If you use the extra_functionality argument for network.lopf you will need to update your code for the new syntax. There is documentation for the new syntax as well as a Jupyter notebook of examples. * Distributed active power slack is now implemented for the full non-linear power flow. If you pass network.pf() the argument distribute_slack=True, it will distribute the slack power across generators proportional to generator dispatch by default, or according to the distribution scheme provided in the argument slack_weights. If distribute_slack=False only the slack generator takes up the slack. There is further documentation. * Unit testing is now performed on all of GNU/Linux, Windows and MacOS. * NB: You may need to update your version of the package six. Special thanks for this release to Fabian Hofmann for implementing the nomopyomo framework in PyPSA and Fabian Neumann for providing the customizable distributed slack. | 20 December 2019, 13:29:42 UTC |
672da91 | Tom Brown | 20 December 2019, 12:33:39 UTC | Merge pull request #108 from PyPSA/dist-slack-custom-weights pf: distributed slack with custom weights and weights by capacity | 20 December 2019, 12:33:39 UTC |
a1bac77 | Fabian Neumann | 20 December 2019, 10:15:18 UTC | travis: omit python 3.8 due to missing gurobi version for conda (#112) | 20 December 2019, 10:15:18 UTC |
fbf6491 | Fabian Neumann | 20 December 2019, 09:36:48 UTC | pf: fix with get_switchable_as_dense | 20 December 2019, 09:36:48 UTC |
fba867d | Tom Brown | 19 December 2019, 17:41:43 UTC | doc: Drop support for Python 2.7, include 3.8 | 19 December 2019, 17:41:43 UTC |
5b84f74 | Tom Brown | 19 December 2019, 17:15:49 UTC | Merge pull request #99 from PyPSA/nomopyomo Introduce nomopyomo | 19 December 2019, 17:15:49 UTC |