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.12.0.tar.gz (1.7 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.12.0-cp314-cp314-win_arm64.whl (608.0 kB view details)

Uploaded CPython 3.14Windows ARM64

lightsim2grid-0.12.0-cp314-cp314-win_amd64.whl (666.0 kB view details)

Uploaded CPython 3.14Windows x86-64

lightsim2grid-0.12.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (978.9 kB view details)

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

lightsim2grid-0.12.0-cp314-cp314-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

lightsim2grid-0.12.0-cp314-cp314-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

lightsim2grid-0.12.0-cp313-cp313-win_arm64.whl (592.3 kB view details)

Uploaded CPython 3.13Windows ARM64

lightsim2grid-0.12.0-cp313-cp313-win_amd64.whl (649.0 kB view details)

Uploaded CPython 3.13Windows x86-64

lightsim2grid-0.12.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (978.6 kB view details)

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

lightsim2grid-0.12.0-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lightsim2grid-0.12.0-cp313-cp313-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

lightsim2grid-0.12.0-cp312-cp312-win_arm64.whl (592.4 kB view details)

Uploaded CPython 3.12Windows ARM64

lightsim2grid-0.12.0-cp312-cp312-win_amd64.whl (649.0 kB view details)

Uploaded CPython 3.12Windows x86-64

lightsim2grid-0.12.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (978.7 kB view details)

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

lightsim2grid-0.12.0-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lightsim2grid-0.12.0-cp312-cp312-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

lightsim2grid-0.12.0-cp311-cp311-win_arm64.whl (591.9 kB view details)

Uploaded CPython 3.11Windows ARM64

lightsim2grid-0.12.0-cp311-cp311-win_amd64.whl (647.1 kB view details)

Uploaded CPython 3.11Windows x86-64

lightsim2grid-0.12.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (976.2 kB view details)

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

lightsim2grid-0.12.0-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

lightsim2grid-0.12.0-cp311-cp311-macosx_10_9_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lightsim2grid-0.12.0-cp310-cp310-win_arm64.whl (592.2 kB view details)

Uploaded CPython 3.10Windows ARM64

lightsim2grid-0.12.0-cp310-cp310-win_amd64.whl (646.4 kB view details)

Uploaded CPython 3.10Windows x86-64

lightsim2grid-0.12.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (975.7 kB view details)

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

lightsim2grid-0.12.0-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

lightsim2grid-0.12.0-cp310-cp310-macosx_10_9_x86_64.whl (851.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

lightsim2grid-0.12.0-cp39-cp39-win_arm64.whl (592.9 kB view details)

Uploaded CPython 3.9Windows ARM64

lightsim2grid-0.12.0-cp39-cp39-win_amd64.whl (677.2 kB view details)

Uploaded CPython 3.9Windows x86-64

lightsim2grid-0.12.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (975.9 kB view details)

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

lightsim2grid-0.12.0-cp39-cp39-macosx_11_0_arm64.whl (814.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

lightsim2grid-0.12.0-cp39-cp39-macosx_10_9_x86_64.whl (851.3 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

lightsim2grid-0.12.0-cp38-cp38-win_amd64.whl (645.7 kB view details)

Uploaded CPython 3.8Windows x86-64

lightsim2grid-0.12.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (975.2 kB view details)

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

lightsim2grid-0.12.0-cp38-cp38-macosx_11_0_arm64.whl (813.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

lightsim2grid-0.12.0-cp38-cp38-macosx_10_9_x86_64.whl (850.9 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for lightsim2grid-0.12.0.tar.gz
Algorithm Hash digest
SHA256 d8a1bd382d2fae965e4b078f1725f06b85be9ca2803d70533d6b96d45780cdd5
MD5 3eca3372afaca6dff0e8814a36337968
BLAKE2b-256 ff09b98ebc0fe33897a27e60e127ab663c15e79b180be216b83abe5046289cdf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 af8b0e93857dfcb14bacaa0a243547a7473560475622412ce5be3f74a0d2e43e
MD5 536a6e27ea3e2b2f7107ac31cf4e38b4
BLAKE2b-256 01af0925b62b832a07824ce6fa88cee7fc7ffa4ce3bfb264082c18d3a196f24a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4e9f24d33a9673a38047369463bc78249ad1f368abd72302cde5ca4e339d5dbd
MD5 0a51efb08a1a48d23f41e0efbb801519
BLAKE2b-256 e76fede90e349af81e880a9102c0bde9dc34ce22c5fd50d188a6777029dac699

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 312d02881667ab40eee63d7a6da525613896115070b19b9d9ec6d59819806221
MD5 e892a3b31d92e57c68d5675bf0eac964
BLAKE2b-256 7743c0049545fb8d0f3a38b6c7969d1a4f66a5f9d29c0c3cdd7fe86872ef4868

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00f9d589257e5d5d8b4fb279446ee93773ebdc577596dbed6cb1b42260a23869
MD5 fbb784fec0b3c7032c2ee9bff814c9f2
BLAKE2b-256 937e17a516ab71b8e7d01b2dbfb7bb7ea8cd521b15a2ce6d6ef98bfb1a484686

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9f29a8d2d9a97c7ecd9e11e8d4c2bbe95a1748a77975dcc5280e69cc6cb06f92
MD5 b62d15878329c9ea6e4239be432f2702
BLAKE2b-256 b3446742660b2ff3c22c4bd7ad6bfc2223cc4c91b807570b48af8e60df00e901

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 766c7694765d87e7a4dca651b77ccb87e1d79c7f3288976f1e0267656f8ab07e
MD5 f2a22caf0bbc4c76c5532b093ec9fd30
BLAKE2b-256 d30f89f3a57bfa3461ee3d45e4c5d06ede09571997e3816b2569c7465c84b82e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 06e9d7f90a32ff1d6ab18b51fa5a13b0b36b46c96a92b5f9256050870c272650
MD5 af6bad1ed14fc87b43f1aea3e5e7f362
BLAKE2b-256 1407626d1881375b6550f6086b5c43595386f77ec4fb0cc74d9f0d315d3fafa5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eac238fd06f022c04383b30009ee123d39809cccec42cf69390e382c874c31dc
MD5 145ebb605bce41849d75bb386618a40b
BLAKE2b-256 2186bc1d29a9d98aa60122b321126ccd3735cd991b7064f14327283322006351

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5d9988a7c74f6dbca2eb47c5880f0c1d8723391172fe4b9c6d53f4a8082efc23
MD5 e6642784e9fc4e64c412d9c03072b6f7
BLAKE2b-256 ce711ccb72949503483a34bcbdfffbae779c511aabe9befb7d9b806893ba2e7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 719ddb22957b834b508a2c5d3e56453bce230f19cab935c9fd4705e583b744e2
MD5 5c0c4c154b6efc9852f4cb83f8d29b9e
BLAKE2b-256 1a816422c1601ed0433b77ca68e16f0f2d025c4fac4af8b00bc588ddb29c01fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 1175594d5351de2b05cab5564e8edb17a2db1cd543053fe1058622ca6d8bd17b
MD5 e534c0123d7905841771f08a006cc2a5
BLAKE2b-256 6b2df9cc11ca0a2f5c8bda0508603fb0aaa415d069caef79931ca752c4844cea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3e3db7faed8c4485d12369cc3b390c6b840105c5fd4fe4acc4a8717855221b34
MD5 2878336e2720b001138606fb7fd01e7a
BLAKE2b-256 2c81bef1d69b8b21658390f60653bfc26dd1d895e939eb425f3c65bd1cd88e47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0073571f4289cbde68f337edfeab7032bfa7baac14a5b6a9943bbac48c151378
MD5 b05fbe31aa95b4069e82ddd9d8b82a87
BLAKE2b-256 0c4dce8449c6c178bf30c3e504e480d79d9080ca4dc6b3c60bc0f2b2c7c062a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2bb95db5964bb72cfa6d3a9cfb0e5d661316580509fca90ca9e66124e128ce54
MD5 4f7cc34a26dd075af759691a792defa2
BLAKE2b-256 400a035abeaea5ef0c8f282725040e2422d8755d35ea010208b6a7cd0710a763

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 38f985e39f7afb01397ddfb9c14382e66d172f11cd6c6924fbbf03792063644b
MD5 2bb8ebc6f6206aef69223369312f62d5
BLAKE2b-256 86074d34de57a180af3021d82febd30d4fb450d821ae1209f93ef328b56648e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 8ad95b288297c4720cc1601415e0bf60ca10573e0f6b6b96c669d29e65a89df0
MD5 18d2027cb11a08058768096f6eac73ed
BLAKE2b-256 3a833dbaf9c7d05767ca73f2ab739418c10f8db423eedc731a9dfd106180902d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 95fccf7c0798614b48d6f5ea92e853c4607f70767c5a15f76330c5055d9cc0ef
MD5 15293556cd2ee1a9d9cfa0d9dbc8cee2
BLAKE2b-256 c965ec904e7c9e4fa7b5ebb472724707006eb1587c627899cda1a6017fe7ad00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 28e6c1f94d5b2feb411c88fea13c21a49473923f19b1f20352af3a5c3c792a37
MD5 7253ee6fdb4cf7c5195ebca6d9256621
BLAKE2b-256 8df155f17d7000b84d018166d17c4c34dfdafe53d500d7542029c7e3ca6295e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 30b0d95ced2fe31e391a65590092e868827ad541aa2e4ca185e219d431c4e76d
MD5 cae739eb1d91556f93136501ec35532a
BLAKE2b-256 5ff06fe3fe0bda7d454678cb63b2eb81dd57f82f605a7bca046fad6ef52d7f7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9cb22ef0953bad278afeae54f3c70e6023bdf7abc15b0368326afc055175085a
MD5 227e92dbf4baa6a27bc4f393274b8a11
BLAKE2b-256 3c1a0a8f38b8f95e27d1248b2d5aedd650180c2875069813a0e733576b94db22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 b0436976300cb49f7bbd20bcc82de2cca95cc7a204ca801e69b3b57f1eb85ebf
MD5 01c7d8d4bc11fcc462cfcc1bb5a2b69f
BLAKE2b-256 604c58382ca6b8c88754a69cf2de533d175ac9bdd40f0ebcf9217f005bb66ed8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 819e77c88c2282f5a1b56130555bb998a53e29a8a43cb13f2afaa8e9dd96d105
MD5 523a29c8e3ad8eb40da60d45fa226031
BLAKE2b-256 4bd4adb01a70a8c01ef7ff51839e245fb28b84fbc133fa578d75f5051d8bc587

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76fc20f8d526e95cd1d0d7c2fe0fdc8a2dbd8180568c7bbd4a8de5b31f77616b
MD5 a3ac30d8ac3b5a72b3b0375fedc8cecf
BLAKE2b-256 17cd664080c4e15af1e6828a0ac406168253279e8df8f6efd7686ed47f6b0832

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b2fcb9d30b016889c05ff477c9261ffed8c69eca169ebcddf0d61a8256e19f6
MD5 824c38f1346b37f3ca0822b5f3424e74
BLAKE2b-256 bedd5b71326c02fb4d2a19da1bca5f9ce76bde1b894001082fb33a1957e00f0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 392178e774d834395f8ba40393c658b584cd2b80532962db7068bd31e9bc31f6
MD5 5c19f48375b769a926c80f38da54b144
BLAKE2b-256 8a1ce0f9adde142baeef31c9dec6ac902f4a51790ed594178af5dcec3a746842

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 48563cc0b5b82c98975298b870659efdc96c8831fa4d9efba4375db683a0d232
MD5 3febd5d4900eb29208df652610498914
BLAKE2b-256 3a9318b9e52ce66c6b28632e57246306d5de2f91cb738f2a872c2d33ab3e60f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 711ab8fb2891d3f3cc04adbe32dafe5d94fcad4ba6824ad2a8ad08a3ae84f3bb
MD5 267b3f10cc2c123ae6bed8b1ee8b6998
BLAKE2b-256 990c1ba8d4bc8c79e01e20a6c51e6d4bfd6757bac0cc6db41163938720d96964

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 abf421e1315e8387e5978f0f640d62d09585119ecc4e128a91b5b7ef3823c65b
MD5 c8bebc5ec90863c79e3c7e29ca3a175b
BLAKE2b-256 3c5b3518b53255dd1c052a328acbfabb7136798106ca0290fce4d4e4737ebf73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f746164e92f7ace31cec8e289272cf01f0649c2f5a6c7092cf99dec46e70daf
MD5 939006f091fde8696576eddfc9f993e3
BLAKE2b-256 38d4625a0a30556a706b2eccb7ebef06b3837983e6e6139cb94f4422352fe52c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b28d8ebc2d9a8a266973ec2e24af76375166b4967b767a574efcb5371fe59c62
MD5 d192f174bee628f42f42a4fdca59f4de
BLAKE2b-256 bd1f84ed782219eada177086c2bd2d349ca1211f5877ed427aaa7e0a7409fc70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 88de656e8dfe199e3e1e84c40eb490f1c8943c6dab2b01274b19ede44419476a
MD5 7f201f158c4b227c552ca5f3388da69e
BLAKE2b-256 784561acf1117df1bed724b2db3e79872485eb025e6699bccac4b2cfb0b24289

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 385447406b9a4d1fdb463bf65319444e3f913a60f17fdf1b6c3669ccea39fca7
MD5 bf17bdb6ce75072e1f955a804cb463e0
BLAKE2b-256 51b857f515a382e942b98184428b9261076238b5317718b235910745babb4596

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71952ea14f19b0d1fa8f3c8e5e20327ad1af988cd968a094bd1b25ec641bdc72
MD5 eeb3066ad5f7a69c7d91e3fa5385c612
BLAKE2b-256 c77418510326b72510648ec5215f9a47a20e55c81652b5b56671d85bdb3bf084

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2ee8e8ab56a503dcc98d1123b582fe6b73f4b17c530d0930f6242a678457a768
MD5 88cefb7b984e1cfdf67e38f08c4c628c
BLAKE2b-256 79d41b62f3f060511e5de9440c7b6b1c9ff23fb92f175e527dced4e835e9cb09

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