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 (lightsim2grid < 0.10.4)
  • 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)
  • 3.14 (lightsim2grid >= 0.10.4)

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, 14 and 15) and clang (version 11, 20 and 21).

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 11 and clang 21 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++14 (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.12.2.tar.gz (1.7 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.12.2-cp314-cp314-win_arm64.whl (622.2 kB view details)

Uploaded CPython 3.14Windows ARM64

lightsim2grid-0.12.2-cp314-cp314-win_amd64.whl (681.4 kB view details)

Uploaded CPython 3.14Windows x86-64

lightsim2grid-0.12.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.2-cp314-cp314-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lightsim2grid-0.12.2-cp314-cp314-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

lightsim2grid-0.12.2-cp313-cp313-win_arm64.whl (608.0 kB view details)

Uploaded CPython 3.13Windows ARM64

lightsim2grid-0.12.2-cp313-cp313-win_amd64.whl (665.4 kB view details)

Uploaded CPython 3.13Windows x86-64

lightsim2grid-0.12.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.2-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lightsim2grid-0.12.2-cp313-cp313-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

lightsim2grid-0.12.2-cp312-cp312-win_arm64.whl (608.0 kB view details)

Uploaded CPython 3.12Windows ARM64

lightsim2grid-0.12.2-cp312-cp312-win_amd64.whl (665.4 kB view details)

Uploaded CPython 3.12Windows x86-64

lightsim2grid-0.12.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.2-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lightsim2grid-0.12.2-cp312-cp312-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

lightsim2grid-0.12.2-cp311-cp311-win_arm64.whl (607.2 kB view details)

Uploaded CPython 3.11Windows ARM64

lightsim2grid-0.12.2-cp311-cp311-win_amd64.whl (662.1 kB view details)

Uploaded CPython 3.11Windows x86-64

lightsim2grid-0.12.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.2-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lightsim2grid-0.12.2-cp311-cp311-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lightsim2grid-0.12.2-cp310-cp310-win_arm64.whl (607.5 kB view details)

Uploaded CPython 3.10Windows ARM64

lightsim2grid-0.12.2-cp310-cp310-win_amd64.whl (661.2 kB view details)

Uploaded CPython 3.10Windows x86-64

lightsim2grid-0.12.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.2-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lightsim2grid-0.12.2-cp310-cp310-macosx_10_9_x86_64.whl (879.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

lightsim2grid-0.12.2-cp39-cp39-win_arm64.whl (608.4 kB view details)

Uploaded CPython 3.9Windows ARM64

lightsim2grid-0.12.2-cp39-cp39-win_amd64.whl (695.4 kB view details)

Uploaded CPython 3.9Windows x86-64

lightsim2grid-0.12.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.2-cp39-cp39-macosx_11_0_arm64.whl (845.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

lightsim2grid-0.12.2-cp39-cp39-macosx_10_9_x86_64.whl (879.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

lightsim2grid-0.12.2-cp38-cp38-win_amd64.whl (660.9 kB view details)

Uploaded CPython 3.8Windows x86-64

lightsim2grid-0.12.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.2-cp38-cp38-macosx_11_0_arm64.whl (845.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

lightsim2grid-0.12.2-cp38-cp38-macosx_10_9_x86_64.whl (879.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for lightsim2grid-0.12.2.tar.gz
Algorithm Hash digest
SHA256 d5552b7a9eb5f1846d0a30899e4cde0b5484991fd1f6b399da8a94cf147294b0
MD5 f777648fb00a1109014cfd373e16e5e7
BLAKE2b-256 60daf0585bb7b9076011766a9034e8c88c993750f28b7eb426959982857d5822

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 f6cfe9d2c2ebe552820296fe7d6c157e0dd1975c7d65981429ac4302f2ab1be1
MD5 9461214c063bce36b9105a7b2f0dab69
BLAKE2b-256 19051c03bf8854faee9788075e4d62484bbec17d7f85ccac25ecb255e98c032f

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7d35fb5d99892a04b53a1afaff520ae9522e1b925eb91335762fbb20b15902a2
MD5 78f39620fd5a5eefd48010b441b5e030
BLAKE2b-256 ae8c7c10d317627fb9fb6cb8dabee98b99c90eabc64a8869168f31c0f0966149

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4bbf3aa7bc4b12e9cda16322f47f754782201a15e362528bb13511cba5257d0
MD5 e594ecfca4d466341ea26421cbf7cf4c
BLAKE2b-256 dfceb9347717576b339af944a3704c5825dd8ec8f518b1faff22f312a56be4c6

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ca3c36b9a3f427b796b923d23f5838d2735bbc77fe9f825987590778ae81b9d0
MD5 9525dc66dc84962110ba77544379fd7c
BLAKE2b-256 77d87e5f5567112f032828bf18ed0db465d0fda710625033d23b72b002d31e0b

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp314-cp314-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 eacfe4b1ade35cf72a772b973512ebed4b0b5d06c642f803f837c710b6ee9e08
MD5 f5cf318473531227369918c7ddcfa728
BLAKE2b-256 2099d4a8d71c0aef30066ec65026a3e09358b59f93847c60eeef52661c40e225

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 52980326bc2ada67ddfc6bf6a91d3b8c9869130feac5df83823780abfc3c9ff5
MD5 c817f8fb778bff95f550313ac88f9031
BLAKE2b-256 4e17a60e4bd5bb58b556b6acd019d8893dda964095c4f95a5638ada1a81e5e45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 25e675d56580c9b2e2c1011300f4e6934be18d37f2766441f10b59746dea01b1
MD5 50f5513bd5c4f7b55e89397acd6c5af9
BLAKE2b-256 00a929639cd31cbe10b0e5204ccc048d6bc5523e1edb467b4ea527edcdbeb383

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 204bfd7150854c374e5d3e09249b5000e7d164ee87d73c5d0d5bffab4a30186c
MD5 826474dcab37e628c1beed3f72e8b3c8
BLAKE2b-256 57873a369df8a59aedb87e4161cc342235ea0b4aa72c44a2da755a3bb5897d17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb1089483dd4d68e3d5a2d449ad1009dae11d3a21b16ded5b40025ced06969de
MD5 bb630b76cfb7033c22ac170d2e7684c5
BLAKE2b-256 20e000042ee0ef42ea382cc680acde243aeeed9ee43378401835e5162066bb45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c752f9bc6bd161f55502a260281fd61b7273b92c3d9eb718690d4ebeb8c60679
MD5 38c0e100096e0f49cfafef897b2a7d2e
BLAKE2b-256 69f3f5fc2ec336f536d7fd51da188705d253b07bd1cca109eefe521017f4feeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 e4537789f2933f4f6dfc1ae8b8a17ed4cfde87da35a3ec4b76307b0214e7bdb3
MD5 6e45403b1cf0f8c15a69a46d7f60a635
BLAKE2b-256 62e327956933e7051381c1a8e8e2b5b4f6986ed7e6a2757c653381ab94fcdfe7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 473361ffd5abd94c1ba53edf133251c773edc1fca9058f586ec3e409c079f389
MD5 3a532f5ad9bf12869344971a6f225ca4
BLAKE2b-256 8ad0583669346160735a24b9883a6f2b419c4104bf7afe92d93144b536558ac2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 34ddd835c2342a4fcd2ece81fdf5fd016a2e29b4daaa9353d01f1c1139e2cfba
MD5 831fa4da084d1880ae5732477cb91f3b
BLAKE2b-256 385a661f23fc16d3af040aa7e0fc1a5ee1ee9c1d93a6ececa22d8e659bb9974d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1e8d37d24991dc8b4b70b438dfb749e029dec09e21682352cecd738f62dc1249
MD5 98e22516101ceaef2be86ce9e0e64a98
BLAKE2b-256 495adefe821d81ca23614bf387011cdd3c6678edc027c551432a24a5447677c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f57bf0f5405327dcf1ec134b1adf1c220e845a843dba5341146d85f60fad500
MD5 de0282e39240c00eacbfea65dac748f5
BLAKE2b-256 8c7a819ba0ec4b95e02bf6a9882d20162b5999c3f08a0e25e5899df8c4544406

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 6b039a416d381b98ed23b8739065692783cc6293cbbf2c532709b31aa88e26ca
MD5 6edfa6f57c1f6a9faefe78404f4546c5
BLAKE2b-256 9e8f42d901d127812e1829992621971c22b6bd322f4fa7e9ed5fcf322dfef276

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fe3c03109ce57948925ccc3ed8ee0805ea008163b5f79f96f00fe5f17143d589
MD5 1212db2c449f1f287e13ccdeef4aaf85
BLAKE2b-256 7dc5add2f274f34818b01940883679c1c4404fc6e420bc701555f4b40797f189

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 302c3498bd1eebd82b61041bad2fd1eda341d9aae1bab28823f7953bac657433
MD5 71c09e39658c112e55cc0efd6daf0cad
BLAKE2b-256 b170c49c967050cc8fd6499a69c74a8fec21c45be650b082c8e267dda4508fbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6d037cb21bd602a1b4e1d13621396db813c59a393230e9afff0f84a17b99abc
MD5 9ec350ef0386b1d15796c52a8a08c303
BLAKE2b-256 f311b45a6c6adf3bb74edd187c495a6e6d5b26614e91463035d36b4bea7dbd49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 215f83d08cbf611786b580920803d992eaee7fe9033ab355638404a1e623e89e
MD5 e6b7a71775a9d14bc2e6fc38c00c4cc4
BLAKE2b-256 11d0d089ef9d840f8cae130aab4c1839e89c9999410819d6a6edbdedc2b3ff76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 b34f2bffb3db2a19fbb749ba428ea24eac93e9bbbb92d94d14c19186e66fc5c6
MD5 fafaaef0fde8b17586d58221510a05e1
BLAKE2b-256 8dc5a3db7cf4830e12b7c2407638ccb120ead4f46afceeda3b2e9f8bca231ac2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ddcd149266aa1b353fd02854d4e6ee0dca9a67a1fa0547db2bce5e47c544b2db
MD5 6fae2ca2dcf6cf5904f98a5bff047bdc
BLAKE2b-256 397ca1128b3ad150bb407c5d81dcc6e395e20e6ca3c005955d7067f39934ea03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d4aa40b36c8006fce37943ef5b954854a952b7d70145a320a404b5a825692ae
MD5 9d5c6c45ee59220d8488bcc5617d0777
BLAKE2b-256 b62c2ca0c49c05ab9365924c22802ff3f492a6075c18d6d994ced0e5e6dc00a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57e31294a1ac5471e2fe534a14bf5d165fda52ccf6437fd8aef5a6a0ce335dd2
MD5 afb91c88d09552759f6a98bae2ccff68
BLAKE2b-256 d777b801922b768b545f3584673912ea37b76b4bc64c7cb2187f9f2f54badf1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1cbeb0b7737134da9ae25bdc68f96f8a6365e9bfa4e12653d950fd41dcf524b8
MD5 d4652f52bc2286ad432ffd9c3a655558
BLAKE2b-256 e85a4826aa3193e74777028ce1bbd5c40047e717b0d6de98831a39d99ab8978a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 6a18d9e8ec5f6802a6074d276b06b04d985640e328ceec605770d66d78fb85ba
MD5 c40e56673d5145ffea3ee78e70af584e
BLAKE2b-256 5a5105e5814abeb23dea926de5d77753306952893d9df61972dc6e3af8bcd39b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 35216308d4503f144d8e936256c7dd80b788855c176faddaff0d0ce8f54b45a0
MD5 be4a4b472bed7663810fda5fc3612e1b
BLAKE2b-256 a4f37b5240acef991082dbed56f8eae280208d76845b899d5ed16c3c82e3a269

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5367dc2fabb0fa2f423db361da50d5447c30d12ab0e16a8c41afc1eb12ca9c52
MD5 be2379f5fd91acfc0c9c2067edab2e3e
BLAKE2b-256 bcf573da41691c7b3b3535791a6c53a31a28a27f10a06ad9f03d63424c1fe420

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2c268f958b34a54a8ef773021e9578addf4bbf36925e12c49075303694a1b80
MD5 a4d820bb2770d12baa40808664fe5153
BLAKE2b-256 b92f99f70f989dadff9b7845ff17267f47802c0c6df8d83d339115b2ddc0851c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d45d14f0a761448af7abeb38686530e4b8bf369e4e0ff9e30d2a86360f44e02a
MD5 0fcdf96e3f3f8b86cfe1a1fc7c503cdd
BLAKE2b-256 ffc16aeb75108cf5104c1f1ec6b379a85657a3be2e6a990b28c869a8c1d219dd

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8b0ec2c4e48446f54ee63a63ce3902f6625d7f54653ee6e5c17b5641ac79724d
MD5 7f3016e2437b5d34c85cb832bc0003d3
BLAKE2b-256 d6492a9a618ffcb7172b3af37e1b0f698a37ffede8e51eb39686a3cfcebb6485

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3cb2d001db8cbf85f70779ff296a1606f42b877e608679c37c99f7d2b3a5b177
MD5 b7eb8f660290a5cd13ffd67fed8a56d3
BLAKE2b-256 5e6ef2f8605f7c27762a0f32529375a729752eb22f547e87523a5ef0d7f24507

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7c7b569845d11be62f2f7132209cefc76b6cc514bfdeec1721524a2d44713a4
MD5 17bda94f3eb559850ee19742398ea949
BLAKE2b-256 6c03a540b732fe16fba894890ddf78636a47fa694b10fd211b29c34fb20f874c

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.12.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.12.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0f50e1f454a34c40897967336b169944e03159fdf07c7bdf1954250c8079b738
MD5 dfd156d0fb71f1088c2c52421bb62059
BLAKE2b-256 2ec85e955eb40ff1f5c75925ec2fe1a0f61dee008722c09c70fa38b5ea151681

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