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

Uploaded CPython 3.13Windows ARM64

LightSim2Grid-0.10.1.post1-cp313-cp313-win_amd64.whl (603.4 kB view details)

Uploaded CPython 3.13Windows x86-64

LightSim2Grid-0.10.1.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (869.3 kB view details)

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

LightSim2Grid-0.10.1.post1-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

LightSim2Grid-0.10.1.post1-cp313-cp313-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

LightSim2Grid-0.10.1.post1-cp312-cp312-win_arm64.whl (543.2 kB view details)

Uploaded CPython 3.12Windows ARM64

LightSim2Grid-0.10.1.post1-cp312-cp312-win_amd64.whl (603.4 kB view details)

Uploaded CPython 3.12Windows x86-64

LightSim2Grid-0.10.1.post1-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.1.post1-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

LightSim2Grid-0.10.1.post1-cp312-cp312-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

LightSim2Grid-0.10.1.post1-cp311-cp311-win_arm64.whl (543.2 kB view details)

Uploaded CPython 3.11Windows ARM64

LightSim2Grid-0.10.1.post1-cp311-cp311-win_amd64.whl (602.6 kB view details)

Uploaded CPython 3.11Windows x86-64

LightSim2Grid-0.10.1.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (864.1 kB view details)

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

LightSim2Grid-0.10.1.post1-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

LightSim2Grid-0.10.1.post1-cp311-cp311-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

LightSim2Grid-0.10.1.post1-cp310-cp310-win_arm64.whl (542.3 kB view details)

Uploaded CPython 3.10Windows ARM64

LightSim2Grid-0.10.1.post1-cp310-cp310-win_amd64.whl (602.3 kB view details)

Uploaded CPython 3.10Windows x86-64

LightSim2Grid-0.10.1.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (862.3 kB view details)

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

LightSim2Grid-0.10.1.post1-cp310-cp310-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

LightSim2Grid-0.10.1.post1-cp310-cp310-macosx_10_9_x86_64.whl (790.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

LightSim2Grid-0.10.1.post1-cp39-cp39-win_arm64.whl (544.1 kB view details)

Uploaded CPython 3.9Windows ARM64

LightSim2Grid-0.10.1.post1-cp39-cp39-win_amd64.whl (588.7 kB view details)

Uploaded CPython 3.9Windows x86-64

LightSim2Grid-0.10.1.post1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (862.9 kB view details)

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

LightSim2Grid-0.10.1.post1-cp39-cp39-macosx_11_0_arm64.whl (726.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

LightSim2Grid-0.10.1.post1-cp39-cp39-macosx_10_9_x86_64.whl (791.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

LightSim2Grid-0.10.1.post1-cp38-cp38-win_amd64.whl (602.2 kB view details)

Uploaded CPython 3.8Windows x86-64

LightSim2Grid-0.10.1.post1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (862.7 kB view details)

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

LightSim2Grid-0.10.1.post1-cp38-cp38-macosx_11_0_arm64.whl (725.7 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.8macOS 10.9+ x86-64

LightSim2Grid-0.10.1.post1-cp37-cp37m-win_amd64.whl (595.1 kB view details)

Uploaded CPython 3.7mWindows x86-64

LightSim2Grid-0.10.1.post1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (870.7 kB view details)

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

LightSim2Grid-0.10.1.post1-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.1.post1.tar.gz.

File metadata

  • Download URL: lightsim2grid-0.10.1.post1.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.1.post1.tar.gz
Algorithm Hash digest
SHA256 c44afe7703e965be090989f9fde25b1cd71ced6fc58094d79454512eed7f0861
MD5 ab9faf6c315edef8eb3d58286d935512
BLAKE2b-256 01ad3e75b9b8f3fad2454df432bb2da4cf02cd5dbbb8be2a51d90633f2f33e8a

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 adc445da266fa706950703349635e095745c2e6a730906f9e958547f7b33f7b9
MD5 02099fb8855f9eca0791b4fa77158ef7
BLAKE2b-256 1395cab99749617a09b2d95c4db1c0947e41b260defd5d9f250989e04891fa8d

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 09b3fb7e8c96a54155be41a760bb769dcf51407c9b4a5cfd69f8a9d001fda51f
MD5 db0c2b4af0de5ad1c8b044f4dda4b249
BLAKE2b-256 7001c4d03f6b7bf66bd6412ce8286773203ce5d3ac43684898d44fa08a745e46

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c28f3857cdabfc7f90eac49c508ac55d7d1766860b312b0c73e7b93edef5006
MD5 3df180a6c8e5a0897a01729ff7e34219
BLAKE2b-256 145f9657c403936b4ae6b495c9e1de0a1efe86a162fb127d2e18cfd97c08fe21

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 faf11c36c6141beb8dc9070aacf104d328f766d609f23017bd57b26da5d2ab4d
MD5 9024e60e9310855b81ddde9e4865f4a1
BLAKE2b-256 70c0141229edd0248fdd92e27994edef8de2e5f61d7e04d60c13365819e77255

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp313-cp313-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b9dabadf33709d4a528da0b2a799f93043b0af49d698ebab6e9ae676e1f5baa0
MD5 90ba01dab421de4543cd2477c1f132a8
BLAKE2b-256 5570dbd52ded947ec211e280867db4b4717be23b104a9a42d862ed409d0a8dc6

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 859ecdea8e52457ce272e0c51a3d4908c1fa948b4750d6678366216247b4a286
MD5 4fbb40f29bb4c5b5d853919eb5603efc
BLAKE2b-256 3e1779acd9c82e07355e63aa1d7620643542b48a70864f4c28e4cd3c4c9e96ab

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cad5107d0ca2ac2cad16756baed03b80514656cfd97173740cdaa3993745ffa4
MD5 43c6f8f8282cf4bde0bbeaa6591e3d73
BLAKE2b-256 692d229204d30dd87f769cead6b1bcbd34b24193c1d9b09b8f1d3e0d959e51c5

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47feaa40f621cf5127b7a2af49379cdecffb4f5e7a9566efd05c786c262619d8
MD5 bbac05473f634bb9c1bed49db50f6601
BLAKE2b-256 ab41263e2b4ee999e70a81bf4bb6e4a546ed429405d993c1cce335d77e13786a

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 984c18ea41615f857fdb3e8a58c3861c216a4dc662097acfca9ce50d15e7f4c9
MD5 e948a7f68554b263bd9f59c672612472
BLAKE2b-256 264626218463f493827914707692fd925ebecbbcb29a8a2493ac63c46e3841e9

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 020b1bfe80170be38d0c4be9c962b90bcbf83dc5c81475ba8400924ec8610f5b
MD5 a0d9b44d8a3a6def1696c3d1aec57028
BLAKE2b-256 a9949755e334680fb01e20f967114dce58a7a0bc843d589905420a7ca1eac4b9

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 cb8b7f92e8b9370ad89bd1652c4c949cbee4a392476d36a893b798e17d643186
MD5 22e5f664a3cefb68e1ab19eeb0fa101d
BLAKE2b-256 7302c7b5dd86f946bb2f63166d368340fd562de7402a7d7e47e0318a40049496

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0a061aca89c55e91e2d3b9c81e6c5a62a19f41d625b3cd14b8268d165d92c505
MD5 ebe02aa1970128f105bd9828d9ba7f8f
BLAKE2b-256 40460007dfbcfb54e8d9de6f575875626581b1cb8411c0e03e655818fd337de5

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c1b93712761aaf86a9564a5bf16a65fca0883a1a81e9bc0f6a3b3868b12ccca
MD5 3acaf0f92558afe0cee2a9e35f87ce27
BLAKE2b-256 a7f28c20cf9e9f9ee27cb8e5967684fe524f08af6ff99ad9ea8586a9cae1fc91

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 23ba219029932503ed2cfa0532628e42787d0396974d13fcf2b6203f2eb2a2a6
MD5 f6edd9b9f196542a370b95798eb02782
BLAKE2b-256 4abdd0d636ceafa13890233fdbe87af469035c67ff7a302492848e834e09e235

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 69d04e749e02a5bc70b3776bc5dbf181df03d8c521182159940d4d8130270ef0
MD5 ce57536cb42c0d7f2122b02aa7e7bd8c
BLAKE2b-256 49aecc4efefeca4acd54f5f7c8f5530bb81be6bbcb01cee8fe7c6061e943094e

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 98ab50b7843c88272e0e189cf3d17e0f2787a0673194dedcf12137cb34fc4bc5
MD5 85b315fdbc2f934214a5c567b1121699
BLAKE2b-256 af290ed07c832f60a6d845a9ee0974cc034ae015dcb4d2c402110c9e49f2c904

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 be2c46997ec1e979541bcd157fe4a928c0195957767d827ea242638a8da3acc3
MD5 961a9a157d5149f04ef168b9fd21bc0d
BLAKE2b-256 d39c084b93b7f315de8bbd9cb9d48216aa4161704a07b117fde99a70d5de00bd

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a728594470ca83228e1a6eef26f2f64652e376351fbfe871f15730a7979600d6
MD5 b0ec2bc7278b93c597329033c4d35078
BLAKE2b-256 3b3f2a02a4c7ae71d124d99c9ed81582985a39847f5a592e4353c36a6d381fe8

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b8edbc8bbd7f0d74b34e4c59739a2be390897629282ae5fdda35adccb6452d0a
MD5 1b754d2f8d412cd8d00449d6d66ceaa2
BLAKE2b-256 ec8e49a7f63924c8fd2d0d489a8a8c259d9211bfb398cd1ac897930c5fe1a92b

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4477fc1fbab96806e738ef09ff1c3617ce4345ab82eede29d78de5ff87e61611
MD5 30b55618b6fd585cc0d1ff27dd87990b
BLAKE2b-256 6e8cf09b15ce7f460885cc359f090c431845edbc5eb479cdb896e51d0dc78aab

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 32a6ca5a1c847716baeb48606751bd979c3dfbfcc4c70450338cdcf26cc4a816
MD5 290851607b6ce701ccf2170b9f9b290c
BLAKE2b-256 c07223519e786adc7e2fa52bf0e428429c7028fe8469102184c1789f64b9c122

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6ac62e5d1d076bafee6ce641bacfb97efce5aea5f405ae8ebda0b48169fe9d00
MD5 f2bf99a6708c45f11b7726ff692cff73
BLAKE2b-256 0dc369857b1435b39dbc69131880ec9c775468b75d091392e8cba35584a02e3f

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10e0f0af5666a1fb284a22e5342519db823f88b6ddb22ba8f597aad21cccca9b
MD5 b34a10653ceb03a4cc3dcc7e8e6ece67
BLAKE2b-256 271c648ec9e5bc7d2247020831d76eec6ac19ba3e6ef7b708179d0a1de3b5aab

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08e72c736437ef41a209e4dbfb58a41a65747eb1cd84f2fe392146bdee69a402
MD5 6fecc5a00b6ef213b579f1732584ea47
BLAKE2b-256 c05288bd959e6840af6979883e76d2916d13ded52b0c1eaf8d5ad09aa1b2ff10

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 89c25590297a877c41a0013e6da5b497b2c4b0d8f59cddc7debc2c791dcd8cb3
MD5 a6061a099fa17c1f53115a1eed3b5e83
BLAKE2b-256 ec6d7e8ebf606dd12a4f46a1ba50212c12444b5e33092c42402f92efb3b4d2bb

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b7340f4bbb372dc3823d2975e955d73ddfe39acd8f72e49a0656a3e2f42f1166
MD5 22000d750952e04c3ce68904ebc49b80
BLAKE2b-256 4974945752f9011f1100e7f12504638233db47fbfda8c44465f610e4b5f309a3

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 903ba72c26e27e5f706eef51acce4d551aab1e6b7ab4f0a0a0395023306c2a5a
MD5 97638998e2d65af28826c911c1fe8200
BLAKE2b-256 08e87ab8eac3e3cd0e266af54fa8865cc2aa94ffce8cd4b1af58ffa4559f6a15

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5c62a5a3818100f425831f4ce3434cd1cee0f54d96d98c0db440a4ea63a5901
MD5 54a6facfe0f709167d245679eb0f83ce
BLAKE2b-256 f4ee596a178064bee931e470552d465ed6257943d9422bcd4efb77a7e4a17cd0

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fb83054cfd3ebd072a057930292c8cb6ab96f4405fdde6eb9b6e7ad2c9732434
MD5 3c154a6fb449585460c939bb54e02f7e
BLAKE2b-256 e3cd63c8493b72b47b4dd8118eec8e9070bd647dada9d9cb887fdb2b58d55c39

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 78135c410fdc8e8914608fe52b9462e26160c7435c08ae544f766af1ba6c7c1c
MD5 db623a78b6a16ca3e426aeeff3e1dff2
BLAKE2b-256 867b8adc9b22040de4656627f15732297a232d0ce223dd61afddf5c59eb16675

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebd2e3c01402022c21d17108dd659629b99614d249f37962555389ee8d7cb692
MD5 1348f62b903dc0151d8fcd83e83a6865
BLAKE2b-256 1b572d48261f3ed3cf3d139d504327fb7006c85dab84dc2f5530d46782aa8b7b

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.10.1.post1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1.post1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 747ed1993496f901ad7123c0f57df5c7506dcfe5d51c63dd3c28edb0c8b2583d
MD5 65b9d72c4c3c5cf24d477a9091062b0a
BLAKE2b-256 4944806ef816587f5ac1263602b72c7e1163cd3aa4abb4d192ad3d0124cfb76a

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