- A wheel for Python 3.13 is also available. - The wheels for Windows are now available. The problem was the same as the one of the [issue 28551](https://github.com/matplotlib/matplotlib/issues/28551) of the Matplotlib repository. - {gh-pr}`237` Improvements of the Sphinx configuration. - {gh-pr}`262` Raise a proper error when a transformer is defined with null impedance. - {gh-pr}`259` The cache of the license object was not reset after the activation of a new license key. - {gh-pr}`258` {gh-pr}`261` {gh-pr}`263` Add basic plotting functionality in the new `roseau.load_flow.plotting` module. The `plot_interactive_map` function plots an electrical network on an interactive map using the folium library and the `plot_voltage_phasors` function plots the voltage phasors of a bus, load or source in the complex plane. The revamped plotting section of the documentation demonstrates the plotting functionalities available in Roseau Load Flow with examples. - {gh-pr}`258` The documentation gained a new "advanced" section with a page on floating neutrals and a page on potential references. - {gh-pr}`257` {gh-issue}`252` Updates to the `LineParameters` class: - The method `from_name_lv`, deprecated since version 0.6, has been removed. It can be easily replaced by the `from_geometry` method. - The method `from_name_mv` is deprecated. A new method `from_coiffier_model` is added with the same functionality and more flexibility. The new method computes the ampacity of the line based on Coiffier's model and works with different numbers of phases. - {gh-pr}`256` {gh-issue}`250`: - Accept scalar values for the `powers`, `currents`, `impedances` parameters of the load classes. - Add `rlf.PositiveSequence`, `rlf.NegativeSequence` and `rlf.ZeroSequence` vectors for easier creation of balanced quantities. - {gh-pr}`255` Update the figures of loads and of voltage sources in the documentation to be compliant with the work of {gh-pr}`249`. - {gh-pr}`254` {gh-issue}`251` Allow passing multiple phases to potential references. The `phase` attribute of the `PotentialRef` is replaced by `phases`. - {gh-pr}`249` {gh-issue}`248` Accept scalar values for the `voltages` parameter of the `VoltageSource` class. - {gh-pr}`247` Add `connect_neutral` parameter to the loads and sources constructor to specify if the neutral is to be connected to the bus's neutral or to be left floating. This allows loads connected to the same bus to have different neutral connections. The default behavior remains the same as before where the neutral is connected when the bus has a neutral and floating otherwise. - {gh-pr}`246` Improvements to the `rlf.converters` module: - Fix `series_phasor_to_sym` function with series that have different phases per element. - Make `calculate_voltages` take array-like potentials. - Improve typing of several functions. - {gh-pr}`245` {gh-issue}`244` Fix the `LineParameters.from_geometry` method to not crash when passed `unknown` insulator type or `None`. - Add `res_voltages` to the `VoltageSource` class for symmetry with the other elements. `res_voltages` is always equal to the supplied `voltages` for a voltage source. - {gh-pr}`243` Fix cross-sectional area of DGS line types created from line elements and special case invalid PwF line geographical coordinates table. - {gh-pr}`240` Add tests for switches imported from DGS and improve warning and error messages. - {gh-pr}`235` **BREAKING CHANGE**: The constructor of the class `ElectricalNetwork` has changed: - it accepts keyword arguments only. - it accepts the arguments `lines`, `transformers` and `switches` in replacement of the argument `branches`. - As a consequence, - the results method `res_branches` has been removed. Please use `res_lines`, `res_transformers` and `res_switches` methods instead. - the field `branches` does not exist anymore. Please use the fields `lines`, `transformers` and `switches`. - {gh-pr}`235` Move the `Switch` class into its own file `roseau/load_flow/models/switches.py`. - {gh-pr}`235` {gh-pr}`239` The JSON file format number is upgraded to the version 2. All the files in version 0 or 1 can still be read. Please upgrade them manually using the following code: python path = "my_json_file.json" ElectricalNetwork.from_json(path).to_json(path)
- {gh-pr}`235` The method `results_to_dict` now accepts the keyword-only argument `full` which allows the export of all the results of an element. - {gh-pr}`235` Solve a bug concerning the accessors to the flexible powers result of flexible power loads. An unwanted error was raised. - {gh-pr}`235` Replace the occurrences of the `str.find` method by the `str.index` function. - {gh-pr}`235` The method `to_graph` of the class `ElectricalNetwork` now retrieves a graph with additional data store in the edges depending on the edge type: line, transformer or switch. - {gh-pr}`242` Add optional data to the `TransformerParameters` class: manufacturer, efficiency and range. - {gh-pr}`242` Fixed a bug in the unit of `q_min` and `q_max` in the constructor of `FlexibleParameter`. - {gh-pr}`242` Add equality operator for the classes `FlexibleParameter`, `Control` and `Projection`.
0.9.1
{note} The wheels for Windows are temporarily unavailable anymore. If you need them, please post an issue on GitHub.
- {gh-pr}`231` Add `LineParameters.from_power_factory` and `TransformerParameters.from_power_factory` methods to easily import PowerFactory lines and transformer models into Roseau Load Flow. - {gh-pr}`230` Improve the algorithm for assigning potential references for DGS networks. - {gh-pr}`229` Several fixes and improvements to the PowerFactory import:
- Update the "Export Definition Folder" bundled with _Roseau Load Flow_ as a pfd file; - Support lines with missing type ID. This is the case when the `TypLne` objects are inherited from an external library in PowerFactory and not included in the project being exported; A `LineParameters` object is automatically created for these lines; - Support "General Load (`ElmLod`)" elements; - Preserve Geometry information on buses and branches; - Improve handling of phases of several elements. Previously, phases were hard-coded. - Fix the unit of the power of static generators; - Fix the re-sizing of the matrices of line types without neutral elements; - Fix the total power of "MV Loads (`ElmLodmv`)" to take into account the generation power; - Fix all loads to no longer ignore the scale factor of the power; - Fix the sign of the reactive power of MV and LV loads - Fix the ground connection to the source bus
And many more...
0.9.0
- {gh-pr}`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"`. - {gh-pr}`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. - {gh-issue}`222` {gh-pr}`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. - {gh-issue}`220` {gh-pr}`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. - {gh-issue}`210` {gh-pr}`219` Add a parameter to `LineParameters.from_catalogue` to choose the number of phases of the created line parameters object. - {gh-pr}`218` Add `Transformer.res_power_losses` to get the total power losses in a transformer. - {gh-pr}`217` Add an ID override to `TransformerParameters.from_catalogue` similar to `LineParameters.from_catalogue`. - {gh-issue}`216` {gh-pr}`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")`. - {gh-pr}`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.
0.8.1
- {gh-issue}`214` Solve a bug in the engine when using delta connected flexible loads. - {gh-pr}`213` Better detection of poorly connected elements as described in {gh-issue}`209`. It raises a proper error message. - {gh-pr}`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)
0.8.0
- {gh-pr}`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. - {gh-pr}`206` {gh-issue}`187` Un-deprecate `results_to_dict/json` methods and remove deprecated `results_from_dict/json` methods. - {gh-pr}`205` {gh-issue}`200` Fix error when propagating the potentials from a voltage source with fewer phases than the bus. - {gh-pr}`204` {gh-issue}`193` Remove restrictions on geometry types. Allow specifying the CRS of the geometries. - {gh-pr}`203` {gh-issue}`186` Detect invalid element overrides when connecting a new element with the same ID and type of an existing element. - {gh-pr}`202` {gh-issue}`188` Explicitly prevent instantiation of abstract classes. - {gh-pr}`201` {gh-issue}`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. - {gh-pr}`197` Fix a bug in three-phase transformer models that led to excessive reactive power flow in the transformer. - {gh-pr}`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. - {gh-pr}`198` Simplify the storage of the transformer catalogues. This is an internal change that should not have effects on user code. - {gh-pr}`196` {gh-issue}`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. - {gh-pr}`195` Use `latexindent.pl` to automatically indent LaTeX files in the documentation. - {gh-pr}`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. - {gh-pr}`184` Improve the documentation to have a better SEO (sitemap, metadata and canonical URLs). The navigation menu has also been improved. - {gh-pr}`183` {gh-issue}`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. - {gh-pr}`182` Improve the error message when trying to access results on the network before running the load flow. - {gh-pr}`189` Allow flexible loads to have a null active theoretical power.
0.7.0
{important} Starting with version 0.7.0, Roseau Load Flow is no longer supplied as a SaaS. The software is now available as a standalone Python library.
- The documentation is moved from GitHub Pages to <https://roseau-load-flow.roseautechnologies.com/>. - Fix a bug in the engine: it was impossible to change the parameters of center-tapped and single phase transformers. - {gh-pr}`179` Fix a bug in the propagation of potentials when a center-tapped transformer is used without neutral at the primary side. - {gh-pr}`178` {gh-issue}`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. - {gh-pr}`175` {gh-issue}`174` Fix JSON serialization of network with line parameters created from the catalogue. - {gh-pr}`173` Remove the conda installation option. - {gh-pr}`168` {gh-issue}`166` Fix initial potentials' propagation. - {gh-pr}`167` {gh-issue}`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. - {gh-pr}`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. - {gh-pr}`167` Replace all `print_catalogue()` methods by `get_catalogue()` methods that return a data frame instead of printing the catalogue to the console. - {gh-pr}`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. - {gh-pr}`167` {gh-issue}`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. - {gh-pr}`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. - {gh-pr}`163` {gh-issue}`158` Fix `ElectricalNetwork.res_transformers` returning an empty dataframe when max_power is not set. - {gh-pr}`163` Several unused exception codes were removed. An `EMPTY_NETWORK` code was added to indicate that a network is being created with no elements. - {gh-pr}`163` Remove the `ElectricalNetwork.res_info` attribute. `ElectricalNetwork.solve_load_flow()` now returns the tuple (number of iterations, residual). - {gh-pr}`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. - {gh-pr}`163` Improve performance of network creation and results access. - {gh-pr}`163` Attributes `phases` and `bus` are now read-only on all elements. - {gh-pr}`151` Require Python 3.10 or newer.