Roseau-load-flow

Latest version: v0.9.0

Safety actively analyzes 641872 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.9.0

A lot of improvements :tada: !

- 227 Sources and loads are now allowed to have floating neutrals. This means that a load/source
with `phases="abcn"` can now be connected to a bus with `phases="abc"`.
- 225 The `calculate_voltages` function now accepts and return pint quantities.
- MacOS wheels for roseau-load-flow-engine are now published on PyPI. This means that `pip install roseau-load-flow`
should now work on macOS.
- Added support for running in Google Colab documents.
- Fixed a bug in license checks caching on Windows.
- Added support for Numpy 2.0.
- 222 223 `from_catalogue()` methods of the electrical network and transformer
and line parameters now perform "full match" comparison on textual inputs. If you need the old
behavior, use regular expression wild cards `.*` in the input string.
- 220 221 Add `LineParameters.from_open_dss` and `TransformerParameters.from_open_dss` methods to
easily import OpenDSS lines and transformer models into Roseau Load Flow. More information is
available in the documentation of these methods.
- 210 219 Add a parameter to `LineParameters.from_catalogue` to choose the number
of phases of the created line parameters object.
- 218 Add `Transformer.res_power_losses` to get the total power losses in a transformer.
- 217 Add an ID override to `TransformerParameters.from_catalogue` similar to
`LineParameters.from_catalogue`.
- 216 217 **BREAKING CHANGE**: Rename the `id` parameter of `TransformerParameters`
catalogue methods to `name` to be consistent with `LineParameters`.
**If you call these methods by keyword arguments**, make sure to update your usage of
`TransformerParameters.from_catalogue(id="xxx")` to `TransformerParameters.from_catalogue(name="xxx")`.
- 212 **BREAKING CHANGE**: Modify the constructor of `TransformerParameters` to take the `z2`
and `ym` parameters directly instead of the open and short circuit tests parameters. You can still
create an object from these tests using the `from_open_and_short_circuit_tests` constructor. This
change comes with other changes to `TransformerParameters`, notably:
- The `z2`, `ym`, `k`, and `orientation` are now always available as attributes on the instance
- The `to_zyk` method is deprecated in favour of the direct attribute access on the instance. This
method will be removed in a future version
- The parameters `i0`, `p0`, `psc`, and `vsc` are now optional. They return None for instances
created using `z2` and `ym` directly
- The JSON representation of `TransformerParameters` has changed, but it is still compatible with
the old representation.

What's Changed
* Modify the `TransformerParameters` constructor by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/212
* Modify TransformerParameters from_catalogue method by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/217
* Add Transformer.res_power_losses by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/218
* Allow users to specify nb phases of line parameters from catalogue by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/219
* Add from_open_dss method to line and transformer parameters by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/221
* Fix from_catalogue textual match with literal string inputs by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/223
* Update the docs by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/224
* Make calculate_voltages unit aware by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/225
* Add a page about data exchange to the docs by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/226
* Allow floating neutrals for loads and sources by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/227
* Version 0.9.0 by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/228


**Full Changelog**: https://github.com/RoseauTechnologies/Roseau_Load_Flow/compare/v0.8.1...v0.9.0

0.8.1

A correction and documentation improvement:
- 214 Solve a bug in the engine when using delta connected flexible loads.
- 213 Better detection of poorly connected elements as described in 209. It raises a proper error
message.
- 211 Several improvements of the documentation:
- Add Open Graph metadata to the documentation page.
- Error on the susceptance unit in the tables of the `LineParameters`' catalogue.
- Replot the networks of the catalogue (add a `H1` title, use the Raleway font, only plot the lines to add their
parameters id in the tooltip)

What's Changed
* Improvements of the documentation (opengraph, networks' catalogue plotting) by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/211
* Poorly connected elements by Saelyos in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/213
* Version 0.8.1 by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/215


**Full Changelog**: https://github.com/RoseauTechnologies/Roseau_Load_Flow/compare/v0.8.0...v0.8.1

0.8.0

Here comes the version 0.8.0 of _Roseau Load Flow_ :tada:
The main changes are:
* The three-phase transformer model had issues that are now solved.
* A flexible power load can now have a zero power. This is useful for time-series simulations.

The detailed modifications are listed here:
- 207 Fix a bug in the zig-zag three-phase transformer model that led to incorrect active power flow in the
transformer. The bug affected the 50 kVA transformers that have the type `Yzn11` in the catalogue.
- 206 187 Un-deprecate `results_to_dict/json` methods and remove deprecated
`results_from_dict/json` methods.
- 205 200 Fix error when propagating the potentials from a voltage source with fewer phases
than the bus.
- 204 193 Remove restrictions on geometry types. Allow specifying the CRS of the geometries.
- 203 186 Detect invalid element overrides when connecting a new element with the
same ID and type of an existing element.
- 202 188 Explicitly prevent instantiation of abstract classes.
- 201 185 Add `type` attribute to the load classes and rename branches `branch_type`
attribute to `type` for consistency. Please replace `branch.branch_type` by `branch.type` in your code.
In addition, loads data frames gained two new columns:
1. `type` indicating the load type: constant-(`power`, `current`, `impedance`);
2. and `flexible` indicating if the load is flexible.
- 197 Fix a bug in three-phase transformer models that led to excessive reactive power flow in the transformer.
- 199 Add Schneider Electric EcoDesign transformers to the catalogue. These are tagged with the _AA0Ak_
efficiency class. Other internal data have been added to the catalogue for testing purposes.
- 198 Simplify the storage of the transformer catalogues. This is an internal change that should not have
effects on user code.
- 196 194 Improve the error message when accessing `res_flexible_powers` on a non-flexible load
and relax the flexible parameters plotting methods to accept an array-like of voltages.
- 195 Use `latexindent.pl` to automatically indent LaTeX files in the documentation.
- 192 Speed up results access by up to 3x using several optimization techniques. This is especially
noticeable in timeseries simulations and when accessing results of large networks.
- 184 Improve the documentation to have a better SEO (sitemap, metadata and canonical URLs). The navigation
menu has also been improved.
- 183 181 Update the networks catalogue to better represent the real networks.
LV loads are made single-phase, MV sources are connected in delta, and MV buses lost their neutral.
Voltage, current, and power limits are added to the buses, lines, and transformers.
The line parameters IDs are also updated to match the new line parameters catalogue.
- 182 Improve the error message when trying to access results on the network before running the load flow.
- 189 Allow flexible loads to have a null active theoretical power.

What's Changed
* Improve error message when network results do not exist by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/182
* Update networks catalogue by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/183
* DOC: Improve metadata and navigation menu by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/184
* Null active power for flexible loads by Saelyos in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/189
* Bump pre-commit/action from 3.0.0 to 3.0.1 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/190
* Optimize results by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/192
* DOC: LatexIndent by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/195
* Small improvements to flexible loads by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/196
* Simplify the transformers catalogue by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/198
* Update the transformers catalogue by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/199
* Fix a bug in 3-ph transformer models by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/197
* Add load.type and rename branch.branch_type by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/201
* Explicitly prevent the instantiation of abstract classes by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/202
* Detect invalid element overrides by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/203
* Remove restrictions on geometry types and allow custom CRS by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/204
* Improve potentials propagation by Saelyos in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/205
* Un-deprecate results_to_dict and remove results_from_dict by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/206
* Transformer tests by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/207
* Version 0.8.0 by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/208


**Full Changelog**: https://github.com/RoseauTechnologies/Roseau_Load_Flow/compare/v0.7.0...v0.8.0

0.7.0

> [!IMPORTANT]
> Starting with this version, Roseau Load Flow is no longer supplied as a SaaS. The software is
> available as a standalone Python library. Please contact us at contactroseautechnologies.com in order to get a license key.

This release includes:
- Fix a bug in the engine: it was impossible to change the parameters of center-tapped and single phase transformers.
- 179 Fix a bug in the propagation of potentials when a center-tapped transformer is used without neutral at the primary side.
- 178 176 Merge the `results_to_json`, `results_from_json`, `results_to_dict` and `results_from_dict` methods of the `ElectricalNetwork` and `Element`s classes into the methods `to_json`, `from_json`, `to_dict` and `from_dict` respectively. The old `results_` methods are **deprecated** and will be removed in a future release. The new methods will include the results by default, but you can pass `include_results=False` to exclude them.
- 175 174 Fix JSON serialization of network with line parameters created from the catalogue.
- 173 Remove the conda installation option.

It also includes all the modifications of the alpha release 171 :

- 168 166 Fix initial potentials' propagation.
- 167 161 Add a catalogue of lines using the IEC standards. You can use the method `LineParameters.get_catalogue()` to get a data frame of the available lines and the method `LineParameters.from_catalogue()` to create a line from the catalogue. Several line types, conductor material, and insulation types have been updated. Physical constants have been updated to match the IEC standards where applicable.
- 167 The class `LineParameters` now takes optional arguments `line_type`, `conductor_type`, `insulator_type` and `section`. These parameters are accessible as properties. They are filled automatically when creating a line from the catalogue or from a geometry.
- 167 Replace all `print_catalogue()` methods by `get_catalogue()` methods that return a data frame instead of printing the catalogue to the console.
- 167 Enumeration classes no longer have a `from_string` method, you can call the enumeration class directly with the string value to get the corresponding enumeration member. Case-insensitive behavior is preserved.
- 167 122 Add checks on line height and diameter in the `LineParameters.from_geometry()` alternative constructor. This method will try to guess a default conductor and insulation type if `None` is provided.
- 163 **BREAKING CHANGE:** roseau-load-flow is no longer a SaaS project. Starting with version 0.7.0, the software is distributed as a standalone Python package. You need a license to use it for commercial purposes. See the documentation for more details. This comes with a huge performance improvement but requires a breaking change to the API:
- The `ElectricalNetwork.solve_load_flow()` method no longer takes an `auth` argument.
- To activate the license, you need to call `roseau.load_flow.activate_license("MY LICENSE KEY")` or set the environment variable `ROSEAU_LOAD_FLOW_LICENSE_KEY` (preferred) before calling `ElectricalNetwork.solve_load_flow()`. More information in the documentation.
- Several methods on the `FlexibleParameter` class that previously required `auth` are changed. Make sure to follow the documentation to update your code.
- 163 158 Fix `ElectricalNetwork.res_transformers` returning an empty dataframe when max_power is not set.
- 163 Several unused exception codes were removed. An `EMPTY_NETWORK` code was added to indicate that a network is being created with no elements.
- 163 Remove the `ElectricalNetwork.res_info` attribute. `ElectricalNetwork.solve_load_flow()` now returns the tuple (number of iterations, residual).
- 163 Remove the `Bus.clear_short_circuits()` and `ElectricalNetwork.clear_short_circuits()` methods. It is currently not possible to clear short-circuits from the network.
- 163 Improve performance of network creation and results access.
- 163 Attributes `phases` and `bus` are now read-only on all elements.
- 151 Require Python 3.10 or newer.

What's Changed
* Update to Python 3.10 by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/151
* Bump conda-incubator/setup-miniconda from 2 to 3 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/152
* Bump actions/upload-pages-artifact from 2 to 3 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/153
* Bump actions/deploy-pages from 2 to 4 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/154
* Bump actions/setup-python from 4 to 5 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/155
* Bump actions/configure-pages from 3 to 4 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/156
* Bump actions/upload-artifact from 3 to 4 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/157
* Fix res_transformers returning an empty dataframe by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/163
* Moving away from SaaS, step 1 by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/164
* Moving away from SaaS, step 2 by Saelyos in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/165
* Potentials propagation by Saelyos in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/168
* Add lines catalogue and get_catalogue method by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/167
* Add missing changelog entries by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/170
* Version 0.7.0-alpha by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/171
* Bump actions/cache from 3 to 4 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/172
* Remove conda by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/173
* Fix bug when serializing line parameters with numpy values by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/175
* Merge and deprecate results serialization methods by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/178
* Bug in `propagate_potentials` with "center" transformer types by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/179
* Version 0.7.0 by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/180


**Full Changelog**: https://github.com/RoseauTechnologies/Roseau_Load_Flow/compare/v0.6.0...v0.7.0

0.7.0alpha

> [!IMPORTANT]
> Starting with version 0.7.0, Roseau Load Flow will no longer be supplied as a SaaS. The software will
> be available as a standalone Python library. Please contact us at contactroseautechnologies.com in order to get a license key.


- 168 166 Fix initial potentials' propagation.
- 167 161 Add a catalogue of lines using the IEC standards. You can use the method
`LineParameters.get_catalogue()` to get a data frame of the available lines and the method
`LineParameters.from_catalogue()` to create a line from the catalogue. Several line types, conductor
material, and insulation types have been updated. Physical constants have been updated to match the
IEC standards where applicable.
- 167 The class `LineParameters` now takes optional arguments `line_type`, `conductor_type`,
`insulator_type` and `section`. These parameters are accessible as properties. They are filled
automatically when creating a line from the catalogue or from a geometry.
- 167 Replace all `print_catalogue()` methods by `get_catalogue()` methods that return a
data frame instead of printing the catalogue to the console.
- 167 Enumeration classes no longer have a `from_string` method, you can call the enumeration
class directly with the string value to get the corresponding enumeration member. Case-insensitive
behavior is preserved.
- 167 122 Add checks on line height and diameter in the `LineParameters.from_geometry()`
alternative constructor. This method will try to guess a default conductor and insulation type if
none is provided.
- 163 **BREAKING CHANGE:** roseau-load-flow is no longer a SaaS project. Starting with version
0.7.0, the software is distributed as a standalone Python package. You need a license to use it for
commercial purposes. See the documentation for more details. This comes with a huge performance
improvement but requires a breaking change to the API:
- The `ElectricalNetwork.solve_load_flow()` method no longer takes an `auth` argument.
- To activate the license, you need to call `roseau.load_flow.activate_license("MY LICENSE KEY")`
or set the environment variable `ROSEAU_LOAD_FLOW_LICENSE_KEY` (preferred) before calling
`ElectricalNetwork.solve_load_flow()`. More information in the documentation.
- Several methods on the `FlexibleParameter` class that previously required `auth` are changed. Make
sure to follow the documentation to update your code.
- 163 158 Fix `ElectricalNetwork.res_transformers` returning an empty dataframe
when max_power is not set.
- 163 Several unused exception codes were removed. An `EMPTY_NETWORK` code was added to indicate
that a network is being created with no elements.
- 163 Remove the `ElectricalNetwork.res_info` attribute. `ElectricalNetwork.solve_load_flow()` now
returns the tuple (number of iterations, residual).
- 163 Remove the `Bus.clear_short_circuits()` and `ElectricalNetwork.clear_short_circuits()`
methods. It is currently not possible to clear short-circuits from the network.
- 163 Improve performance of network creation and results access.
- 163 Attributes `phases` and `bus` are now read-only on all elements.
- 151 Require Python 3.10 or newer.

0.6.0

> [!NOTE]
> This is the last release to support Python 3.9!

A new version with the following improvement/bug correction:
- 149 145 Add custom pint wrapper for better handling of pint arrays.
- 148 122 deprecate `LineParameters.from_name_lv()` in favour of the more generic
`LineParameters.from_geometry()`. The method will be removed in a future release.
- 142 136 Add `Bus.res_voltage_unbalance()` method to get the Voltage Unbalance
Factor (VUF) as defined by the IEC standard IEC 61000-3-14.
- 141 137 Add `ElectricalNetwork.to_graph()` to get a `networkx.Graph` object
representing the electrical network for graph theory studies. Install with the `"graph"` extra to
get _networkx_.
`ElectricalNetwork` also gained a new `buses_clusters` property that returns a list of sets of
IDs of buses that are connected by a line or a switch. This can be useful to isolate parts of the
network for localized analysis. For example, to study a LV subnetwork of a MV feeder. Alternatively,
to get the cluster certain bus belongs to, you can use `Bus.get_connected_buses()`.
- 141 Add official support for Python 3.12. This is the last release to support Python 3.9.
- 138 Add network constraints for analysis of the results.
- Buses can define minimum and maximum voltages. Use `bus.res_violated` to see if the bus has
over- or under-voltage.
- Lines can define a maximum current. Use `line.res_violated` to see if the loading of any of the
line's cables is too high.
- Transformers can define a maximum power. Use `transformer.res_violated` to see if the transformer
loading is too high.
- The new fields also appear in the data frames of the network.
- 133 126 Add Qmin and Qmax limits of flexible parameters.
- 132 101 Document extra utilities including converters and constants.
- 131 127 Improve the documentation of the flexible loads.
- Add the method `compute_powers` method to the `FlexibleParameter` class to compute the resulting flexible powers
for a given theoretical power and a list of voltage norms.
- Add the `plot_control_p`, `plot_control_q` and `plot_pq` methods to the `FlexibleParameter` class to plot the
control curves and control trajectories.
- Add the extra `plot` to install `matplotlib` alongside `roseau-load-flow`.
- 131 Correction of a bug in the error message of the powers setter method.
- 130 Mark some internal attributes as private, they were previously marked as public.
- 128 Add the properties `z_line`, `y_shunt` and `with_shunt` to the `Line` class.
- 125 Speed-up build of conda workflow using mamba.




What's Changed
* Improve conda workflow by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/125
* Add some shortcuts to the Line class by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/128
* Fix pint warnings and remove conditional import by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/129
* Mark internal attributes as private by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/130
* Add a doc page about converters and constants by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/132
* Flexible load documentation ++ by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/131
* Add Qmin and Qmax limits by Saelyos in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/133
* Bump actions/checkout from 3 to 4 by dependabot in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/134
* Improve catalogue printing on dark background and narrow screens by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/135
* Add network constraints for load flow analysis by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/138
* Add API reference to the models pages by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/139
* Add support for Python 3.12 and networkx graphs by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/141
* Add voltage unbalance calculation by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/142
* Make the installation page more beginner friendly by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/143
* Fix typing of numpy arrays by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/144
* Improve the typing of pint wrapped method by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/147
* Deprecate `LineParameters.from_name_lv` method by alihamdan in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/148
* Add custom pint wrapper by Saelyos in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/149
* Version 0.6.0 by benoit9126 in https://github.com/RoseauTechnologies/Roseau_Load_Flow/pull/150


**Full Changelog**: https://github.com/RoseauTechnologies/Roseau_Load_Flow/compare/v0.5.0...v0.6.0

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.