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

Uploaded CPython 3.13Windows ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

LightSim2Grid-0.10.1-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-cp312-cp312-win_arm64.whl (543.0 kB view details)

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

LightSim2Grid-0.10.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (869.1 kB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

LightSim2Grid-0.10.1-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-cp311-cp311-win_arm64.whl (543.0 kB view details)

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

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

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

LightSim2Grid-0.10.1-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-cp310-cp310-win_arm64.whl (542.1 kB view details)

Uploaded CPython 3.10Windows ARM64

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

Uploaded CPython 3.10Windows x86-64

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

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

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows ARM64

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

Uploaded CPython 3.9Windows x86-64

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

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

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

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.9+ x86-64

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

Uploaded CPython 3.8Windows x86-64

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

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

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

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.8macOS 10.9+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

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

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

LightSim2Grid-0.10.1-cp37-cp37m-macosx_10_9_x86_64.whl (784.2 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: lightsim2grid-0.10.1.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.tar.gz
Algorithm Hash digest
SHA256 88b03760c3e5267d08ae9703d48396a9ab8443b6ce3b41cd76a1a102b1e1688a
MD5 f6d2e99ed0aa3094349962a8b45497f8
BLAKE2b-256 626f0a2246b730f9ea499b66f1e949f65d22223c8e6b961b754aa3af79ccca91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 3acabb6787798e35493b1713dd3232be1f14a996494e1f7d2f6be826dc142ce5
MD5 ee49bcb306826bff12f6c6e00498a3ab
BLAKE2b-256 e5e034f3c0fa9d5354fa9d20b2e29915acb6a661e8fa79a5cbba7ef0de10f1d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4552bc2aa6d383b59d86eb7b2b88e064af807db9f3627bdbbda714fa3f650ead
MD5 2b5cf78ed07f8627b1f39626e2cb2b60
BLAKE2b-256 bc3bb672b4f7519b4f6846587d0c697465b33532608a732a878b0b18329785f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8abb943770f9be7fe326aa7768bbbafed06fadeb6f28dd734b7b41103c32b89
MD5 448a8cd1dfd25fe716f13f3c74635f5a
BLAKE2b-256 ccd5f8116bfa60a223d7d7d6d0f5baafe9103308ef2fce4d9f945a421a37f9e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffbf7c9037d623ab20b20cfa6bf87d1e1d2cfed5ac0cd09e0b2f0b40ab355b24
MD5 b02881ea344f189083b1d1ec049ee113
BLAKE2b-256 c594236b65c559a93ce796a42089c755ae02a3166e4569975dd8a1c533f2cc09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8464e536d1b3c21e15ca5db7a8fa88d8df2a2906665128e0b1bd71e9f914a19b
MD5 98faa853f00585f2733cd6aa2b1e942a
BLAKE2b-256 74aa46e722eb0f0162f9715c7919888bdb5146d91222edc79a93100a7475b878

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 1948f7570c399a4a82f3544248de3befa6eab04d90a562c4f505b4a842709d7e
MD5 688765e899e1e8378e730525713ae2fd
BLAKE2b-256 ddd2040dd0e6ea283b6e7504166990115b80f8d5ed8f8c9905b14024e5cbb87b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a197c57d34b127e203ed7280a09108baa90aef8099083e50b0fbc06e11b0a3cf
MD5 b8af3a43a7e332cde02f24c0989da281
BLAKE2b-256 f87101b70670341f64d9276b9c4ae83b75f91c6d10c609506ab77d6699cb8e02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa796a02ce1841a6e551204360c5698fdb7d6c1642f84c5ae79acd3d35e72192
MD5 15816f188d8ac7d5c6848530f14a6aff
BLAKE2b-256 007d24b8c7b6bc729797c2d9808b5a50675a399514dcbf9a2bc48ad97431d0ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b04d7d4b8d658d8238a68fe2dc266908910856ada0a1f5c9ebe14b3124a13ef
MD5 778de3bb59c6d5328312fd8e48994109
BLAKE2b-256 13093035f8e06c49366b14855b724d0436a1788309c79d08fb0cd8d8a6690040

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bf3d97b1d763a7092049d6627b4105dab171dbba652c1da967c57fb148bbcbf7
MD5 84830f44e2bfdbb25b62693189f7626c
BLAKE2b-256 fbe1aa11cc06d77389405103e82b6fa8949f7c44efc5da572e64bf842538327c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 016d02ba5b2a26656dc87d5fdfb3d62e923501f5d95b2bf77293b5b92fa52cd8
MD5 7f382d619593efa8809f59b37b93b16d
BLAKE2b-256 c2111e55a05b18a067a77d28dfa3fdc2efe745f419ad6a5fc21153940a039609

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ec1f549eb943678d542bb74c8b9b571b1d8147cc00ced4477857c6283f042247
MD5 6a204abcf5087eb5cbee67179310678e
BLAKE2b-256 7f6d49476887bee6035cd84617b16116d241bd239c0740732d3b0a203f097569

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 771ac372fd9b739019c76bfac11b0b17b5c7a09077c2f223bb7c684c43403116
MD5 4095f1d2fcf18c4ec94671433ef0dcec
BLAKE2b-256 408d658a1380669a985bb3b0b887a5e94b61f2345ac6868a7e9f4d6939932d47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a596852122989782e55e3a116bc68c535d8e6f29e17d96fa69ce3b454feaf4b1
MD5 d2699781fc857ed7d1c515f057fe92fb
BLAKE2b-256 6334d97e369bcffb2fde842d45f695f2bba27c6c8a3a08e748eaaa6ef7b3f0b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 db1d1757c5dce6bdc9241da5163eddadd163026df79af99385c91f14b4084328
MD5 46d804b81111e0152eddf7a315656fc4
BLAKE2b-256 992b8a9bec35fc8613fadcf3b87237060b3bdf58654a2709750ef071a8c69557

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 c28102f238a6af985c39b70d25702edadb3e7f7be788d2725554a57d6a763686
MD5 f3100b6021a3bee0ee7c321ef881ff15
BLAKE2b-256 d8e3960127b91f13adc20eddd8e8a3d7344a3abd55f84cae594dd36169094244

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7eefb48e7526c679856fef578e5383cd03158d772f7680ea066823bc76b42194
MD5 e52eb16115a2800cf552fab5323ec9b7
BLAKE2b-256 693307c12a6fc9c467a707528193dea726738b52422b41c7bbefc0c7175f4194

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 32922b726d951b8fa5e6db61dffd7a0a8fc6af2ffde7cdccb9bc54e2748da54e
MD5 a2d3b6fdb241a54f81375df0df3d60b2
BLAKE2b-256 5627da223b3c3818b3e7f0fc6576e25afed08da08477637e76dbbc129ed79444

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 823f1263184f96adbfb7fac88bd8c2ecdd8dbbbde58b77f4b6c2065e99a1db31
MD5 c19d5b41cdfddef750e02bec2e9a9767
BLAKE2b-256 74dd701256a9825ff93cc89ba012ddf23a99da25f6fd94ae46dd16a8dbb7b074

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cb3798feb31ec7000ffe29c15edca9c244b149b6cbe14b91e748403ac03760a8
MD5 86116fea6acaa9e6054497fff425d525
BLAKE2b-256 6a01b7c0b8458c511e5b8360a5eba3b68eb819d74b5cfe7e6014b7c59bc5e73d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 8e7eac28496d40cce7f24f5eab57f49c60f5578c08a3ba2cee292c517a62cc3b
MD5 cca014df19d9828f4375a00ee39605ca
BLAKE2b-256 ca972d7045cee2cf281cf511ac1d3a73e1363ca2a75578c8b41cd954559027ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b3a2edf84e8d1aec15dfed3faacbcf80dfdb7039f2d71852c0be6f53c44afb7f
MD5 c710180100d7735daa7266332bc8b737
BLAKE2b-256 44eedc7eb80861d742ae6a97f6a79d8526cc0eb736ab36b7f12ef8b30785d4da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cf621aa3074bfa3472102606572de22b7f0ebbeb3e0981d00ab5cc3625432858
MD5 b7968c7bbb2ac9afe560a6c707679052
BLAKE2b-256 5dae8458ec1eb44537355ebf75ec58909ae94338a4816d833ca7393f44b4ef05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d3536b02f20718a0cbc7dc1b4fec61fab08ab5ff23bc79ee084c6a1ff02d03f3
MD5 b4267bd72143db8d1d1d3ec2ab8b0118
BLAKE2b-256 bd7ba5a790bc850550a9e0b50e20c969a02797548d5e19aa65c67916793eaff5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2d3c7aec55e67c0a3c147a031890852f87bf39ad69a3c25100de68dd558cc62d
MD5 549dcc5ff9570cc7c215b3bc32abf81a
BLAKE2b-256 b1c648df4a570ac4baff92e4865dc4dc357a4dec6e2e802133113d2e85381202

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ad9beeb9af7fa336e77bb453a763154dd254932b5f26dc282bc92fc43963798e
MD5 0203458390b6535083f10c3eacff77f5
BLAKE2b-256 627aed75639181f2fe1c6b037f005eeca97db144929b44527ef78bd94f980827

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 094165335122313eafa1c9b6803574b8755c9286aa364437fc6745cfd1521251
MD5 e166e62548ae2477f43cc1fd9b7f04b0
BLAKE2b-256 02724fde10e33bc4f396fccd972b546e039877fc44e82a236465f4451bbaaa7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee1c8cdbb7ff0e2bee8acd2767b3b5e8abc140cedfd4714d7d22e488365ad05d
MD5 3b9e23e2b8242d3badeace55295662c2
BLAKE2b-256 e7ec1707245db9a299100446c66a2e8b2acb09b2970d417c1e6ac16c00519f19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b793a1796c535557586151ae805b16694adbb8e08330a3a463105ab08ce84aa6
MD5 44b410ebe03bf571416f3d08c23a1af8
BLAKE2b-256 945577b4403b0f331f7fdba4aaad50281750c29f8579d5db769578f7a0c22bc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 38d0eb0eb3b26f030185c4f9fb4950a44cb3ff39564f6b43fd3f5a5ee5201fb6
MD5 a81d1a0d73e837706e333f7251dcf108
BLAKE2b-256 1f9327509ed558ff551e431328715eaeb757679f4d595f672e6b893b0bd4367a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad7811b58c995eacf4a9ce0649c38f34675cbf87e2a615ece287ba341287d9a7
MD5 839331adee0dfc262933c34913f9b407
BLAKE2b-256 1e86548249f036a4d1a42fa09db0d6649e03f16dbae3e69208cf10aab7cf07ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.10.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c2de5d947847af8eab96d195e19a7eec5243422d8c1d68368ccaf534ac7b58fb
MD5 bd1ff17f36c621c1e988f9e344abcb0f
BLAKE2b-256 0cc8798e5b4a508a30ed4bcee2972da1fbe7830f54716ab12cc9141cab3bfa81

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