Skip to main content

LightSim2Grid implements a c++ backend targeting the Grid2Op platform.

Project description

LightSim2Grid

Provide a fast backend for grid2op using c++ KLU and Eigen librairies. Its primary goal is to serve as a fast backend for the grid2op platform, used primarily as a testbed platform for sequential decision making in the world of power system.

See the Disclaimer to have a more detailed view on what is and what is not this package. For example this package should not be used for detailed power system computations or simulations.

Usage

Once installed (don't forget, if you used the optional virtual env above you need to load it with source venv/bin/activate) you can use it as any python package.

1. As a grid2op backend (preferred method)

This functionality requires you to have grid2op installed, with at least version 0.7.0. You can install it with

pip install grid2op>=1.6.4

Then you can use a LightSimBackend instead of the default PandapowerBackend this way:

import grid2op
from lightsim2grid import LightSimBackend
env_name = "l2rpn_case14_sandbox"  # or any other name.
env = grid2op.make(env_name, backend=LightSimBackend())

# do regular computation as you would with grid2op

And you are good to go.

2. replacement of pandapower "newtonpf" method (advanced method)

It is also possible to use directly the "solver" part of lightsim2grid.

Suppose you somehow get:

  • Ybus the admittance matrix of your powersystem, for example given by pandapower (will be converted to a scipy sparse.csc_matrix )
  • V0 the (complex) voltage vector at each bus, for example given by pandapower
  • Sbus the (complex) power absorb at each bus, for example as given by pandapower
  • ref Ids of the slack buses (added in version 0.5.6 to match recent pandapower changes)
  • pv list of PV buses
  • pq list of PQ buses
  • ppci a ppc internal pandapower test case (or dictionary, is used to retrieve the coefficients associated to each slack bus)
  • options list of pandapower "options" (or dictionary with keys max_iteration and tolerance_mva)

You can define replace the newtonpf function of pandapower.pandapower.newtonpf function with the following piece of code:

from lightsim2grid.newtonpf import newtonpf
V, converged, iterations, J = newtonpf(Ybus, V, Sbus, ref, weights, pv, pq, ppci, options)

This function uses the KLU algorithm (when available) and a c++ implementation of a Newton solver for speed.

Installation (from pypi official repository, recommended)

Since version 0.5.3, lightsim2grid is can be installed like most python packages, with a call to: python -m pip install lightsim2grid

It includes faster grid2op backend and the SuiteSparse faster KLU solver, even on windows. This is definitely the easiest method to install lightsim2grid on your system and have it running.

Note though that these packages have been compiled on a different platform that the one you are using. You might still get some benefit (in terms of performances) to install it from your on your machine with the proper compilations flags ( see section 6.1 Customization of the compilation for more information)

Pypi packages are available for linux (x86_64 cpu architecture), windows (x86_64 cpu architecture) and macos (x86_64 cpu architecture) with python versions:

  • 3.7 (lightsim2grid < 0.10.4)
  • 3.8
  • 3.9
  • 3.10 (lightsim2grid >= 0.6.1)
  • 3.11 (lightsim2grid >= 0.7.1)
  • 3.12 (lightsim2grid >= 0.7.5)
  • 3.13 (lightsim2grid >= 0.9.2.post2)
  • 3.14 (lightsim2grid >= 0.10.4)

As from version 0.8.2, we also distribute windows arm64 and macos arm64 binaries of lightsim2grid that can be installed directly with pip too (requires python >= 3.8 for macos and python >= 3.9 for windows).

We do not currently produce arm64 (aarch64) linux binaries because it takes too long to build. If you really want them, let us know and we'll see what we can do.

NB on some version of MacOs (thanks Apple !), especially the one using M1 or M2 chip, lightsim2grid is only available on pypi starting from version 0.7.3 We attempted to deliver arm64 lightsim2grid version but we could not test them. So if you want a reliable working and tested version of lightsim2grid on newest version of macos (with M1 or M2 chips for example) please use lightsim2grid >= 0.8.2

NB we do not currently build any 32 bits lightsim2grid libraries.

Installation (from source, for more advanced user)

See the official documentation at Install from source for more information

Benchmarks

Lightsim2grid is significantly faster than pandapower when used with grid2op for all kind of environment size (sometimes more than 30x faster - making 30 steps while pandapower makes one).

If you prefer to use the dedicated lightsim2grid SecurityAnalysis or TimeSerie classes you can even expect another 10-20x speed ups compared to grid2op with lightsim2grid (sometimes more than 300x faster than grid2op with pandapower).

For more information (including the exact way to reproduce these results, as well as the computer used), you can consult the dedicated Benchmarks page on the documentation.

Philosophy

Lightsim2grid aims at providing a somewhat efficient (in terms of computation speed) backend targeting the grid2op platform.

It provides a c++ api, compatible with grid2op that is able to compute flows (and voltages and reactive power) from a given grid. This grid can be modified according to grid2op mechanism (see more information in the official grid2Op documentation ).

This code do not aim at providing state of the art solver in term of performances nor in terms of realism in the modeling of power system elements (eg loads, generators, powerlines, transformers, etc.).

Lightsim2grid codebase is "organized" in 4 different parts:

  1. modify the elements (eg disconnecting a powerline or changing the voltage magnitude setpoint of a generator, or any other action made possible by grid2op)
  2. generate the Ybus (sparse) complex admitance matrix and Sbus complex injection vector from the state of the powergrid (eg physical properties of each elements, which elements are in service, which power is produce at each generators and consumed at each loads, what is the grid topology etc.)
  3. solving for the complex voltage V (and part of the Sbus vector) the equation V.(Ybus.V)* = Sbus with the "standard" "powerflow constraints" (eg the voltage magnitude of V is set at given components, and on other it's the imaginary part of Sbus)
  4. computes the active power, reactive power, flow on powerllines etc. from the V and Sbus complex vectors computed at step 3).

Step 1, 2 and 4 are done in the GridModel class.

Step 3 is performed thanks to a "powerflow solver".

Using a custom powerflow solver

For now some basic "solver" (eg the program that performs points 3. above) are available, based on the Gauss Seidel or the Newton-Raphson methods to perform "powerflows".

Nothing prevents any other "solver" to be used with lightsim2grid and thus with grid2op. For this, you simply need to implement, in c++ a "lightsim2grid solver" which mainly consists in defining a function:

bool compute_pf(const Eigen::SparseMatrix<cplx_type> & Ybus,  // the admittance matrix
                CplxVect & V,  // store the results of the powerflow and the Vinit !
                const CplxVect & Sbus,  // the injection vector
                const Eigen::VectorXi & ref,  // bus id participating to the distributed slack
                const RealVect & slack_weights,  // slack weights for each bus
                const Eigen::VectorXi & pv,  // (might be ignored) index of the components of Sbus should be computed
                const Eigen::VectorXi & pq,  // (might be ignored) index of the components of |V| should be computed
                int max_iter,  // maximum number of iteration (might be ignored)
                real_type tol  // solver tolerance 
                );

The types used are:

  • real_type: double => type representing the real number
  • cplx_type : std::complex<real_type> => type representing the complex number
  • CplxVect : Eigen::Matrix<cplx_type, Eigen::Dynamic, 1> => type representing a vector of complex numbers
  • RealVect : Eigen::Matrix<real_type, Eigen::Dynamic, 1> => type representing a vector of real numbers
  • Eigen::VectorXi => represents a vector of integer
  • Eigen::SparseMatrix<cplx_type> => represents a sparse matrix

See for example BaseNRSolver for the implementation of a Newton Raphson solver (it requires some "linear solvers", more details about that are given in the section bellow)

Any contribution in this area is more than welcome.

NB For now the "solver" only uses these above information to perform the powerflow. If a more "in depth" solution needs to be implemented, let us know with a github issue. For example, it could be totally fine that a proposed "solver" uses direct information about the elements (powerline, topology etc.) of the grid in order to perform some powerflow.

NB It is not mandatory to "embed" all the code of the solver in lightsim2grid. Thanks to different customization, it is perfectly possible to install a given "lightsim solver" only if certain conditions are met. For example, on windows based machine, the SuiteSparse library cannot be easily compiled, and the KLUSolver is then not available.

NB It would be totally fine if some "lightsim2grid" solvers are available only if some packages are installed on the machine for example.

Using custom linear solvers to solve powerflows

In lightsim2grid (c++ part) it is also possible, thanks to the use of "template meta programming" to not recode the Newton Raphson algorithm (or the DC powerflow algorithm) and to leverage the use of a linear solver.

A "linear solver" is anything that can implement 3 basic functions:

  • initialize(const Eigen::SparseMatrix<real_type> & J) : initialize the solver and prepare it to solve for linear systems J.x = b (usually called once per powerflow)
  • ErrorType solve(const Eigen::SparseMatrix<real_type> & J, RealVect & b, bool has_just_been_inialized): effectively solves J.x = b (usually called multiple times per powerflow)
  • ErrorType reset(): clear the state of the solver (usually performed at the end of a powerflow to reset the state to a "blank" / "as if it was just initialized" state)

Some example are given in the c++ code "KLUSolver.h", "SparLUSolver.h" and "NICSLU.h"

This usage usually takes approximately around 20 / 30 lines of c++ code (not counting the comments, and boiler code for exception handling for example).

Citing

If you use this package in one of your work, please cite:

@misc{lightsim2grid,
    author = {B. Donnot},
    title = {{Lightsim2grid - A c++ backend targeting the Grid2Op platform. }},
    year = {2020},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://GitHub.com/Grid2Op/lightsim2grid}},
}

Miscellaneous

Customization of the compilation

Enable NICSLU

For that, you need to declare the environment variables PATH_NICSLU that points to a valid installation of the NICSLU package (see https://github.com/chenxm1986/nicslu). For example: export PATH_NICSLU=/home/user/Documents/nicslu/nicslu202103

Enable CKTSO

For that, you need to declare the environment variables PATH_CKTSO that points to a valid installation of the NICSLU package (see https://github.com/chenxm1986/cktso). For example: export PATH_NICSLU=/home/user/Documents/cktso

Enable 03 optimization

By default, at least on ubuntu, only the "-O2" compiler flags is used. To use the O3 optimization flag, you need to specify the __O3_OPTIM environment variable: set __O3_OPTIM=1 (or $Env:__O3_OPTIM=1 in powershell) before the compilation (so before python3 setup.py build or python -m pip install -e .)

This compilation argument will increase the compilation time, but will make the package faster.

Enable "-march=native" optimization

By default, for portability, we do not compile with -march=native flags. This lead to some error on some platform. If you want to further improve the performances.

You can set __COMPILE_MARCHNATIVE=1 to enable it before the compilation (so before python3 setup.py build or python -m pip install -e .)

Profile the code

This is a work in progress for now. And it is far from perfect, and probably only work on linux.

See https://github.com/xflash96/pybind11_package_example/blob/main/tutorial.md#perf for more details.

cd benchmarks
perf record ./test_profile.py
perf report

Local testing

And some official tests, to make sure the solver returns the same results as pandapower are performed in "lightsim2grid/tests"

cd lightsim2grid/tests
python -m unittest discover

This tests ensure that the results given by this simulator are consistent with the one given by pandapower when using the Newton-Raphson algorithm, with a single slack bus, without enforcing q limits on the generators etc.

NB to run these tests you need to install grid2op from source otherwise all the test of the LightSim2gridBackend will fail. In order to do so you can do:

git clone https://github.com/Grid2Op/grid2op.git
cd Grid2Op
pip3 install -U -e .
cd ..

Tests performed automatically

Some tests are performed automatically on standard platform each time modifications are made in the lightsim2grid code.

These tests include, for now, compilation on gcc (version 8, 12 and 13) and clang (version 11, 16 and 17).

NB Intermediate versions of clang and gcc (eg gcc 9 or clang 12) are not tested regularly, but lightsim2grid used to work on these. We suppose that if it works on eg clang 10 and clang 14 then it compiles also on all intermediate versions.

NB Package might work (we never tested it) on earlier version of these compilers. The only "real" requirement for lightsim2grid is to have a compiler supporting c++11 (at least).

Known issues

Storage units

There are discrepency in the handling of storage units, when the are not asked to produce / consume anything (setpoint is 0.) between pandapower and lightsim2grid only in the case where the storage unit is alone on its bus.

Pandapower does not detect it and the episode can continue. On the other side, lightsim2grid detects it and raise an error because in that case the grid is not connex anymore (which is the desired behaviour).

Compilation issue

On the clang compiler (default one on MacOS computer) it is sometime require to downgrade the pybind11 version to 2.6.2 to install the package.

You can downgrade pybind11 with: python -m pip install -U pybind11==2.6.2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lightsim2grid-0.11.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

lightsim2grid-0.11.0-cp314-cp314-win_arm64.whl (590.5 kB view details)

Uploaded CPython 3.14Windows ARM64

lightsim2grid-0.11.0-cp314-cp314-win_amd64.whl (644.1 kB view details)

Uploaded CPython 3.14Windows x86-64

lightsim2grid-0.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (913.8 kB view details)

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

lightsim2grid-0.11.0-cp314-cp314-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lightsim2grid-0.11.0-cp314-cp314-macosx_10_9_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

lightsim2grid-0.11.0-cp313-cp313-win_arm64.whl (576.8 kB view details)

Uploaded CPython 3.13Windows ARM64

lightsim2grid-0.11.0-cp313-cp313-win_amd64.whl (627.2 kB view details)

Uploaded CPython 3.13Windows x86-64

lightsim2grid-0.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (913.3 kB view details)

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

lightsim2grid-0.11.0-cp313-cp313-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.9+ x86-64

lightsim2grid-0.11.0-cp312-cp312-win_arm64.whl (576.7 kB view details)

Uploaded CPython 3.12Windows ARM64

lightsim2grid-0.11.0-cp312-cp312-win_amd64.whl (627.1 kB view details)

Uploaded CPython 3.12Windows x86-64

lightsim2grid-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (913.0 kB view details)

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

lightsim2grid-0.11.0-cp312-cp312-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.9+ x86-64

lightsim2grid-0.11.0-cp311-cp311-win_arm64.whl (575.8 kB view details)

Uploaded CPython 3.11Windows ARM64

lightsim2grid-0.11.0-cp311-cp311-win_amd64.whl (624.6 kB view details)

Uploaded CPython 3.11Windows x86-64

lightsim2grid-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (907.3 kB view details)

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

lightsim2grid-0.11.0-cp311-cp311-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

lightsim2grid-0.11.0-cp310-cp310-win_arm64.whl (576.0 kB view details)

Uploaded CPython 3.10Windows ARM64

lightsim2grid-0.11.0-cp310-cp310-win_amd64.whl (624.0 kB view details)

Uploaded CPython 3.10Windows x86-64

lightsim2grid-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (906.6 kB view details)

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

lightsim2grid-0.11.0-cp310-cp310-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lightsim2grid-0.11.0-cp310-cp310-macosx_10_9_x86_64.whl (797.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

lightsim2grid-0.11.0-cp39-cp39-win_arm64.whl (576.6 kB view details)

Uploaded CPython 3.9Windows ARM64

lightsim2grid-0.11.0-cp39-cp39-win_amd64.whl (653.1 kB view details)

Uploaded CPython 3.9Windows x86-64

lightsim2grid-0.11.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (906.6 kB view details)

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

lightsim2grid-0.11.0-cp39-cp39-macosx_11_0_arm64.whl (762.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

lightsim2grid-0.11.0-cp39-cp39-macosx_10_9_x86_64.whl (797.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

lightsim2grid-0.11.0-cp38-cp38-win_amd64.whl (623.7 kB view details)

Uploaded CPython 3.8Windows x86-64

lightsim2grid-0.11.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (906.2 kB view details)

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

lightsim2grid-0.11.0-cp38-cp38-macosx_11_0_arm64.whl (762.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

lightsim2grid-0.11.0-cp38-cp38-macosx_10_9_x86_64.whl (797.0 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for lightsim2grid-0.11.0.tar.gz
Algorithm Hash digest
SHA256 0bba59e90e91a07c9a3ad60185e309e1956e9066fc08627b2269ffcbca245d15
MD5 4835e59f9f2d6e129a164b52f60473c5
BLAKE2b-256 14e7abad2ea9e2cbe6defbaf7dc0aba257f4658ede2f24b09d7e8f3a87f89775

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 bac17c4b7425b9d2dcfdf75f3236c626ced876cc6814ecc94134cb1a46b1dba8
MD5 4e82b9f877734652ce756b5548e25709
BLAKE2b-256 11cdc8d382676610709f3faabfa6b7759c35d33244d83df2c6e8f8d37672667b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0848b3d0f7450cf6f7f60ee4dcea0f4e0d1337cda8c0eca6df0e93bfb464182f
MD5 6785afbcbaa6122bb2ef6f2ac6e3b50a
BLAKE2b-256 8fc76143baee671d24e24ce4208c59eff892c39fccf085ab9b3cb41f55342586

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5540977525012cbde94ceab61ae5ed82c0a5c52b048ea28a233271445574f046
MD5 48260e5824d4a310d58c238a3c7d6a54
BLAKE2b-256 b89895b0e6bed72bd5451817ae812d5efc9e274aef552559b936033aeae68a99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7ed643447c34f6d869f540e5fff9ae2cf36bad526a363586a1f6c217cf89349
MD5 dd6cfba9b1c559ee1fda648bba971d16
BLAKE2b-256 1b1cc259f9941a8373d78e5881e0841e5c498506c6bd3a2642d963e07be809e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 64c38ec9a8e12ba7918316e481acb841b7f705e30834aa862723095f8b771533
MD5 710baf064b8c2eac0c70bf568215dac2
BLAKE2b-256 e1b8907b8895cdf817e7dca60fc663d92a0e6f246b6762a5ec32a867bf6f7914

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 a74ed67b4b0e9516b2e9d87e15512ca26753a74cac822348b400abe2dbe8e2bf
MD5 67314c25f0618306628b09f60d9c7264
BLAKE2b-256 b6250ab27eb6c6d5273b0d3ef39882b5075965930e144aba9a80f585bc239898

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 18180dc3c2d4d020a86e66dd1704643275fc51bdcec1473655d534ae676b8952
MD5 f2b6b59b506728f31e6552f1e58b97ba
BLAKE2b-256 06bbd9dc5a44ccc062c1fdc2c9f706336a78018cb4aec1e4ea85536a40c6860b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 378f98d0953d5ec3f809da93b83a3f8a6aa04f396d100ab3467d7961eb121e65
MD5 97d7db5a599f8618682e3e55dccafd78
BLAKE2b-256 59b42bc16ad4b4d309b3b41874fdfb18298a76aeef24b12db5ccd74ba9c3f925

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c85b8a003d7f212efa2f6562ec2aedb3b8cb0aed0b9dafab55e4faf3831fcc48
MD5 18527d05e3c7e04c9987ff543a6fef15
BLAKE2b-256 b8a02e43d905d22db6c0613b9b1f949be036088446028c0e4a222572791fbfe6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0f41e68f1ff1309ff201f9fd0afae945e7d58ae9a645f769b850d3c541d0d14f
MD5 ec1bac7005b6869f07e472f6cdc4b906
BLAKE2b-256 d79d15f1eef5ba2c447017c1adf9c7601969039336ce7ec132f93208fcc0d465

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 00d97a68eb77f0c4e6787dd49a0b298d6d449cecd12580a95962e2dd65f0a5ed
MD5 c05cae5931f02eed229b5601f451ab91
BLAKE2b-256 04fe0dd01ba6883f0d2a95302232473e3fc2305bcd0355541f23445edfdaa9f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 aa7ba0adb1192b909e1f0a9475ee22ad98af18a9c1accd82c4b30c38d2040871
MD5 abd972f33996e8bffcfcd0e57bb072bd
BLAKE2b-256 d57f76c629ab9bfa4992ff38bae4fc44d7cc6489cdaf27fff3186a446c4d5b17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36e7761d8cb8f33386bee63109ecfe8dd69aac6a334d82058f2d9f416df1cbf3
MD5 18ac815138b0476afd96019e1e2b815f
BLAKE2b-256 b3a377dd657965ee7bd3767048e553fd4b01d3c4340a55467f2881699b172115

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 67cc6ff72096bbc846b0c5798cc6c9e8c345e759ad651805107280267f1db0af
MD5 ca58cd42ed4456b93cc7215f3ae81ff0
BLAKE2b-256 b6bf31d8c0fa99182a9dc24dc6c2999538cac221fe0f716922339ab57b78a075

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a279ca4740270b69fe5912ff6c60648035bf9c29453034bde7817817f1b0ad3d
MD5 259761e493d69a060ec003ac2d3ff5ca
BLAKE2b-256 cebbcaa92fd02972deb01c596fc8734139dd066b61b96268dabe5c9d61d69b83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 7cce194be101932d3b3a03bb9946cc3f4a3bc5c3d932d34b0d8722a22320f163
MD5 1f2fbcdbf56f4466d1cdfdf6e8407b80
BLAKE2b-256 e8ec61e306cb9c00e7cf76fe3709fbd19ab0a613606f60a85220f309324ebb2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5ca2379ea356bdbe7aa56f1eeca0a5660b683e07a954e237ab8a6fd5659066f0
MD5 be26a7f9e9fa02c3341f8b59dea8d48a
BLAKE2b-256 5c7ec72d12eca7779fbe97fc4f294d829c3666e1a4db98d542ae718f2fa43f1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d3d1167c61d5ee993003b573a8547019d856ad922d0759f0abbee87856613264
MD5 49ef13b9d6250042172862045cccc82e
BLAKE2b-256 49e33fa629de880185817ae2d1797d54fc493d059d24f16c96fc5bb71c3bdf5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f601dd2394427fea844d4f8786360fe1ef8688e3767ddd94a2a82fd3caa36ab
MD5 2e3d6104d05b5cdce30ca7caa7b2fa8e
BLAKE2b-256 aa4d53d6c3845ed8425b858642a96c9b4ce8be78be80b92db5a517483bb41255

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 71f4961f3c8cd4007dcdda61382fcc9ceabde25be1959ad941a37c5f904b9b68
MD5 7faf73dd059789f569a042d41aa13819
BLAKE2b-256 5c72841b5c82f80bdab01ad19a92f14634b56bff44dc560a93dce112071a3f88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 908f3a8c6d6659dce615c45f4329534b7853d0a4b1b5a6bf0b3f8280e1f145df
MD5 f6c7639e67a8d44045ab7ba48f568fc1
BLAKE2b-256 e38c4857f3a43ebf30dd480376359de0b1be416a6e4fcc152b87fbfba4ad3c47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 641e6a77bbf0fe420ab74110da77b60ae987dcb725ae36a3aaa81a0fd5fa1fcf
MD5 2875412b773075f846aa5156e20e5649
BLAKE2b-256 4474202ede80bab0ed3ddf759b329fb7084618cbb1ef3f12dcaa4d2b495fb476

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5451e682dcffa6f918c4015bf397642de595a57aeac50711fd4e77e490f02ec
MD5 1d43a495b75c5d47b22428035935e284
BLAKE2b-256 cce77a3940b8af0b8535ae33a2f269b15f461e3847a6a0f3baa95d2b28f52a30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b65013722635989bf80b8743889031ae050b2839a4086b107a94b15efe51a498
MD5 e8df9c48eca0834ddd0357713a57862c
BLAKE2b-256 0bf07110a695856b64e5b6b1182992cbf49d60c311dc25fc09ce1a55bb52cb50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cc35a0a97bf23d48951f48d2082e67189a71bff868453991e1738609f830d6ca
MD5 df13e02d5f667d3ed93c93bf3d057433
BLAKE2b-256 ae36c1458b1b4ba720e9d8d16c8fe22dcc984b0032d2ec3dc2ac7da9f2ed16db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 e73aaf83097d1d3501ae428f5ff13639cecce91a4064a7e5c7c25d496a0a24ef
MD5 784bbf3cd77e6e785d81bd0087b20653
BLAKE2b-256 e7b4d1910b16bcaf72d9f99e570f490a55bf68d84dd86f805a996bccf8a4453c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b9de7020a6494a32a8be8a67bc9f1d679d90306619da2d8dc2d3889a92225093
MD5 249c33c82d49b3112683223054dc3dc4
BLAKE2b-256 68163552478ed7c07390cbdabc6752b1cb4d204993242dd94160d2cb0295a937

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0569400d9afd9006d859489ac5a0cac6ea16bb6c1fc0f6241921c3ea62e6eba2
MD5 ad099f590668ad1aa059e9b11a236b82
BLAKE2b-256 67c8302996bf5af1d87edf1be017172942ec367f1416cb0c306d786babc020ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 91a11eb1052702f3d8d660faeb0fc8d646cd84ae36e1dd7f87dbf1d30465459a
MD5 03979fda058b53a1e2973c65b9ccee9a
BLAKE2b-256 aed62ade023fcc092492a576d18485024411043b98a54d5d6e380d8e22998949

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b2b5e1ae73d931e7730dde4dd9bbedf1c894638694bdc92d0a2fd99148740e2a
MD5 88682c6d472fce8ca5431bd08d30acb9
BLAKE2b-256 5d353182ccf0285fee83db087125859eeb3c4ece6b21c4e13a1d9f8146d30dad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 d64602986efab7c0373b36cb2e8faabe8adbc751fb1fdb73237c525bfd5b0393
MD5 10eec4ea9d90185b4948b2dbcfbf9411
BLAKE2b-256 1968455f6d18d7eb50bfb872fc3b00d16a13b1c60790e38388cbfcc4b26814dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7e6ab3122f0ba111d058bf54c4b31893ac464017f59c2c321c1dfcfbdbd16982
MD5 0249e7d78ada6937d4d2350d511ec731
BLAKE2b-256 5b93cb1c5de5a46946c9477c6a26ee3ab3ca37e0e4c8e85c65c9fab51f8e7a32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8f005787ec59891175873ff3393c4d89cde53e2a64c678cddfaecdef9ba01f2
MD5 f45d3d13698c63da070a9eb91d668595
BLAKE2b-256 c65113aba26defb90ce16b19e084933609f7e16a3c3c2f6871ea5c755eab0cce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.11.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 17b2850f2fc87969cf30830ece8237fb71573c678e127f013b0b5ba11a8fcfdf
MD5 1a4c5f871bb33cce09cf4e9b1e92399d
BLAKE2b-256 b3a9e7600312526946e41791406929c3e6d23bd189a0d32f39f325223d64b7dc

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