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.11.0.dev1.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.11.0.dev1-cp313-cp313-win_arm64.whl (539.2 kB view details)

Uploaded CPython 3.13Windows ARM64

LightSim2Grid-0.11.0.dev1-cp313-cp313-win_amd64.whl (599.6 kB view details)

Uploaded CPython 3.13Windows x86-64

LightSim2Grid-0.11.0.dev1-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.11.0.dev1-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

LightSim2Grid-0.11.0.dev1-cp313-cp313-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

LightSim2Grid-0.11.0.dev1-cp312-cp312-win_arm64.whl (539.2 kB view details)

Uploaded CPython 3.12Windows ARM64

LightSim2Grid-0.11.0.dev1-cp312-cp312-win_amd64.whl (599.6 kB view details)

Uploaded CPython 3.12Windows x86-64

LightSim2Grid-0.11.0.dev1-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.11.0.dev1-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

LightSim2Grid-0.11.0.dev1-cp312-cp312-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

LightSim2Grid-0.11.0.dev1-cp311-cp311-win_arm64.whl (539.3 kB view details)

Uploaded CPython 3.11Windows ARM64

LightSim2Grid-0.11.0.dev1-cp311-cp311-win_amd64.whl (598.6 kB view details)

Uploaded CPython 3.11Windows x86-64

LightSim2Grid-0.11.0.dev1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (865.0 kB view details)

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

LightSim2Grid-0.11.0.dev1-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

LightSim2Grid-0.11.0.dev1-cp311-cp311-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

LightSim2Grid-0.11.0.dev1-cp310-cp310-win_arm64.whl (538.4 kB view details)

Uploaded CPython 3.10Windows ARM64

LightSim2Grid-0.11.0.dev1-cp310-cp310-win_amd64.whl (597.9 kB view details)

Uploaded CPython 3.10Windows x86-64

LightSim2Grid-0.11.0.dev1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (863.4 kB view details)

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

LightSim2Grid-0.11.0.dev1-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

LightSim2Grid-0.11.0.dev1-cp310-cp310-macosx_10_9_x86_64.whl (791.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

LightSim2Grid-0.11.0.dev1-cp39-cp39-win_arm64.whl (540.6 kB view details)

Uploaded CPython 3.9Windows ARM64

LightSim2Grid-0.11.0.dev1-cp39-cp39-win_amd64.whl (585.5 kB view details)

Uploaded CPython 3.9Windows x86-64

LightSim2Grid-0.11.0.dev1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (864.4 kB view details)

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

LightSim2Grid-0.11.0.dev1-cp39-cp39-macosx_11_0_arm64.whl (724.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

LightSim2Grid-0.11.0.dev1-cp39-cp39-macosx_10_9_x86_64.whl (791.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

LightSim2Grid-0.11.0.dev1-cp38-cp38-win_amd64.whl (597.7 kB view details)

Uploaded CPython 3.8Windows x86-64

LightSim2Grid-0.11.0.dev1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (863.1 kB view details)

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

LightSim2Grid-0.11.0.dev1-cp38-cp38-macosx_11_0_arm64.whl (723.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

LightSim2Grid-0.11.0.dev1-cp38-cp38-macosx_10_9_x86_64.whl (790.6 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

LightSim2Grid-0.11.0.dev1-cp37-cp37m-win_amd64.whl (592.2 kB view details)

Uploaded CPython 3.7mWindows x86-64

LightSim2Grid-0.11.0.dev1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (868.3 kB view details)

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

LightSim2Grid-0.11.0.dev1-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.11.0.dev1.tar.gz.

File metadata

  • Download URL: lightsim2grid-0.11.0.dev1.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.11.0.dev1.tar.gz
Algorithm Hash digest
SHA256 d7eccbd0873133e7bae7af3a98cab546ace841cd43495f987cc00029c9bd2b60
MD5 96d8bb0817f327ccb07a7637d6218277
BLAKE2b-256 3fb00d73d18784cb283f41fa14ab2dfd945ae19cd1e0d5bf6846076d8b8f1aac

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 cbf50fe282ec60fc6b2bb382b1826ea2362d2bf7689a9d00da4a9274992a29cf
MD5 5d31bb37c6497ef9ba98de51d79bd015
BLAKE2b-256 d0b9e4a42e28e9fdedb3b5f7f90d0968cb84582a11b6c7f0ffa1d8afd640deb0

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2ac9a70f0fe5b92ca666f810454ceda024d2682dfde3a98e703f5b4bd1eb906c
MD5 2bdd6447d1622d19886a9890d95f23ef
BLAKE2b-256 ffa49b57b6e9257b229435a3e2b5fa598a05a976073bbb33ac00fa6563dfc6e4

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db66a931d267f69b56335a6eba94bb6ce4eec868d3b2b3e3030ca33756bd25cf
MD5 ab5e78f13470927047c256657f60c694
BLAKE2b-256 d85e9cf2a25c0fc1528c0b89dfa696a5b23760d329ffed28b9a6739dd01674d7

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d89f07f2d493b08c74fa143c2bdade9211db71ff218594c05bfc8c50a5cfe0b
MD5 8863096a08078dd8dd25d8a0de38197b
BLAKE2b-256 7d2a85b3eadde6b24e7337d227e5f4f6e47dcafd70580732706f5265c2577e64

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp313-cp313-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 918c7b8b20799483755fd3a444f8910b2b3f7a490a97518a6dad83aa64d76816
MD5 3e95a08898a41fd1a6ca0fa8b7ce5838
BLAKE2b-256 368dcfb48123e0c8bfed52df246052f25150d716f10cc23717e74ead9e05686d

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 1cb2b73e5addfbb9087f8cdf2578cc7821b6fb565d34183856416e6fbd87c287
MD5 1b6bc312198755a726212de5f0e7d0be
BLAKE2b-256 22324ef53b8e8212aaa62e3f8fa77f8b1957303a6e743f89054a3021563e3865

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9d2ca5b18eb47b2625afebe76be63c8814b27ff142147219f50b610249b03d5f
MD5 0f0359b8402401c5ba0c251f99b46a7c
BLAKE2b-256 e1ec0dee4a826fbff24c2582e297ce6155e81607641ece3e036aeff4ed0a37aa

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c982f51b0f11d1f5358ec8a19774af513d1db08561ca4aae791f8c17754f576c
MD5 3938f9d8053bfb77dd32fae566b7d9e5
BLAKE2b-256 02b02e8fe388fe3b97cf1fd6d52f61c09a637fc34b3655e723fd524fa2ac3d6f

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 abfa123ff0405c37299217a5aa844f0fbd995d049f1d5b18c446e2901cfa4bd1
MD5 c174533f9cb21cfc95fee505ac15b198
BLAKE2b-256 0effbd281fa71d78d01dc38619cb30dd84a6bad94c7be56448ba4218452d9534

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f8c9001baf07565fd20a5eccbd9f335bc02cb8ca458b6cd2674266b593c1f91c
MD5 f4d461646105c68849ceec755311ec6b
BLAKE2b-256 4d80d0def2894021e9514e28e9049034542e6ff7054f8ff36ed7a6b84b796cc8

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 622ca7c788998046d28502eccd4ef1206f027483913c3bde263fbcdca809a3b8
MD5 70c72210be50bc4b9f1e3f024fa0c639
BLAKE2b-256 c220198bdbed83cdffeefdf093e3a7f4006064909f184c10c15723eb9f44c08b

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0d7759a20d5556aaa20efbc88bb2ae91336fc7e2f76f653d16ee9b93268b5f0a
MD5 024afe534108fe8af51ca11e591abf73
BLAKE2b-256 379e0c2af2633954eb4789970d5ec7d569807dc29aabf26260052728d2494dfd

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc5c08414756973a0a1dd3c59454d4b52f6545268ff25a385c1c1047db46919e
MD5 ffa86be048dd2d3e8f4e7d1df6e3ab11
BLAKE2b-256 5f4d96c60909659f1487738c9edd32c3036e3140a86fa7b013591dac8ac526ba

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a610c481e952fe6d65729c5a5fbedfaac718c30a5c04705c2790623579c337f9
MD5 beb926a5ab16dac17bd89fd8ac2690dd
BLAKE2b-256 489901424c362bec005ef0617b3b91db75a4a7424c2e8b4379e00f81ef89a8c0

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aa25fd5ebbc594f0eb37278b1cd2dccf37ee100840a2c208b16eb2d831345783
MD5 3e4b522b17ef8f658cf5e98aeaf8d46b
BLAKE2b-256 97a2bd65c3b4175a5a5c7698e543296a3420e177ef47b608bc84b663dce14fd2

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 74467bc3380dbde5424dd2233eb77e936ac4327bb455011c3073177f9b75f123
MD5 af57a17540a6b1fd8db8884aab15df21
BLAKE2b-256 1f4b17ca348e90b7b4207701c1ae7ccea0f0cd7b6660bc577a7ee5bcfd7a95fc

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3c3cd8f3d08ef76b8a444ed0d84cd0a52d172bc8fd2d076890e55236b1207189
MD5 f728f1e0366ee1ec40985da9c8d43d83
BLAKE2b-256 194b3649fd014b093cf4efc22f6c5c4e6ddb1500293a8e951bbd1ac6c12344de

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3a4818358adddd2fd29dc09cc65154b5ca8a20516a11abb5177c18ddd5ecdbfb
MD5 15e7fc8988bcf508509bf27a9f7079b3
BLAKE2b-256 d335525d2b73ed0c4555e57f64fd668d7e9636eeb1f071d5866102e087c97c58

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14a225aee549d8b314ec25b034c60fe8443a8a061e7b4394b9d86dad7f9a6577
MD5 7ee46a9f9b3992984d15033bec265c81
BLAKE2b-256 9f4c736ff9d49997835e5f1237f025d9986f4e30d486dd1a8ce27197a382881e

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 49cb8ac1bb2c3ec137db431adaf43216a991342728106ed401e8340659dc90b2
MD5 2f08c9ab47f501a5675630772d52d154
BLAKE2b-256 c547e5f587c91addd058244f68fc51758b4f85eb036945cb9a12b56c9ab1f3fe

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 f923c3b7267d955c8aed390ec2b018892dde0f083c59f9c72b5949b5eb24d101
MD5 149a739998cd3ab31e1d72acec625659
BLAKE2b-256 9df6d7360022933825c8bf79e289a0ca4ea77add0898d570ee9676d8f2054411

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fa50bf034d691aa1ff6cb7c37f6abbb8e73739ab2bec3ee01502fea121a46b65
MD5 0e9c5b9087c945665fd8c9277bb62f6f
BLAKE2b-256 bbd2b8e040a66e2ed096b71d1e3426e3bee0c9d366a642a99b9e80d053c34c4a

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ea83b551dcabc85129abed323c67dc782fef3be75137258503274865254a61d
MD5 32da687c9125e100cd38b32a68f9a246
BLAKE2b-256 05c9abe75c9596a71ef89cf539d4c5df4fa9c30fff8fc8b9837e6d624ace7fe5

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6d303b501b76e675bbd27b08fa36be2f9e7e7d6741e40e40ba7bff60d3c5b34
MD5 0410d72d2ae6ec19bde1e1a15fdc721d
BLAKE2b-256 473709438239bdcbc9a04a23e48cdc80fc61120e1bc54488ccdaa74a995c81b9

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d311774adbdffceba2c72d44acc839007a8635f630e97e62450bbc1caa20d422
MD5 c622aad5802d69a364891ec572c6834a
BLAKE2b-256 bcd423432224ce2e7a34e8e7c756cedede07240ffa25b7fdd346442ad12a0816

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a14169db8a92628e7ff0b4c3b4ca5e22c09041071246dd9a0e64b62138e291d4
MD5 b4419cb86b6e9a5c68628a3347fb5f3d
BLAKE2b-256 3a18869db9775732077b0daf6b1fddd604d5d3df0f4babf13aa4bbad2f1a1274

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f92fdad2fea3ed836e309c24d03bc527cc735d09ac95eaf5d22096929f7bebd3
MD5 8bd49b88bd2830840160bd5fd513b1ba
BLAKE2b-256 58dd7937ec8ac25cd335e5af2b6f22bd80d782226dd56d9a5802439d3d11e8ba

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93da0c1b7f4413ae0e5d2628a6173efa6e193ca67a7d7e09e4cf1d81ab3aa955
MD5 72f6b5892469daffa79fd107c83b3ea3
BLAKE2b-256 ea5d03293850b24f999677a79656625058d03d638a074fdc0fdc0e35680f19c9

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 874e4c10f92f7133823681fef2a4374579dce83e94e2e7a793fc6f5f27946430
MD5 ad30f594c83258245350dfebcd2a275f
BLAKE2b-256 1acffbeaf1fd1b1bee027f2196dff174376f113a0a44456f12f0ef3476185c0a

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 bcbe3c2d0d0ff1bddc5e913c3ecdab74bae0b72b00e766a6bf5b14cc56e95a67
MD5 7e10c8873aa6e556319078a56421c597
BLAKE2b-256 b6e560c920be7f0499cb19f130389129d01b13414fc6ff106298140e151f91a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a099f2406a12bb2f26f70992dcd9df6c3af19c15ab3f11e0e4c9c77b9a3d23aa
MD5 cffa99618539c73318fdc7c401d870f1
BLAKE2b-256 9b76e2956f1ac3b34f8c2e558e233deac92831e496c43222fac8a72ddde33d17

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.11.0.dev1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.11.0.dev1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 786e7453ae4ed9759bf1a5f0c11f07ad31482f3c8dccadd4dae46bfe6c62ebd1
MD5 ce8f08abeb5a5c0ebd482bcec574601e
BLAKE2b-256 fdc508bac9ceafad5f0deb4490a687478a8e53f16a2a20e807cb3c02b3386e28

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