Skip to main content

LightSim2Grid implements a c++ backend targeting the Grid2Op platform.

Project description

LightSim2Grid

Provide a fast backend for grid2op using c++ KLU and Eigen librairies. Its primary goal is to serve as a fast backend for the grid2op platform, used primarily as a testbed platform for sequential decision making in the world of power system.

See the Disclaimer to have a more detailed view on what is and what is not this package. For example this package should not be used for detailed power system computations or simulations.

Usage

Once installed (don't forget, if you used the optional virtual env above you need to load it with source venv/bin/activate) you can use it as any python package.

1. As a grid2op backend (preferred method)

This functionality requires you to have grid2op installed, with at least version 0.7.0. You can install it with

pip install grid2op>=1.6.4

Then you can use a LightSimBackend instead of the default PandapowerBackend this way:

import grid2op
from lightsim2grid import LightSimBackend
env_name = "l2rpn_case14_sandbox"  # or any other name.
env = grid2op.make(env_name, backend=LightSimBackend())

# do regular computation as you would with grid2op

And you are good to go.

2. replacement of pandapower "newtonpf" method (advanced method)

It is also possible to use directly the "solver" part of lightsim2grid.

Suppose you somehow get:

  • Ybus the admittance matrix of your powersystem, for example given by pandapower (will be converted to a scipy sparse.csc_matrix )
  • V0 the (complex) voltage vector at each bus, for example given by pandapower
  • Sbus the (complex) power absorb at each bus, for example as given by pandapower
  • ref Ids of the slack buses (added in version 0.5.6 to match recent pandapower changes)
  • pv list of PV buses
  • pq list of PQ buses
  • ppci a ppc internal pandapower test case (or dictionary, is used to retrieve the coefficients associated to each slack bus)
  • options list of pandapower "options" (or dictionary with keys max_iteration and tolerance_mva)

You can define replace the newtonpf function of pandapower.pandapower.newtonpf function with the following piece of code:

from lightsim2grid.newtonpf import newtonpf
V, converged, iterations, J = newtonpf(Ybus, V, Sbus, ref, weights, pv, pq, ppci, options)

This function uses the KLU algorithm (when available) and a c++ implementation of a Newton solver for speed.

Installation (from pypi official repository, recommended)

Since version 0.5.3, lightsim2grid is can be installed like most python packages, with a call to: python -m pip install lightsim2grid

It includes faster grid2op backend and the SuiteSparse faster KLU solver, even on windows. This is definitely the easiest method to install lightsim2grid on your system and have it running.

Note though that these packages have been compiled on a different platform that the one you are using. You might still get some benefit (in terms of performances) to install it from your on your machine with the proper compilations flags ( see section 6.1 Customization of the compilation for more information)

Pypi packages are available for linux (x86_64 cpu architecture), windows (x86_64 cpu architecture) and macos (x86_64 cpu architecture) with python versions:

  • 3.7
  • 3.8
  • 3.9
  • 3.10 (lightsim2grid >= 0.6.1)
  • 3.11 (lightsim2grid >= 0.7.1)
  • 3.12 (lightsim2grid >= 0.7.5)
  • 3.13 (lightsim2grid >= 0.9.2.post2)

As from version 0.8.2, we also distribute windows arm64 and macos arm64 binaries of lightsim2grid that can be installed directly with pip too (requires python >= 3.8 for macos and python >= 3.9 for windows). We do not currently produce arm64 (aarch64) linux binaries because it takes too long to build. If you really want them, let us know and we'll see what we can do.

NB on some version of MacOs (thanks Apple !), especially the one using M1 or M2 chip, lightsim2grid is only available on pypi starting from version 0.7.3 We attempted to deliver arm64 lightsim2grid version but we could not test them. So if you want a reliable working and tested version of lightsim2grid on newest version of macos (with M1 or M2 chips for example) please use lightsim2grid >= 0.8.2

NB we do not currently build any 32 bits lightsim2grid libraries.

Installation (from source, for more advanced user)

See the official documentation at Install from source for more information

Benchmarks

Lightsim2grid is significantly faster than pandapower when used with grid2op for all kind of environment size (sometimes more than 30x faster - making 30 steps while pandapower makes one).

If you prefer to use the dedicated lightsim2grid SecurityAnalysis or TimeSerie classes you can even expect another 10-20x speed ups compared to grid2op with lightsim2grid (sometimes more than 300x faster than grid2op with pandapower).

For more information (including the exact way to reproduce these results, as well as the computer used), you can consult the dedicated Benchmarks page on the documentation.

Philosophy

Lightsim2grid aims at providing a somewhat efficient (in terms of computation speed) backend targeting the grid2op platform.

It provides a c++ api, compatible with grid2op that is able to compute flows (and voltages and reactive power) from a given grid. This grid can be modified according to grid2op mechanism (see more information in the official grid2Op documentation ).

This code do not aim at providing state of the art solver in term of performances nor in terms of realism in the modeling of power system elements (eg loads, generators, powerlines, transformers, etc.).

Lightsim2grid codebase is "organized" in 4 different parts:

  1. modify the elements (eg disconnecting a powerline or changing the voltage magnitude setpoint of a generator, or any other action made possible by grid2op)
  2. generate the Ybus (sparse) complex admitance matrix and Sbus complex injection vector from the state of the powergrid (eg physical properties of each elements, which elements are in service, which power is produce at each generators and consumed at each loads, what is the grid topology etc.)
  3. solving for the complex voltage V (and part of the Sbus vector) the equation V.(Ybus.V)* = Sbus with the "standard" "powerflow constraints" (eg the voltage magnitude of V is set at given components, and on other it's the imaginary part of Sbus)
  4. computes the active power, reactive power, flow on powerllines etc. from the V and Sbus complex vectors computed at step 3).

Step 1, 2 and 4 are done in the GridModel class.

Step 3 is performed thanks to a "powerflow solver".

Using a custom powerflow solver

For now some basic "solver" (eg the program that performs points 3. above) are available, based on the Gauss Seidel or the Newton-Raphson methods to perform "powerflows".

Nothing prevents any other "solver" to be used with lightsim2grid and thus with grid2op. For this, you simply need to implement, in c++ a "lightsim2grid solver" which mainly consists in defining a function:

bool compute_pf(const Eigen::SparseMatrix<cplx_type> & Ybus,  // the admittance matrix
                CplxVect & V,  // store the results of the powerflow and the Vinit !
                const CplxVect & Sbus,  // the injection vector
                const Eigen::VectorXi & ref,  // bus id participating to the distributed slack
                const RealVect & slack_weights,  // slack weights for each bus
                const Eigen::VectorXi & pv,  // (might be ignored) index of the components of Sbus should be computed
                const Eigen::VectorXi & pq,  // (might be ignored) index of the components of |V| should be computed
                int max_iter,  // maximum number of iteration (might be ignored)
                real_type tol  // solver tolerance 
                );

The types used are:

  • real_type: double => type representing the real number
  • cplx_type : std::complex<real_type> => type representing the complex number
  • CplxVect : Eigen::Matrix<cplx_type, Eigen::Dynamic, 1> => type representing a vector of complex numbers
  • RealVect : Eigen::Matrix<real_type, Eigen::Dynamic, 1> => type representing a vector of real numbers
  • Eigen::VectorXi => represents a vector of integer
  • Eigen::SparseMatrix<cplx_type> => represents a sparse matrix

See for example BaseNRSolver for the implementation of a Newton Raphson solver (it requires some "linear solvers", more details about that are given in the section bellow)

Any contribution in this area is more than welcome.

NB For now the "solver" only uses these above information to perform the powerflow. If a more "in depth" solution needs to be implemented, let us know with a github issue. For example, it could be totally fine that a proposed "solver" uses direct information about the elements (powerline, topology etc.) of the grid in order to perform some powerflow.

NB It is not mandatory to "embed" all the code of the solver in lightsim2grid. Thanks to different customization, it is perfectly possible to install a given "lightsim solver" only if certain conditions are met. For example, on windows based machine, the SuiteSparse library cannot be easily compiled, and the KLUSolver is then not available.

NB It would be totally fine if some "lightsim2grid" solvers are available only if some packages are installed on the machine for example.

Using custom linear solvers to solve powerflows

In lightsim2grid (c++ part) it is also possible, thanks to the use of "template meta programming" to not recode the Newton Raphson algorithm (or the DC powerflow algorithm) and to leverage the use of a linear solver.

A "linear solver" is anything that can implement 3 basic functions:

  • initialize(const Eigen::SparseMatrix<real_type> & J) : initialize the solver and prepare it to solve for linear systems J.x = b (usually called once per powerflow)
  • ErrorType solve(const Eigen::SparseMatrix<real_type> & J, RealVect & b, bool has_just_been_inialized): effectively solves J.x = b (usually called multiple times per powerflow)
  • ErrorType reset(): clear the state of the solver (usually performed at the end of a powerflow to reset the state to a "blank" / "as if it was just initialized" state)

Some example are given in the c++ code "KLUSolver.h", "SparLUSolver.h" and "NICSLU.h"

This usage usually takes approximately around 20 / 30 lines of c++ code (not counting the comments, and boiler code for exception handling for example).

Citing

If you use this package in one of your work, please cite:

@misc{lightsim2grid,
    author = {B. Donnot},
    title = {{Lightsim2grid - A c++ backend targeting the Grid2Op platform. }},
    year = {2020},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://GitHub.com/Grid2Op/lightsim2grid}},
}

Miscellaneous

Customization of the compilation

Enable NICSLU

For that, you need to declare the environment variables PATH_NICSLU that points to a valid installation of the NICSLU package (see https://github.com/chenxm1986/nicslu). For example: export PATH_NICSLU=/home/user/Documents/nicslu/nicslu202103

Enable CKTSO

For that, you need to declare the environment variables PATH_CKTSO that points to a valid installation of the NICSLU package (see https://github.com/chenxm1986/cktso). For example: export PATH_NICSLU=/home/user/Documents/cktso

Enable 03 optimization

By default, at least on ubuntu, only the "-O2" compiler flags is used. To use the O3 optimization flag, you need to specify the __O3_OPTIM environment variable: set __O3_OPTIM=1 (or $Env:__O3_OPTIM=1 in powershell) before the compilation (so before python3 setup.py build or python -m pip install -e .)

This compilation argument will increase the compilation time, but will make the package faster.

Enable "-march=native" optimization

By default, for portability, we do not compile with -march=native flags. This lead to some error on some platform. If you want to further improve the performances.

You can set __COMPILE_MARCHNATIVE=1 to enable it before the compilation (so before python3 setup.py build or python -m pip install -e .)

Profile the code

This is a work in progress for now. And it is far from perfect, and probably only work on linux.

See https://github.com/xflash96/pybind11_package_example/blob/main/tutorial.md#perf for more details.

cd benchmarks
perf record ./test_profile.py
perf report

Local testing

And some official tests, to make sure the solver returns the same results as pandapower are performed in "lightsim2grid/tests"

cd lightsim2grid/tests
python -m unittest discover

This tests ensure that the results given by this simulator are consistent with the one given by pandapower when using the Newton-Raphson algorithm, with a single slack bus, without enforcing q limits on the generators etc.

NB to run these tests you need to install grid2op from source otherwise all the test of the LightSim2gridBackend will fail. In order to do so you can do:

git clone https://github.com/Grid2Op/grid2op.git
cd Grid2Op
pip3 install -U -e .
cd ..

Tests performed automatically

Some tests are performed automatically on standard platform each time modifications are made in the lightsim2grid code.

These tests include, for now, compilation on gcc (version 8, 12 and 13) and clang (version 11, 16 and 17).

NB Intermediate versions of clang and gcc (eg gcc 9 or clang 12) are not tested regularly, but lightsim2grid used to work on these. We suppose that if it works on eg clang 10 and clang 14 then it compiles also on all intermediate versions.

NB Package might work (we never tested it) on earlier version of these compilers. The only "real" requirement for lightsim2grid is to have a compiler supporting c++11 (at least).

Known issues

Storage units

There are discrepency in the handling of storage units, when the are not asked to produce / consume anything (setpoint is 0.) between pandapower and lightsim2grid only in the case where the storage unit is alone on its bus.

Pandapower does not detect it and the episode can continue. On the other side, lightsim2grid detects it and raise an error because in that case the grid is not connex anymore (which is the desired behaviour).

Compilation issue

On the clang compiler (default one on MacOS computer) it is sometime require to downgrade the pybind11 version to 2.6.2 to install the package.

You can downgrade pybind11 with: python -m pip install -U pybind11==2.6.2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lightsim2grid-0.10.2.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

lightsim2grid-0.10.2-cp313-cp313-win_arm64.whl (539.2 kB view details)

Uploaded CPython 3.13Windows ARM64

lightsim2grid-0.10.2-cp313-cp313-win_amd64.whl (599.4 kB view details)

Uploaded CPython 3.13Windows x86-64

lightsim2grid-0.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (868.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lightsim2grid-0.10.2-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lightsim2grid-0.10.2-cp313-cp313-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

lightsim2grid-0.10.2-cp312-cp312-win_arm64.whl (539.2 kB view details)

Uploaded CPython 3.12Windows ARM64

lightsim2grid-0.10.2-cp312-cp312-win_amd64.whl (599.3 kB view details)

Uploaded CPython 3.12Windows x86-64

lightsim2grid-0.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (868.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lightsim2grid-0.10.2-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lightsim2grid-0.10.2-cp312-cp312-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

lightsim2grid-0.10.2-cp311-cp311-win_arm64.whl (539.1 kB view details)

Uploaded CPython 3.11Windows ARM64

lightsim2grid-0.10.2-cp311-cp311-win_amd64.whl (598.3 kB view details)

Uploaded CPython 3.11Windows x86-64

lightsim2grid-0.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (865.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lightsim2grid-0.10.2-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lightsim2grid-0.10.2-cp311-cp311-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lightsim2grid-0.10.2-cp310-cp310-win_arm64.whl (538.3 kB view details)

Uploaded CPython 3.10Windows ARM64

lightsim2grid-0.10.2-cp310-cp310-win_amd64.whl (597.7 kB view details)

Uploaded CPython 3.10Windows x86-64

lightsim2grid-0.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (864.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lightsim2grid-0.10.2-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lightsim2grid-0.10.2-cp310-cp310-macosx_10_9_x86_64.whl (790.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

lightsim2grid-0.10.2-cp39-cp39-win_arm64.whl (540.5 kB view details)

Uploaded CPython 3.9Windows ARM64

lightsim2grid-0.10.2-cp39-cp39-win_amd64.whl (585.4 kB view details)

Uploaded CPython 3.9Windows x86-64

lightsim2grid-0.10.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (864.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

lightsim2grid-0.10.2-cp39-cp39-macosx_11_0_arm64.whl (724.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

lightsim2grid-0.10.2-cp39-cp39-macosx_10_9_x86_64.whl (791.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

LightSim2Grid-0.10.2-cp38-cp38-win_amd64.whl (597.6 kB view details)

Uploaded CPython 3.8Windows x86-64

LightSim2Grid-0.10.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (863.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

LightSim2Grid-0.10.2-cp38-cp38-macosx_11_0_arm64.whl (723.7 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

LightSim2Grid-0.10.2-cp38-cp38-macosx_10_9_x86_64.whl (790.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

LightSim2Grid-0.10.2-cp37-cp37m-win_amd64.whl (592.1 kB view details)

Uploaded CPython 3.7mWindows x86-64

LightSim2Grid-0.10.2-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (868.1 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

LightSim2Grid-0.10.2-cp37-cp37m-macosx_10_9_x86_64.whl (784.2 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file lightsim2grid-0.10.2.tar.gz.

File metadata

  • Download URL: lightsim2grid-0.10.2.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for lightsim2grid-0.10.2.tar.gz
Algorithm Hash digest
SHA256 f8e2fa8119da790d908c81fe1d927b972a3a540d944dd1afd3a75069a58329bc
MD5 5480033d56c58d5b533f25232a9ad28b
BLAKE2b-256 968dcff0242b2bfdec4914768f3a283a0ce79b186291bb0aaa5c817edf867e73

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 48bca66b90725537a9ac3a455af155e992e57faa618479dd9b8337213f544361
MD5 708e7f1302a2237bf171ce503e40f25d
BLAKE2b-256 4e6f2ef790ba4d5b953a9f53b1b6233193b067c3eecc983f1c1f9498fc2ffdcc

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fe2d9ea4ade0edf4b9828dd3e71e8e636dbec1df8645364b749867d72e4c7d96
MD5 72e6a7e1eaa4cdb1d25ae10bedd5c41c
BLAKE2b-256 2c0644f8e54bf2e69196997fbf92c25912e208b63827274c88f0a2cd6ad64166

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c3e3f50f61f6270f6d821370c84c4103a272d355d0cb2973370a8e761641e89
MD5 812cb76d34afafdd1048526606d02275
BLAKE2b-256 d1ac008bad666293f7ec3f66828ab8b566b21a8ae77c677bd35e062365061366

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f59fb2251e525bd90743a2dfa7d0ec7c5d8390c38a968ab13373ba58ff1104e
MD5 5e0f1c08904502fdd9ff82cb9803eeff
BLAKE2b-256 a11bb0e9d8ed90f1e1350a4f38b20bcb847fdfc2b67f4c5fc7134e159440c202

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp313-cp313-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3b07fcec0d6ecd7db7521e01590ff0ec991d3895386bdd1f775dc056e4de9ed1
MD5 1c63ff2dc5a0aa5a1cab43774c517631
BLAKE2b-256 f3e6fdf7fce244aa7fb3c5d1157de0b9c1b30160a4921a10c9887e1041ce4aef

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 11edcacb86c5e3cdfef197c14d768e2867f7dafacde2eb02a59f2a01fb42e580
MD5 20cacf30b931ef0ad8befed07ea449ca
BLAKE2b-256 346de060ca1c0fdd8fd35137a32be0a75de615f74af195a0e54490d095da3ee7

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b4093723b0e4af46e88007c2b520a8eae1f2e93f63e49ecd0ee358456bc21a91
MD5 fe68a1f46624c16bbca49cbbd5ef7d41
BLAKE2b-256 7eba066b302b6493d9661843c94f2339e4ab8ea441f30eec25cf15292901fe0f

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12dab7bac20703acf7bd65c8688aa4a9b1cc794ce8fd5ecf46bdadb854d97976
MD5 c4f498a15e847ea7e2fc2baa7051a7f2
BLAKE2b-256 23d85682e21adc550e5919664c27d27288df1e7ab220ebf6ad04132dc0cc75ec

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13b1d85263232f32c01434eb3e2c297c62a6fac3e3cdbfe096518a52c3190559
MD5 caf8678bf6693a74fab689301239dd6b
BLAKE2b-256 12d72fe2f2c20715853d4602369854a21d9409211e3dfc460ba26d56181118f7

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a4721296b03b7988ae28482f78fee475bb6ceef1a455df35300ab82a4d26c71c
MD5 aa3dabd887c91e549ff7f084563adf30
BLAKE2b-256 970096bc669e2f907f5903bd53262fcd68c1b4e737c94f4d465cd27f7f533093

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 fe45fd3542c15960577dfd03f26609cc4db6b3326586484ada1641ef2ea3d9d8
MD5 00da9027fcc570b52cbd7c687ffdcb36
BLAKE2b-256 134ed9a4c15c7fbc02672a9f2543ec536e8cd91e422723f54e5467e5de0001ec

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1eef216a1a09bcbecca503f44980c6550b4a9251d7188d866a100d6a49ca03b7
MD5 3c1873389d9be1dcd3ec6a6629c7021f
BLAKE2b-256 06b4765f7a4465481124c469a3757479ba2e65633e35c6da06dbeec8204c91d3

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36c421070acf789b51d750ff7ba813cb7b21a959264f09de43d0e0175f186159
MD5 2d9c3642ba81a72311be0366cdd33af8
BLAKE2b-256 d64c8e24df4f037093888457688f46549263274a6947b4a010d60c793705783d

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81647ed93ff7ad3d6d4b38e1168e1895571b063a3c71ff3e993cba6ff58f46ec
MD5 18b8c44238a1ae4db58c1e8f0a4bb9d3
BLAKE2b-256 2658975e39be90dc9946532b15d91cbf128bdc6863ec3818283b791a0bf8d2de

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c409d6768f6fa363984f52aa9734106d7fc1fad963f6886e41d0602099b8b641
MD5 bd8fae00eebc6c473b5a7dc40c1f92e9
BLAKE2b-256 f7a8ff1d7ab496abe12baca26b136f5a72cf17a621ae51b8f02adbb8778cd8b9

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 be3bc107f9791d56b12c081048eeddd71b767e243f8f53bd02be829a1108b95c
MD5 e8070f0249ae53a96dd2665878666d6e
BLAKE2b-256 543b9ded2cfe7861c3409c144590370f6066b85e271ed1785c57d350eda3aba7

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dc29ebce2db960b38767e426d8873a5090734ba0abd51d439d215a5559a00d81
MD5 ac579b4ce883cbb9e5f26f5a0632a217
BLAKE2b-256 28686d461b4dbb6ac91cf5cf270bf71074a82e4516a9531a3e2202af3a6b308c

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9b5c1660344076213382c3fa8360f121d86c53353440f03344a5b0ae7b233bd
MD5 97b1a47277873788e7783c63917722d8
BLAKE2b-256 c38ce93aefa1bce86843af3060b6957a1c0328f6174082fdbac9e83059b62d51

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1dc661f595608424743cf46a36709dbd09a82047bd0ba2a3aad0ed36f1e189ee
MD5 e1cf71e5553e971895f060339e3986a1
BLAKE2b-256 d4715226ee5c28a5ab289af23c41107e095c9c4df6c2c898fee39a54d80a06b2

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ee74a84999495d2397aeb6094ab2ef9d9679af5d2acf8fd4a3629ba75426430c
MD5 84168ac580263a46c1bd028b3efa4cbe
BLAKE2b-256 bbd9cb65c570cfda1ae2c04a1f9e2628eb3d414492c73d82532b960b3d001a76

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 66c7d60592f9db5555d4a8481fdbe1f4316ebfbb90e1c5f548e4ea94146c22c2
MD5 a7d88902c79ad781b3e1bf0b5be0ab8e
BLAKE2b-256 849286492bb1a1e043bdf74790add64f89e07bee55922a77004330c911800350

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6e5f736099150e80646c8093ae87275d3c26ba9443d44157d3d3c8db36dd090b
MD5 dc7fb6726110b6d4161ed1d171d612cd
BLAKE2b-256 886f05a8a68bf0ad95822a5f68b9b2620263656b7faa0e29acd75d884ed1ba88

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7fccaa064a0cb5003714d84c31aa051ebd17152a07a68ee6e7acc6f9b5a0224c
MD5 50d17283c15206f84318798821b210c2
BLAKE2b-256 1ed09a2a8c71d025cc088e8ea2b66396d2e885c3be19e36c0099d70b6a88d2a5

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 311d83f6d33f9eb743de48da6358881043e751ddf6152c12338473cb9f717c6d
MD5 7b606c6ff50faa3ad8230ddd0dd16437
BLAKE2b-256 664705684a065d925fa0be5db8f84c432727014b1a5057ce3cc720f2e9078346

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0eae3d519ab6421281dd89f3d64b91a77c7dd788505f5470134a26b326a865b2
MD5 7d5dfc8082e70883d741465fcdaf33f0
BLAKE2b-256 8942f5842afe648180493f0fe22b09e2a7b46aec427ca00a9293578cf03f3437

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.2-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6945ea40e52574523e2fa2a38717012d8218181b38740eca03f0f845ab560c7b
MD5 0d1c996380358988062e56e597116386
BLAKE2b-256 73579325bb366a48e09f1abe0b1effa40ba02a6f4c65e3bdd9bb8633a30cef42

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a3330b860d547da2bb0c77515be0b3901292f033cd985cc51d3decc9aa6fc3b9
MD5 c187f9dd97885458a96b3c734780f2ff
BLAKE2b-256 e47f9c2a3780e9dcd06ff0d088c35b5b8a216873b7cf28b6b411be8bec1d7f30

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e66c463eb30b1e4e396461e6941e12639a0b0f6c01cb8dc01976fc7c0ffa947
MD5 b4f705a9846e290961c83901605db367
BLAKE2b-256 64eb78c80a4d4f79e53bf913dbe0a7fd3e8c70e57dc59cf93da9303de701cf5f

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0a291396d53cac97c066387feeae4bcb305a8fefcdb3fcee71cf40bb5627b573
MD5 5b38891318c989664537df94c63f9e6d
BLAKE2b-256 be65909a0675d3118d3bbc55775eb07d0789a8d399316583a0b65e3c3bf5b567

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.2-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1648b56c6e73936cbdf77ea622789939eb2ff161d3b624d5a78179d3f7dd6736
MD5 093e41a12e7939c81f2c8721d87461c9
BLAKE2b-256 50e6e2cfe5a28e40446e93b4fc3a3bb0068e5f32a4cd112fd601713146ab1134

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.2-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.2-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dab1af08d7c07f5d6c17315c3b745a44966e63d2757befd77da95b0daa15f2d1
MD5 a916596aa9f6f22b583ab90c4c97ce8e
BLAKE2b-256 f1136c56a6174a0cbdc0340146c2590d05df6ffa635f2de4174b2ebbc0458b29

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c396c697efc363babf1631cbc45e23ade2ab378ef0eb48fa12d271af7843b9fb
MD5 caec01af0ae417620f389729f4804b2e
BLAKE2b-256 6659dc7108cf9146f19143bcd45871de061d5560ebc436ef783762fd73c0db3d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page