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

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

lightsim2grid-0.10.3-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-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lightsim2grid-0.10.3-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-cp312-cp312-win_arm64.whl (539.4 kB view details)

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

lightsim2grid-0.10.3-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-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lightsim2grid-0.10.3-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-cp311-cp311-win_arm64.whl (539.4 kB view details)

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

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

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

lightsim2grid-0.10.3-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-cp310-cp310-win_arm64.whl (538.6 kB view details)

Uploaded CPython 3.10Windows ARM64

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

Uploaded CPython 3.10Windows x86-64

lightsim2grid-0.10.3-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-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows ARM64

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

Uploaded CPython 3.9Windows x86-64

lightsim2grid-0.10.3-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-cp39-cp39-macosx_11_0_arm64.whl (724.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

lightsim2grid-0.10.3-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-cp38-cp38-win_amd64.whl (597.8 kB view details)

Uploaded CPython 3.8Windows x86-64

lightsim2grid-0.10.3-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-cp38-cp38-macosx_11_0_arm64.whl (723.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.8macOS 10.9+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: lightsim2grid-0.10.3.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.tar.gz
Algorithm Hash digest
SHA256 b744861b9cf91d1e280eb2836916df543463e5484ff4a9b313323bdf0faa2f69
MD5 3c7394d74aa841e4e6d49e47e020d441
BLAKE2b-256 852bbcde03740dcf192586c07670597ab685a3975f696788199bee67916ce3ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 187fbd956ca6cf521dbe27edb9f5014cbdf8f15d86d5aa27adfd5fa47c42d5ac
MD5 ea79d571d34b95fc172221583678e1ed
BLAKE2b-256 164091d966a7b5ec6df869c272fd267367a14b5a45c5ada7bfea9cf67721568c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f075d850b7182410fb51148448ff82d0780930271bf0ad53da9ee80e749c74a2
MD5 9bf63f33f0919fd192012fd92011de63
BLAKE2b-256 5dcbaff54a7d0f3e045898e3fb500c2ab88cedcaba0b7bdae9bee72452558f87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b72fcf5a178ea0be19e9dd4df29df86d5cb755e310b9ebbc9764e843035e26cd
MD5 d85d2a783e8ebfb4c3ab64db4eb735d0
BLAKE2b-256 40fe9c0f6bbf5eb872087fc5f502c88ba4dd62dcc0e2169c5fb77190b45542d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8091f7e39cb31c83d1532a4e69fe9facf0c8cb84806ad27be8f68b12ef6e2a5
MD5 2b21b6fce2ce7c5cf876f7a5d2b67021
BLAKE2b-256 f9aac80ed61e7a6be64508f36a344e50a97b36d19ad5a6148908258a6901ba0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c58946b9bfd348ac8bc0cfbce6f5b0c6ce8b2efa7d783846c057090da934fe9a
MD5 ab9a2a9515173405221cdb131ccb7d9f
BLAKE2b-256 b3beb69cd99ac19371396422ab48f5225646b984c5ea07d143cdf3e68427d94f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 6435d41c3ac43d23e3b38a551ed3e309c2d8df3594129cbe1f9d3bd5a0261caf
MD5 c9734ceeac9d32b47d354d55a6540d8c
BLAKE2b-256 a63d70a89fe03026d59c0205c5ea64fb5063e8bdc02adb796199de7f01b31e89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b5aaab6f09699d1eac997c54221823d2192f20277ebed6dc2afa60913f33518e
MD5 2624916a83edf14beffb3c9ee434e7ec
BLAKE2b-256 5e842964a47887c8dabe2d22d39dc8ee0f37583d19942b2c69fef02fe23e80f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5911dc972337571b2067a5a825a2b502a19b610ac55449da4daa554657900f79
MD5 17659b667f63a1fa773f61af4843151d
BLAKE2b-256 1959bf2ae3f83194a37489526de663b083153a33bc56fab783355026afca3877

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 994a9feadeb76a2e4989802ebfd2145c8cef240e6afdb7e03b8fcf6a565f4af4
MD5 ace029cdc2bb09ea49256a25a35060a8
BLAKE2b-256 7eb4bbfb0f0f8e70a1c8099ce1c30492a8115a2f2b450304cff04f1b6ccd0039

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 699e6e4bfcb2dc73db2795df2a22d6c3a35cb78b13f802bb2931507de197c5c5
MD5 16540ab7cc80590bfe800f3bc0de3edf
BLAKE2b-256 34b3ff9a4cfde34ee82be7c3ca3c4c6e5e586199bb62dfe51ef04b09fdf0204d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 31666c87785bcdce6c65a23bc56e126ef55f3b5a65afef3654cce26a7750475f
MD5 0c6f0996f830c7c6731825e5666f783a
BLAKE2b-256 4f99ac6db30e804859ac170e1c1212116b4c568f15c266e7eabaee571d2e3015

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2c0870e52972143b52351a1ff1d45a262c8e8c55980d23817a18609f84dc35c5
MD5 a73e9d8a35c374e1a03353f56564c0c8
BLAKE2b-256 a654dd8db9e99c5802669480bb2908ebd43561185581b95dea55924ea26afabc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 886598c9a55b47ba4a5da02f219d81a08563d4dcda079890f51b16efb6579a9a
MD5 f0b01477987e80f819c1ca757e472e62
BLAKE2b-256 5a47a76b4965bc6073dc171510943196ff8a04b4a396e5b32eafa32366936bfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a5da34375d44512e3417074a3c055324555bdfb8f7605d41b19ed87e1c068741
MD5 99c070f137c5566c2219086eff0b6f07
BLAKE2b-256 2d8f64ed2015b833262e1365772a5d49de69f8b2b65c053f53222eb44cdd9bc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 322dbad373a6a3150ba2ebc18d33a82deef8fd532c648c5c3c338fd888f1690d
MD5 9a62bc6213516506834d07e1d16a99b4
BLAKE2b-256 ffaec9f3f9998febd30e882d5ee6bc49dc8814e0dea4f7e510ce7dde90abb740

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 65903aee42c03c9bcb264f964f976a4f494e0e2226b2e5ee0b3e3812fba0808e
MD5 901086b3dbb1b4aa3a13687beca17d81
BLAKE2b-256 555d44ce18bb5dce51e611343826e2ce2c70aca1fc6dfda6470fe57e3a6563d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f598c9d224d63cbe5652f33729ef0588b10d28f429ec2fe040950b737dc066ea
MD5 b9728728bede731ce507e26a54f8179b
BLAKE2b-256 a52a1ad75cf670bb56999dfa030af1fc4bc463a107fac28ee5aee3762d590f37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9853c45070d72efaae564e1b8b779742d4662d8610db472549f1410e796aac77
MD5 4277af8a96ca426376b5db1bbcc02d23
BLAKE2b-256 9d0a6fe25fc5ac12a781072c18a0d64c5d54482f4c7974f286571d2af52fac29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5d1a91257d6134e80616e531fac7af33402b5fc327c57975aa677782694f3ec
MD5 232d70583d98c7369a3e47436e368043
BLAKE2b-256 28e1795066e0b38a983cb5db22c67db79506da697cce3e01fe75256c731b8fa2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b8e70fb9b1d7aac8fcbcea4a2e14476ef010a7d985e9aa15c3af1c176cbe1636
MD5 0f5619b78bb868f290290b5d21647c48
BLAKE2b-256 220ecb4b72e25448ddc376466a3a20f12863fe2fa25e80fb1801b9db0cf418e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 8669f4cfba54dbc50d3b8d0b2b8c8ac11e1037d0ff39dcd8c404211c25bbd259
MD5 6e6e19f3caba6a77129831c6d9fcf752
BLAKE2b-256 8323dbc062e4890ac297a9ca833eae460ce2cf9f1c400f8270de162d5cf166fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 431de0c3c23b20245e243f6d4c83efb93fa485bcd39bdfeca873613b524efc0e
MD5 9290690d3d926999a7339aeb4abc253a
BLAKE2b-256 50bf1f32ae629634becd8489687d8fe8aa7b458dbb24a840b5996680cd465bba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5c58cf3e4229185fc5e7137f358c9ae899efa17521adba406c0bcd2644c5c83
MD5 1fdb2f641b021ca8ed52f061135d8816
BLAKE2b-256 6d49f14f26f32ff5306691af926fb310e71606602bf93b55e97c984f56a11c45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad9ef1c90b275ff70f20aa9af6cb0dce0df99993fb748e206cae159d75a67d93
MD5 2912f8808891fd62ee7c8c5415a00446
BLAKE2b-256 5691023d1751581a4302bb2bce7f896d81a4031b6e03fa7d3179dac84b1bf6e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8ade7cbddf15c6907e8e59936b8f2655ef27c2162587ffbb450c7165cd4aee36
MD5 45a0bfbe51b0dd9cfff1f07f4216deab
BLAKE2b-256 9a321627a030bac959c357cd7f25b63bbb6ae8d8ed307787ec683b8413318849

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6ec80faa3ff41a99f8db0704d30917e57d90725bf6ccd55231f50eecd2f0c7c4
MD5 d4249f629dd562f36df6ef8862a551b6
BLAKE2b-256 a2b064842ced41d5f8bd9dcab5cd285e87716e663eee04710c8a86e375066128

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 089a517c178d054dec43305d620135eabbb6c23093da0d3bfa8b8710124ca0f0
MD5 6deb4e1fff2efe1ad8fbc1ef82dd0cf2
BLAKE2b-256 c2c73e49694290eda8081d2018602bdd087c86fc4a06849f479c79e7008e760d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a8475754fd62475efbf198b57566269c9da8554b57f95f9aa527a842a1ea5dd
MD5 f48ab2b7c7b80c646684704605daf579
BLAKE2b-256 d98b122ec2f28b2ada6ca9ed7dd2669394cae4e6b0f8c87e4ee58d0ffa80b3f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.10.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 634d955224aae51d07d79d699dd5ede93f47b96e242129bb7e74fb6a763d55cf
MD5 6c13734258477d79f8fc642c8e4c3d25
BLAKE2b-256 6085b0094ff2bf7b054c5a94cd2f135a929bc037fdd7103cd4e7026e5997f492

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 7d9ed0337c491d21b0a5780db0994981a0ea563c9569256e7330e1c6ec540a24
MD5 dd497832fdbf27fef93b3f502ea206b6
BLAKE2b-256 d4adaacb219c4098386871ea414aa25838d5b83d65c0d9a070b2995b6a58bde6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.3-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cc569ba8a384b9ad847c6c015b8327b25f6081d578c07407165698c45de1b0fa
MD5 709d0400cf3c66fc7fb262f14cfce59f
BLAKE2b-256 39a6320d4a240aa962254581b74806962ef7c324d94d06bbaf19a7e766c6a63d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 170669d639ef912cff90ecd533ea3b3f177b2152649138eb1468ed63109c7dc5
MD5 a9335c2bf896ce58db9313f28876b477
BLAKE2b-256 e65a44ee7844a70d246dfea5cc13ee86b8d72345354d5b07fb63e09569641afc

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