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.3.dev0.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.3.dev0-cp313-cp313-win_arm64.whl (539.4 kB view details)

Uploaded CPython 3.13Windows ARM64

lightsim2grid-0.10.3.dev0-cp313-cp313-win_amd64.whl (599.7 kB view details)

Uploaded CPython 3.13Windows x86-64

lightsim2grid-0.10.3.dev0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (869.2 kB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.9+ x86-64

lightsim2grid-0.10.3.dev0-cp312-cp312-win_arm64.whl (539.4 kB view details)

Uploaded CPython 3.12Windows ARM64

lightsim2grid-0.10.3.dev0-cp312-cp312-win_amd64.whl (599.5 kB view details)

Uploaded CPython 3.12Windows x86-64

lightsim2grid-0.10.3.dev0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (869.2 kB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.9+ x86-64

lightsim2grid-0.10.3.dev0-cp311-cp311-win_arm64.whl (539.4 kB view details)

Uploaded CPython 3.11Windows ARM64

lightsim2grid-0.10.3.dev0-cp311-cp311-win_amd64.whl (598.6 kB view details)

Uploaded CPython 3.11Windows x86-64

lightsim2grid-0.10.3.dev0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (866.1 kB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

lightsim2grid-0.10.3.dev0-cp310-cp310-win_arm64.whl (538.6 kB view details)

Uploaded CPython 3.10Windows ARM64

lightsim2grid-0.10.3.dev0-cp310-cp310-win_amd64.whl (597.9 kB view details)

Uploaded CPython 3.10Windows x86-64

lightsim2grid-0.10.3.dev0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (864.5 kB view details)

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

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

Uploaded CPython 3.10macOS 11.0+ ARM64

lightsim2grid-0.10.3.dev0-cp310-cp310-macosx_10_9_x86_64.whl (791.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

lightsim2grid-0.10.3.dev0-cp39-cp39-win_arm64.whl (540.8 kB view details)

Uploaded CPython 3.9Windows ARM64

lightsim2grid-0.10.3.dev0-cp39-cp39-win_amd64.whl (585.6 kB view details)

Uploaded CPython 3.9Windows x86-64

lightsim2grid-0.10.3.dev0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (864.8 kB view details)

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

lightsim2grid-0.10.3.dev0-cp39-cp39-macosx_11_0_arm64.whl (724.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

lightsim2grid-0.10.3.dev0-cp39-cp39-macosx_10_9_x86_64.whl (791.2 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

lightsim2grid-0.10.3.dev0-cp38-cp38-win_amd64.whl (597.8 kB view details)

Uploaded CPython 3.8Windows x86-64

lightsim2grid-0.10.3.dev0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (864.0 kB view details)

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

lightsim2grid-0.10.3.dev0-cp38-cp38-macosx_11_0_arm64.whl (723.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

lightsim2grid-0.10.3.dev0-cp38-cp38-macosx_10_9_x86_64.whl (790.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

LightSim2Grid-0.10.3.dev0-cp37-cp37m-win_amd64.whl (592.3 kB view details)

Uploaded CPython 3.7mWindows x86-64

LightSim2Grid-0.10.3.dev0-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.10.3.dev0-cp37-cp37m-macosx_10_9_x86_64.whl (784.3 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file lightsim2grid-0.10.3.dev0.tar.gz.

File metadata

  • Download URL: lightsim2grid-0.10.3.dev0.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.3.dev0.tar.gz
Algorithm Hash digest
SHA256 db0d1e4b96af86fd27e135a5acb2bff50d3cbdd476ea5d3bc945b158f644f7ed
MD5 997eee23343948c3fae10793d1cc09a0
BLAKE2b-256 8ccf164e382497b7caeb9a41a3f11f04de9bc350bc00b5a633ab333a5ed38255

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 d66ee2cd4c24d19201c4640742c8570a4ef7d7941f02ddfef95e339ed06811bc
MD5 c182d9d062be78b12872cfe598991933
BLAKE2b-256 d088c3c37b432e70bf5282e3f669ae987444f71fbb5696aa4ce6e09c5b3a09ff

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2644d67da8fc9e237cf536c6bfab7f49917d573d8850d87c68c94fa033ab3d1d
MD5 f6b67d9c2779748163dd8cc8c08eb438
BLAKE2b-256 9d9ecb90d5ad37acc4cfd4fe7d66a3aae687fc49a854e75182ab55809bb59f9d

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 93fd2256119be478315abba764b1aa5f1343cfa0f8a32193e513cea004c7ea9d
MD5 0686eae812bb8ba02de89cf3054b9d51
BLAKE2b-256 10ec028f04e58f197c4fb9386f4de897312d6f17012fb5be265417d33d8772c5

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e1efb899aeb3103800a734a83e7b76b769bf15d51106f68c808e87320ab314e1
MD5 689396ab71d0eba4e9474961348d1611
BLAKE2b-256 91dc795dc0e22681182806365b5394fbb496bfbc8aee6a558949f9b7d90df801

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp313-cp313-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e2c4b5fce685a3c8d74fa213110d6e668f04a3ff12fcff6a9cb44f093e9e4a61
MD5 514af22b93f07f2711d3d7136948e53d
BLAKE2b-256 73a553ba1da3f3be3d82de05f25e12ac77f69b1deb82cb847edf9b5caf26ee0d

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 79e7e4de2fd94c8fe69d2807ae81a27c7f3629db6b908f78fe8d16a36f4776de
MD5 d58056a1b51c5847a0035c957957b6e5
BLAKE2b-256 b1e554aaeff28401124654d5100037a117fa29ce5da60549752345dac60854cb

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 eebca26b4a91ef91d78d3d9bc317061734e51a09aa605408f669bd109b6c5802
MD5 f795daba55b69b5b889b14d9f03aa1ea
BLAKE2b-256 ce4ca00f5803b2bdbcc1cf1fb65e6d722a51dab77618288b10a7bdb397bde8eb

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 914919290bae63ea478a5572feed4b6798526b07e23c863a8f46acc11ad8cda4
MD5 a9db73da0bd50ec96d9de734353ebd1b
BLAKE2b-256 e18a3a2a1ca49925c3e6d167257d0e8d040a588ab425545da0aed6edca7a1b2e

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37dfcf873505dc38bfbf9b88bac8d312c524aae3ea3cc2271bfcf4d0b86bef2c
MD5 bc03dbed961c1f0b475add64d08ec364
BLAKE2b-256 8f56b2c3a773357361666d0861a3e73b11aefaa452fd161d3816c0604c00f259

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cdb83a7fe8261cc222b76f432af1890b56ea203b369d62bc3b388474d8bb7493
MD5 c3880a074b26b71b6f045bced7a4d7bf
BLAKE2b-256 a4396afc3944f1eca07baedc4da962a31109893076e700e12f5afa7137949326

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 aa87a2a5769e29466a62fdd855d631bd6b8f2857c05962150d3f88ada1567d54
MD5 4351e2d8ea2f62c0d09d28cd868b649e
BLAKE2b-256 db6f831d2af5a512d3c8610690d4c864ac1772688b4d1369abab27ca12ab1a03

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a71bc5553ecb7124529f900fd90fcc01c2a2491045d1649aa7d7023b8d227129
MD5 68a2d82bf01e83fbef5c478d09093491
BLAKE2b-256 3e894a0823254c1ba9ae1c7e489ddb6b95d5ddc99ce4d6e65384cba0b538846f

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59b3b9b44b0db944848b5a0717ec1eb804fef301049d251113c63d5d6722049a
MD5 3ad7c0ac11438cd10e201e7846dc8cde
BLAKE2b-256 a244703e0697dc9ff958489568e898218fa279eb3986780843fac7ba3d7b2436

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2642bd7a59ad5e1dae584e77d7e01a9f3679124e64d078ec97f39795119f41cd
MD5 eae42040dc17aea1da77a3bba55b3b33
BLAKE2b-256 ebecba2597dfddff523bd3dbfcbb722d6679279af440d8c95680dfc904706394

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55dbcd3353bbc7ab26e8ad45ddb32215027a201a98e7d1d493da3aaf5162e576
MD5 c6ba7ef8569fa05ad24c080ad9884f9c
BLAKE2b-256 5c1696216f97a63bab6f308b2ddfb7098abebfc9bb81903877ca13fa25b303cb

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 b0220cc0d85dbde2bebd489e28514c9c865bf5eaff5ccfd81c263122e31b2a20
MD5 3ee39ebd59efc2751efb8cfdbba954c4
BLAKE2b-256 6f8a75fe7cd486d3a66c7691fe53a40c9647b4f4a6306816d72b40b38f372c66

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dedd9d140824d2c84b1c749808b5696434d439d05ea5f4299cd350c86d50fc1b
MD5 42c7185a3edddb04d63b6bdbae1ab211
BLAKE2b-256 f1f8eb9a6e632da6e3e9929b0a6d874d627790fe0a9fee985ab333b1695f697b

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 24fd952bcd29ccc8391c97bfb746d224bb109900c51cff2bdd777c7b8d499611
MD5 91d3b1016ba22444b2fabc5575afaffd
BLAKE2b-256 3616624c943d0128f867275e5e5649ee4ca9704325d31ca96d9d3d4c7b91e167

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 099b171a176233d9113f98659498f3da52f161a7892c1bae72d620e01f59b40d
MD5 0f233894f11f790e2c8dfc2a79488591
BLAKE2b-256 990096fe63b053e30dfa82fff4b9acaf23e952e71642441e92a2f32f343d251a

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 825ab8a735711f59dafae2323ff01300f5ef06396079b3201a9481dd26ef4034
MD5 10fc13c61d0d02b9874b3ca78875969a
BLAKE2b-256 71b7bff0cd7240e0ed475e5a9cb77e9a4889f7ec2a7e200ae8f4057e97e77906

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 661d871e55122a05badc34539ed7d8fefbc50a1c9dca4a6f36c8c7089d9a5226
MD5 c9dfa85549fe8fd66eefa13525163996
BLAKE2b-256 63489fa364355b1111a55ebfa18835cdb922b5b2def4eae0d4e82da1e33fd067

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 35a2ba568aec8db2bc66f4059b7501ecd63103ead461e586b117aa72d5ac5e6e
MD5 974d763f6b6be70dde632c675fdce631
BLAKE2b-256 dddbfd79f772fc1996877a8abc6cc8530b2de2ef38c2635916031eadf8a82748

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1b42ecc91038ce3b4f7fe77a335d52578ab0272b93bf91dfa835f534c4843a4d
MD5 f00c626bc13abd9da9ecd985d21f3f50
BLAKE2b-256 043a9e5ea96a364644b18ae4a3603f4db4e8cc8c05adedb40c417dc0e9f3813a

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8502ee73f69836bb3469fb1d15ff8c3f0da8f62efe188932a5a9275f5f6cc2d5
MD5 3786fe3dd5b2a1274f092b236f80851c
BLAKE2b-256 5efb805976187009073157306332b64c2bde828f9222e1929a00517f8ecd9f35

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8506736577253383fff9d1e1670a46a0dac6e352df9aa657aa8cfff90b0ef852
MD5 0182160fa30a255a6f1d8521c5c7b983
BLAKE2b-256 31d0f6ad155fe9076ade6521239a3fc5a16e34a70ee503d0420739722effdd98

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 e7316610a295486cef6c4c216c9abb7322917dd6e008d7ae9aca9e0a621e852e
MD5 c98ac7a445823b3b4d1468c5100ed4af
BLAKE2b-256 50e14ebf04aad9e79ed16806fb962872c40342751b9080098ca17983579dba8c

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad17bfb19c44614d3949c69106ed6705bde6d0698ef02f80e7b0f2da58d0f100
MD5 b3b851d51ec7681b7c32dfd6d1fed033
BLAKE2b-256 929ce4209250a18ec7439b07bcbff868f3ec2626667277e89827c2e42df99cad

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d55082b9213d5eb15718c1145d0090f3583e2f14bcc9286d34f4fe2e5cd4f66b
MD5 54ef1ec45377f1327a8c382958513186
BLAKE2b-256 3b1e5e7253d5c9b777c04b61e5120ba68a4841a8b73a85d28daf09531939d767

See more details on using hashes here.

File details

Details for the file lightsim2grid-0.10.3.dev0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-0.10.3.dev0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fa1a93a7e0a4d5f15e13689d2fd4898ae28109e417eddb2d7096511780b9e9d7
MD5 45040bfca7221763970f516ed36168d1
BLAKE2b-256 1af744a52da5f23db69761a8d16021b8d2c4c56df666c2a29138b339066047fa

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.3.dev0-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.3.dev0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d009ad94b3f1e90e96519330c70a8ec014478f9d36235bef9fcb7dca1bde85b4
MD5 3b7e6d61515d523ef2fff4da620056a6
BLAKE2b-256 c5f43157848db5f6b8882ecfff34ae020384572574652fc2384196af8bcbdbac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.3.dev0-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10ef78d23f1c658fd8082188f9fa447e1871a70f2277e41db9a4aba67b70eed9
MD5 8f80ab4838746b3cdbd061dc1449a2c0
BLAKE2b-256 f6fd123c0dc31db385695357c1af2ac5ee77ab78fa8a26537ae8fa24675d0ee4

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.3.dev0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.3.dev0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5f9dc3fdc76bf9e2f8e4bd3fa71071bc7eebcfb7be9c14f9c90cc049749ebc71
MD5 75226b03d2202b42aafec65cc88a1f2f
BLAKE2b-256 3a6fe30c01e6dfd67c7047eab91e80f0a17811b5574a29410bca406a5a47ac5c

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