Skip to content

DSS C-API 0.13.3

Compare
Choose a tag to compare
@PMeira PMeira released this 12 Jun 03:03
· 178 commits to master since this release

This is a bugfix release. A few issues present in OpenDSS for several years have been fixed in UPFC, Capacitor and Reactor components. Read below for more.

DSS C-API is a library that exposes a plain C API for an unofficial/alternative implementation/port of OpenDSS, the Distribution System Simulator from EPRI (the Electric Power Research Institute), aiming for full COM compatibility and beyond. It allows using most of the OpenDSS features on Windows, Linux and macOS with compatible behavior across multiple processor architectures. It is the lower level API used by the other projects in DSS-Extensions: DSS-Python, OpenDSSDirect.py, OpenDSSDirect.jl (Julia language), DSS# (.NET/C# bindings), DSS MATLAB, and the dss.hpp C++ header-only library, besides third-party projects.

All derived/downstream projects, including the documentation sites and dss.hpp headers, will be updated in the next hours/days to use this new engine.

See the changelog for a complete list of changes.
See also the updated "Known Differences" document, which lists the main differences between the DSS C-API codebase and the main/official OpenDSS.

For a growing general repository about the projects, see https://github.com/dss-extensions/dss-extensions

Besides the changes listed below, the plotting backend in DSS-Python was updated to fix and complement compatibility with the official OpenDSS plots.

Changes since 0.13.2

Bugfix release for some components. No other major changes.

Fixes ported from the official OpenDSS v9.6.1.2 (SVN r3619) released on 2023-06-06, plus our custom changes (including new tests). Test circuits cross-validated as usual.

  • LoadShape: check if there's any allocated pointer before normalizing. Since we provide more ways to fill the LoadShape data besides the official alternatives, we needed to add a few more checks in case of misuse to avoid using invalid pointers. Includes a minor fix to how manual values (set by the user) for mean and stddev are handled.

  • show command: adjust formatting for show variables, show isolated, show loops, show faults.

  • GICTransformer: clean-up the code and add a minor fix for BusX.

  • Editor: tweak how the process is started; works better on Linux for terminal-based editors (GUI editors are recommended for a better experience though).

  • Obj/API and headers: new functions and add a few warnings in the docs.

  • New compatibility flag in DSSCompatFlags: add SaveCalcVoltageBases. On recent versions, running a save circuit doesn't include a CalcVoltageBases anymore since that causes issues for some users. We added the new flag SaveCalcVoltageBases to restore the old/original behavior. More options are planned for a future version in a dedicated function in the API.

  • Ported (and complemented) from the official OpenDSS SVN code:

    • UPFC, r3610: "Fixing losses in UPFC model, there was a bug introduced several years ago when trying to redefine losses based on residual currents (bad idea)." (by davismont)
    • CapControl, r3615: "Fixing property requirement (element) for capcontrol in Time and Follow control modes", by davismont
    • Capacitor/Reactor: fixes related to 1- or 2-phase LL objects and Yprim; NormAmps/EmergAmps.
      • r3613: "Fixing bug in Yprim formation for 1-ph and 2-ph delta-connected capacitors. Fix to user-specified NormAmps and EmergAmps for capacitors, which were always being overridden with default values. Pending to check for same issues on Reactors." (by celsorocha)
      • r3616: "Fixing bug in Yprim formation for 1-ph and 2-ph delta-connected reactors. Fix to user-specified NormAmps and EmergAmps for reactors, which were always being overridden with default values." (by celsorocha)
      • Also includes an extra fix for a corner-case issue detected with our tests on DSS-Extensions.
    • PVSystem/Storage/InvControl, r3597/r3598: "Adding current limiting capabilities to IBR in QSTS and dynamics modes. Examples also available." (by davismont). Also refactored more common code to InvBasedPCE on the DSS-Extensions version.

Full Git Changelog: 0.13.2...0.13.3

Precompiled binaries

Most of the binaries available here are built through GitHub Actions, as are most of the development builds (you need to be logged in to be able to download dev builds). Linux ARM32 binaries will be added manually as time permits (please feel free to create a new issue if we delay it too much).

Users rarely need to build the Pascal binaries themselves, since there aren't many Free Pascal compiler flags that affect them. We do recommend building KLUSolveX optimized for your machines, especially for HPC clusters (since it's built as a shared library, you don't need to worry about Free Pascal).

Checksums

SHA256

481132bf5f5db9a02a83ee17d41490fcca4e838c93a1b066676c0db66f2b4929  dss_capi_0.13.3_darwin_arm64.tar.gz
5083b81dfcd97688419931e7bb9404d98565d299c71d635bd23a26f0d19a3c6c  dss_capi_0.13.3_darwin_x64.tar.gz
8774861a44d5b3e949808893b16cf39d5c0fa7b9f67a9460da13dc23232f50bf  dss_capi_0.13.3_linux_arm64.tar.gz
f692d876401154b4a3abb0b3028b18ec4b0de2bff0e9768aba06268635a6fafb  dss_capi_0.13.3_linux_x64.tar.gz
1abe0f45fba69b28d847b77d3a023aa365adc7abb786045f8c9787e40e722451  dss_capi_0.13.3_linux_x86.tar.gz
1a4930ad2932c7209daf69e33e0040f5e8f846c004c76604ad33d60de8f8dff5  dss_capi-0.13.3.tar.gz
1e3f15ad74f3a01650cdad6ea1a2f39722ae20c19b3e41550b485125270f86ca  dss_capi_0.13.3_win_x64.zip
3e63ce26dd535b94ae7f25adfd27cb17bc330be0d6f85fa4958b6a4d0993303a  dss_capi_0.13.3_win_x86.zip
d3dc7161a4953efae365a309f7124c950772ff87a4477bafa26e0b794c09e537  dss_capi-0.13.3.zip
6a3168dcd029558684eccd706f96349e35e80538097d5135c1e39759a81c6373  messages.tar.gz
7992bbb161df4421f0966e42bcbec454d8e1d069cec88408346766cd18eda71a  messages.zip

SHA512

1db4a81d9ca18ab5f6932a14291f9130d004172195a6e30e64d8bfd27a9cfc6f85b8fa0f64d8275d816d366d29f195e4d34079dd542eb26c0aea3eda9a7f51e2  dss_capi_0.13.3_darwin_arm64.tar.gz
4bcc0ef07f4fccca192e485ca204816e4f51ddfd7a6fffb09d0a455595a920ff295a9d8c67a9903562c5d344214429dd741216a062f8d64fd7389e74469900d8  dss_capi_0.13.3_darwin_x64.tar.gz
e206c6687e77706071c9dc3a38790d9854195611539a66d22e6d0c6cecaf7d83b40d596ff1ae7d66f2dc7a2c334340642e980aa3bfcd8a06e54c2dedf706642a  dss_capi_0.13.3_linux_arm64.tar.gz
a0c058ad86ff44bf2e1ac776e357ff045dff6c39229a7867a8f890b31530e2629839fd2a772c508561519ed75f86bc594816ed45c60f4c3b73b38df941f4d0a7  dss_capi_0.13.3_linux_x64.tar.gz
488747f1e17676e417c83ae5c81dec706c515d264f5b728809c8b412a3ad6e676bf2b348c5ea3091fdc0fde2f97745ebab0cf1bb734646e5b4158aac878c77a9  dss_capi_0.13.3_linux_x86.tar.gz
fd215b641318ada3ea45c71eab51b327698f96b3a4480385fc2f169b569f02fa526a52fe95868a41f8c29ec1c8f643f60d1ec8afbbfb4d5fdcce9440bc3c4f78  dss_capi-0.13.3.tar.gz
2f9bc204193d506a4349748e766b9a024786ae60c172c3e5d2f9516a070e4058025c69629c8df26ce9a8a7ab0b742eedb6c7d1826fb08edf0a93f0a08710b003  dss_capi_0.13.3_win_x64.zip
c6af64cd6acba9b8cb05276050083842aeae7596c5311429e4b244fe1938958b68739fe889907f0dd8ae43793bfe7323bd7da607ed3d5c022b82b509236ad128  dss_capi_0.13.3_win_x86.zip
2385bcdbe07043ff79644d99dd2eea4f478b69a392f717e214b672dac6fda26777a9fed69464ce445c2d19f123814126701e5afeea56b8830d0f49cf6ae5306c  dss_capi-0.13.3.zip
a4fe88fe7f898da0967afebfa118745b8318a59f2b37b12f242d644cc3c5833b63fdeb31005eea7313bfed3fcb7c3b6cc303f61e627fe83c44305d9b621c79a1  messages.tar.gz
4d22bc080846385db0f2b56da6c3610865a218acd9464a7f6a46a5c2a17c10925b9281a6a289fe61e9a461afdf4d32ef01d9f48f6833432bcfb84e6c9957ddaa  messages.zip