Skip to content

Commit

Permalink
Release 8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
rdzman committed May 17, 2024
1 parent 1c0a83a commit e619141
Show file tree
Hide file tree
Showing 19 changed files with 819 additions and 373 deletions.
9 changes: 6 additions & 3 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ For change history for [MP-Opt-Model][27], see [mp-opt-model/CHANGES.md](mp-opt-
For change history for [MOST][3], see [most/CHANGES.md](most/CHANGES.md).


since 8.0b1
-----------
Version 8.0 - *May 17, 2024
---------------------------

#### 5/17/24
- Release 8.0.

#### 5/3/24
- Fix issue in `mp_table_subclass` that caused intermittent
Expand Down Expand Up @@ -3415,7 +3418,7 @@ First Public Release – *Jun 25, 1997*
[31]: https://doi.org/10.5281/zenodo.4110676
[32]: https://hub.docker.com/r/matpower/matpower
[33]: https://hub.docker.com/r/gnuoctave/octave
[34]: https://matpower.org/documentation/dev-manual/
[34]: https://matpower.org/doc/dev-manual/
[35]: https://github.com/MATPOWER/mx-simulink_matpower
[36]: https://github.com/MATPOWER/matpower/issues/210
[37]: https://github.com/MATPOWER/matpower/issues/223
14 changes: 7 additions & 7 deletions CITATION
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ corresponding case files.

For the sake of reproducibility of research results, it is best to cite
the specific version of the software used with the version-specfic DOI.
For example, for version 7.1 of MATPOWER, use:
For example, for version 8.0 of MATPOWER, use:

R. D. Zimmerman, C. E. Murillo-Sanchez (2020). MATPOWER (Version 7.1)
R. D. Zimmerman, C. E. Murillo-Sanchez (2024). MATPOWER (Version 8.0)
[Software]. Available: https://matpower.org
doi: 10.5281/zenodo.4074135
doi: 10.5281/zenodo.11212330

To cite the MATPOWER software generally, without reference to a specific
version, use the following citation and DOI, with <YEAR> replaced by the
Expand All @@ -62,13 +62,13 @@ found via the general DOI at https://doi.org/10.5281/zenodo.3236535.
The MATPOWER, MIPS and MOST User's Manuals should also be cited
explicitly in work that refers to or is derived from their content. As
with the software, the citation and DOI can be version-specific or
general, as appropriate. For version 7.1 of the MATPOWER User's Manual,
general, as appropriate. For version 8.0 of the MATPOWER User's Manual,
use:

R. D. Zimmerman, C. E. Murillo-Sanchez. MATPOWER User's Manual,
Version 7.1. 2020. [Online].
Available: https://matpower.org/docs/MATPOWER-manual-7.1.pdf
doi: 10.5281/zenodo.4074122
Version 8.0. 2024. [Online].
Available: https://matpower.org/docs/MATPOWER-manual-8.0.pdf
doi: 10.5281/zenodo.11212313

For a version non-specific citation, use the following citation and DOI,
with <YEAR> replaced by the year of the most recent release:
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The following is the official license notice:

--------------------------------------------------------------------------

Copyright (c) 1996-2022, Power Systems Engineering Research Center (PSERC)
Copyright (c) 1996-2024, Power Systems Engineering Research Center (PSERC)
and individual contributors (see AUTHORS file for details).
All rights reserved.

Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -342,11 +342,11 @@ corresponding case files.

For the sake of reproducibility of research results, it is best to cite
the specific version of the software used, with the version-specfic DOI.
For example, for version 7.1 of MATPOWER, use:
For example, for version 8.0 of MATPOWER, use:

> R. D. Zimmerman, C. E. Murillo-Sanchez (2020). *MATPOWER (Version 7.1)*
> R. D. Zimmerman, C. E. Murillo-Sanchez (2024). *MATPOWER (Version 8.0)*
[Software]. Available: https://matpower.org
doi: [10.5281/zenodo.4074135](https://doi.org/10.5281/zenodo.4074135)
doi: [10.5281/zenodo.11212330](https://doi.org/10.5281/zenodo.11212330)

To cite the MATPOWER software generally, without reference to a specific
version, use the following citation and DOI, with *\<YEAR\>* replaced by the
Expand All @@ -364,13 +364,13 @@ found via the general DOI at https://doi.org/10.5281/zenodo.3236535.
The MATPOWER, MIPS and MOST User's Manuals should also be cited
explicitly in work that refers to or is derived from their content. As
with the software, the citation and DOI can be version-specific or
general, as appropriate. For version 7.1 of the [MATPOWER User's Manual][8],
general, as appropriate. For version 8.0 of the [MATPOWER User's Manual][8],
use:

> R. D. Zimmerman, C. E. Murillo-Sanchez. *MATPOWER User's Manual,
Version 7.1.* 2020.
[Online]. Available: https://matpower.org/docs/MATPOWER-manual-7.1.pdf
doi: [10.5281/zenodo.4074122](https://doi.org/10.5281/zenodo.4074122)
Version 8.0.* 2024.
[Online]. Available: https://matpower.org/docs/MATPOWER-manual-8.0.pdf
doi: [10.5281/zenodo.11212313](https://doi.org/10.5281/zenodo.11212313)

For a version non-specific citation, use the following citation and DOI,
with *\<YEAR\>* replaced by the year of the most recent release:
Expand Down
2 changes: 1 addition & 1 deletion docker/MATPOWER-Docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Versions
Several images are available with different combinations of
[MATPOWER][1] and [GNU Octave][8] versions, with the following tags and
naming conventions. Here _current release_ means the most recent
numbered release (currently 7.1 for [MATPOWER][1], and 9.1.0 for
numbered release (currently 8.0 for [MATPOWER][1], and 9.1.0 for
[Octave][8]) and _latest_ `master` refers to the most recent build from
the `master` branch of the [MATPOWER][5] and [MATPOWER Extras][6]
GitHub repositories.
Expand Down
4 changes: 3 additions & 1 deletion docker/build_matpower_images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,14 @@ docker build --build-arg VER=6.0 --build-arg WARN=1 --build-arg PATCH_PSSE=1 -f
docker build --build-arg MP_SRC=github --build-arg BRANCH=7.0 --build-arg BASE_TAG=5.1.0 -f docker/Dockerfile -t matpower/matpower:7.0 .
docker build --build-arg MP_SRC=github --build-arg BRANCH=7.1 --build-arg BASE_TAG=5.2.0 -f docker/Dockerfile -t matpower/matpower:7.1 .
docker build --build-arg MP_SRC=github --build-arg BRANCH=8.0b1 --build-arg BASE_TAG=7.3.0 -f docker/Dockerfile -t matpower/matpower:8.0b1 .
docker build --build-arg MP_SRC=github --build-arg BRANCH=8.0 --build-arg BASE_TAG=9.1.0 -f docker/Dockerfile -t matpower/matpower:8.0 .
## with current (latest) Octave version
docker build --build-arg MP_SRC=github --build-arg BRANCH=7.0 --build-arg WARN=1 -f docker/Dockerfile -t matpower/matpower:7.0c .
docker build --build-arg MP_SRC=github --build-arg BRANCH=7.1 --build-arg PATCH_MOST_TEST=1 -f docker/Dockerfile -t matpower/matpower:7.1c .
docker build --build-arg MP_SRC=github --build-arg BRANCH=8.0b1 --build-arg PATCH_MOST_TEST=1 -f docker/Dockerfile -t matpower/matpower:8.0b1c .
docker build --build-arg MP_SRC=github --build-arg BRANCH=8.0 --build-arg PATCH_MOST_TEST=1 -f docker/Dockerfile -t matpower/matpower:8.0c .
# docker build --build-arg MP_SRC=github --build-arg BRANCH=7.1 --build-arg PATCH_MOST_TEST=1 -f docker/Dockerfile -t matpower/matpower:latest .
docker tag matpower/matpower:7.1c matpower/matpower:latest
docker tag matpower/matpower:8.0c matpower/matpower:latest

## dev versions from current master branch
docker build --build-arg MP_SRC=github --build-arg BASE_TAG=4.4.1 -f docker/Dockerfile -t matpower/matpower:dev-latest-4.4.1 .
Expand Down
Binary file modified docs/MATPOWER-manual.pdf
Binary file not shown.
59 changes: 31 additions & 28 deletions docs/other/MATPOWER-Release-Checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,6 @@ Pre-release
- `\mpver` (update `\mptestver`, `\mpomver`, `\mipsver`, `\mostver`, `\sdpopfver` and `\syngridver` too)
- do search for all possible old versions 6.1-dev, 7.0b1
- Copyright line in `LICENSE`.
- Update Docker files
- follow instructions in `docker/Docker-Build-Notes.md` for new Octave
images, if applicable
- update value listed for _current release_ of MATPOWER in **Versions** section
of `docker/MATPOWER-Docker.md`, and add new rows to table.
- add lines in `build_matpower_images.sh` for new MATPOWER version
- build and test a new "local" image with MATPOWER Extras installed
- In `docs/src/MATPOWER-manual/MATPOWER-manual.tex`
- update output of:
- `test_matpower` (Section 2.3, Step 3), use `test_matpower_no_options`
Expand All @@ -79,7 +72,7 @@ Pre-release
- Make updates for current version specific citations:
- version number (3 places)
- year
- latest version DOI, current is: 10.5281/zenodo.4074122
- latest version DOI, current is: 10.5281/zenodo.11212313
- (update here each time)
... in the following places ...
- CITATION file
Expand All @@ -97,7 +90,7 @@ Pre-release
- Make updates for current version specific citations:
- version number (2 places)
- year
- latest version DOI, current is: 10.5281/zenodo.4074135
- latest version DOI, current is: 10.5281/zenodo.11212330
- (update here each time)
... in the following places ...
- CITATION file
Expand All @@ -111,34 +104,40 @@ Pre-release
- e.g. MIPS, MOST, SynGrid, MP-Sim, sopf1 manuals, TN2, TN3, TN4
- Copy latest `MIPS-manual.aux`, `MP-Opt-Model-manual.aux`, `MOST-manual.aux`
to `docs/src/MATPOWER-manual` for `\externaldocument`
- Create `MATPOWER-manual.pdf` from `MATPOWER-manual.tex`
- move to `docs`
- make copy named `MATPOWER-manual-x.x.pdf`
- copy to `docs` directory of `matpower.org-static` git repo
- update `MATPOWER-manual.pdf` symlink on `https://matpower.org/docs/` to point
to new `MATPOWER-manual-x.x.pdf` (replaces existing current version)
- `cd dev/projects/matpower.org-static/docs`
- `rm MATPOWER-manual.pdf`
- `ln -s ./MATPOWER-manual-x.x.pdf MATPOWER-manual.pdf`
- commit & push, then pull to matpower.org
- upload `MATPOWER-manual-x.x.pdf` to Zenodo and finish entry for "New Version"
- update:
- Publication date
- Version
- Identifiers:
- version number in "identical to"
- version specific DOI for "is documented by this upload"
- add link on `https://matpower.org/doc/manuals/` page
- Create `MATPOWER-manual.pdf` from `MATPOWER-manual.tex` and move to `docs`.
- Update Docker files
- follow instructions in `docker/Docker-Build-Notes.md` for new Octave
images, if applicable
- update value listed for _current release_ of MATPOWER in **Versions** section
of `docker/MATPOWER-Docker.md`, and add new rows to table.
- add lines in `build_matpower_images.sh` for new MATPOWER version
- build and test a new "local" image with MATPOWER Extras installed
- Add release notice with date and version in `CHANGES.md`.
- Commit all changes to `prep-for-release`.
- Push `prep-for-release` to GitHub.
- Make sure CI checks are ok.
- Make copy of `docs/MATPOWER-manual.pdf` named `MATPOWER-manual-x.x.pdf`
- copy to `docs` directory of `matpower.org-static` git repo
- update `MATPOWER-manual.pdf` symlink on `https://matpower.org/docs/` to point
to new `MATPOWER-manual-x.x.pdf` (replaces existing current version)
- `cd dev/projects/matpower.org-static/docs`
- `rm MATPOWER-manual.pdf`
- `ln -s ./MATPOWER-manual-x.x.pdf MATPOWER-manual.pdf`
- commit & push, then pull to matpower.org
- upload `MATPOWER-manual-x.x.pdf` to Zenodo and finish entry for "New Version"
- update:
- Publication date
- Version
- Identifiers:
- version number in "identical to"
- version specific DOI for "Documents"
- add link on `https://matpower.org/doc/manuals/` page


Release
-------
- Merge latest `prep-for-release` into `master`.
- Tag with version number, e.g. `7.0b1`.
- Tag with version number, e.g. `8.0`.
- Push `master` to GitHub.
- create archive with MATPOWER-Extras
- `cd matpower/untracked/`
Expand Down Expand Up @@ -190,6 +189,10 @@ Release
- use "Releases" category
- update download counter file at rdzman@matpower.org:/home4/rdzman/matpower.org-downloads
- add a column to the header line at the top of matpower-download-log.txt
- build latest MATPOWER Sphinx documentation
- commit to matpower-docs
- push
- pull to matpower.org
- MATLAB Central File Exchange
- https://www.mathworks.com/matlabcentral/fileexchange/72085-matpower/
(this is currently just a link)
Expand Down
127 changes: 127 additions & 0 deletions docs/relnotes/MATPOWER-Announce-8.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
What's New in MATPOWER 8.0
--------------------------

#### Released May 17, 2024

Below are some of the highlights of the changes since version 7.1 of
MATPOWER. See the [full release notes][1] and the [`CHANGES.md`][2]
file for more details. For release notes for previous versions, see
Appendix H of the [MATPOWER User's Manual][3].


#### Major Redesign:

MATPOWER 8 introduces a major redesign and rewrite of all of the MATPOWER
internals in the form of the flexible, all-new MATPOWER object-oriented core
architecture (*MP-Core*) and new two user-level frameworks to access it.
*(Previously developed under the name [MP-Element][4] in a separate repository
at [https://github.com/MATPOWER/mp-element][4].)*

- *MP-Core* -- Provides unparalleled flexibility and customization capabilities
at all levels. Facilitates new modeling (e.g. unbalanced multiphase elements,
FACTS devices, etc.), new controls (e.g. optimization of transformer taps,
PAR angles, etc.), new problem formulations, and more.
- *Flexible Framework* -- Provides new top-level functions for running power
flow (PF), continuation power flow (CPF) and optimal power flow (OPF), along
with new MATPOWER Extension API for user access to the full customization
capability of MP-Core.
- *Legacy Framework* -- Allows MP-Core modeling to be used internally by
legacy functions, facilitating use of legacy test suite.

See the new [MATPOWER Developer's Manual][5], [MATPOWER Reference Manual][5a]
and [*MATPOWER Technical Note 5*][6] for details of the new architecture. The
User's Manual has not yet been updated for the flexible framework.


#### New Three-Phase and Hybrid Proof-of-Concept Examples

Prototype examples of PF, CPF, and OPF for:
- unbalanced three-phase models
- hybrid transmission (single-phase) / distribution (three-phase) models
- multiple problem formulations

**Note:** These are proof-of-concept only, with much work remaining to
define a full set of three-phase model elements and their respective
parameters and data formats. _But they do work!_


#### New Features:

- [MIPS][7] 1.5.1 adds to `mplinsolve()` the ability to save an LU
factorization and reuse it to solve for additional right-hand sides.
- [MP-Opt-Model][7a] 4.2 adds support for tracing solution curves of
general parameterized nonlinear equations (PNE), providing generalized
continuation power flow (CPF) capabilities to MP-Core and adds support
for Optimization Toolbox 9.5 and later (MATLAB R2023a and later).
- [MOST][8] 1.3 improves speed and memory usage on certain problems, and
adds calculation of expected temporal locational marginal
price (TLMP), includes transitions into first period in ramping
reserves, and more.
- [SimulinkMATPOWER][8a], included in [MATPOWER Extras][8b], enables the use
of MATPOWER from MATLAB's [Simulink®][8c] environment.
*Thanks to Lukas Ortmann.*
- New options:
- New AC power flow solver based on `fsolve()` function, selected by
setting `'pf.alg'` option to `'FSOLVE'`.
- New Implicit Z-bus Gauss method power flow for distribution systems,
selected by setting `pf.alg` option to `'ZG'`.
- New functions/methods:
- `run_mp` - Top-level function for running any task (PF, CPF, OPF) with
the new MP-Core and flexible framework.
- `run_pf` - Wrapper around `run_mp` for running PF.
- `run_cpf` - Wrapper around `run_mp` for running CPF.
- `run_opf` - Wrapper around `run_mp` for running OPF.


#### New Case Files:

- Two new European transmission system cases. *Thanks to Florin Capitanescu.*
- Two new Swedish distribution system cases. *Thanks to Gabriel Malmer.*


#### New Documentation:

- [MATPOWER Documentation site][8d] -- new documentation website with MATPOWER
manuals, reference docs, and how-to guides
- [MATPOWER Developer's Manual][5] -- describes the architecture of the
new MP-Core and MATPOWER flexible framework
- [MATPOWER Reference Manual][5a] -- reference for MATPOWER functions and
classes, especially those in the new MP-Core and MATPOWER flexible framework
- [*MATPOWER Technical Note 5*][6] "MP-Element: A Unified MATPOWER
Element Model, with Corresponding Functions and Derivatives"


#### Other Improvements:

- New MATPOWER Docker image (named [`matpower/matpower`][9]) is
based on the official GNU Octave image ([`gnuoctave/octave`][10]) and
is available for multiple MATPOWER and Octave versions.
- Update versions of included packages:
- MP-Test 8.0
- MIPS 1.5.1
- MP-Opt-Model 4.2
- MOST 1.3
- Numerous bug fixes.


#### Incompatible Changes:

- Remove several deprecated functions, methods and options.


[1]: https://github.com/MATPOWER/matpower/blob/master/docs/relnotes/MATPOWER-Release-Notes-8.0.md
[2]: https://github.com/MATPOWER/matpower/blob/master/CHANGES.md
[3]: https://github.com/MATPOWER/matpower/blob/master/docs/MATPOWER-manual.pdf
[4]: https://github.com/MATPOWER/mp-element
[5]: https://matpower.org/doc/dev-manual/
[5a]: https://matpower.org/doc/ref-manual/
[6]: https://matpower.org/docs/TN5-MP-Element.pdf
[7]: https://github.com/MATPOWER/mips
[7a]: https://github.com/MATPOWER/mp-opt-model
[8]: https://github.com/MATPOWER/most
[8a]: https://github.com/MATPOWER/mx-simulink_matpower
[8b]: https://github.com/MATPOWER/matpower-extras
[8c]: https://www.mathworks.com/products/simulink.html
[8d]: https://matpower.org/doc/
[9]: https://hub.docker.com/r/matpower/matpower
[10]: https://hub.docker.com/r/gnuoctave/octave
2 changes: 1 addition & 1 deletion docs/relnotes/MATPOWER-Announce-8.0b1.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ parameters and data formats. _But they do work!_
[2]: https://github.com/MATPOWER/matpower/blob/master/CHANGES.md
[3]: https://github.com/MATPOWER/matpower/blob/master/docs/MATPOWER-manual.pdf
[4]: https://github.com/MATPOWER/mp-element
[5]: https://matpower.org/documentation/dev-manual/
[5]: https://matpower.org/doc/dev-manual/
[6]: https://matpower.org/docs/TN5-MP-Element.pdf
[7]: https://github.com/MATPOWER/mips
[7a]: https://github.com/MATPOWER/mp-opt-model
Expand Down
Loading

0 comments on commit e619141

Please sign in to comment.