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, 14 and 15) and clang (version 11, 20 and 21).

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 11 and clang 21 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++14 (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.1.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.1-cp314-cp314-win_arm64.whl (622.1 kB view details)

Uploaded CPython 3.14Windows ARM64

lightsim2grid-0.12.1-cp314-cp314-win_amd64.whl (681.3 kB view details)

Uploaded CPython 3.14Windows x86-64

lightsim2grid-0.12.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

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

Uploaded CPython 3.14macOS 11.0+ ARM64

lightsim2grid-0.12.1-cp314-cp314-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

lightsim2grid-0.12.1-cp313-cp313-win_arm64.whl (607.9 kB view details)

Uploaded CPython 3.13Windows ARM64

lightsim2grid-0.12.1-cp313-cp313-win_amd64.whl (665.3 kB view details)

Uploaded CPython 3.13Windows x86-64

lightsim2grid-0.12.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.1-cp313-cp313-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

lightsim2grid-0.12.1-cp313-cp313-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

lightsim2grid-0.12.1-cp312-cp312-win_arm64.whl (607.9 kB view details)

Uploaded CPython 3.12Windows ARM64

lightsim2grid-0.12.1-cp312-cp312-win_amd64.whl (665.2 kB view details)

Uploaded CPython 3.12Windows x86-64

lightsim2grid-0.12.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.1-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

lightsim2grid-0.12.1-cp312-cp312-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

lightsim2grid-0.12.1-cp311-cp311-win_arm64.whl (607.1 kB view details)

Uploaded CPython 3.11Windows ARM64

lightsim2grid-0.12.1-cp311-cp311-win_amd64.whl (661.9 kB view details)

Uploaded CPython 3.11Windows x86-64

lightsim2grid-0.12.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

lightsim2grid-0.12.1-cp311-cp311-macosx_10_9_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

lightsim2grid-0.12.1-cp310-cp310-win_arm64.whl (607.4 kB view details)

Uploaded CPython 3.10Windows ARM64

lightsim2grid-0.12.1-cp310-cp310-win_amd64.whl (661.1 kB view details)

Uploaded CPython 3.10Windows x86-64

lightsim2grid-0.12.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

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

Uploaded CPython 3.10macOS 11.0+ ARM64

lightsim2grid-0.12.1-cp310-cp310-macosx_10_9_x86_64.whl (879.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

lightsim2grid-0.12.1-cp39-cp39-win_arm64.whl (608.2 kB view details)

Uploaded CPython 3.9Windows ARM64

lightsim2grid-0.12.1-cp39-cp39-win_amd64.whl (695.2 kB view details)

Uploaded CPython 3.9Windows x86-64

lightsim2grid-0.12.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.1-cp39-cp39-macosx_11_0_arm64.whl (845.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

lightsim2grid-0.12.1-cp39-cp39-macosx_10_9_x86_64.whl (879.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

lightsim2grid-0.12.1-cp38-cp38-win_amd64.whl (660.7 kB view details)

Uploaded CPython 3.8Windows x86-64

lightsim2grid-0.12.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.0 MB view details)

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

lightsim2grid-0.12.1-cp38-cp38-macosx_11_0_arm64.whl (845.1 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

lightsim2grid-0.12.1-cp38-cp38-macosx_10_9_x86_64.whl (879.2 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: lightsim2grid-0.12.1.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.1.tar.gz
Algorithm Hash digest
SHA256 719f6fcd2be45d6555a82ffdc16bf5b47ce3c8e8771d408505afd5a3d7a67ec1
MD5 468c02615e7da21aa7188965bee11d5f
BLAKE2b-256 db6ba640225d177bca1ad194e20bbb4941a98bbad6c6d77334f7255133469f09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 9feddacbb41318581040b11e7fac35788a3b61c663b1ff1c204de90bc67ff481
MD5 4db8c56cceecce83db8334d1148f1df4
BLAKE2b-256 43d18930ae2dd51d636b1d8df93fc527d6a134dcf3b7ff0298e64c488285caa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e62b642b570674868c4a4cb4fe52319b24bea0a16675cf8b547a866d7528a81c
MD5 738e8421b59d17115df7e2b35bb7401c
BLAKE2b-256 3fa880505089de9d875a7bbbb9bec037b816adfc392057da336964d93cf2d3b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98afd1f3dd921dad46891289bab48f26181996ecb015475f5e077086271f5138
MD5 287ba1434b09081bc3facc699d47b670
BLAKE2b-256 113a434bc36d40f7e35e2f685301ba001a998b0021f3a3924ffff2027cc9f109

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16111d32a264f5da4937348786a6323bac871ce0e82121d0098c6ca598ba29c4
MD5 7138ad34f4e8dc565510657214ec51c2
BLAKE2b-256 0f649712aebd3b8043ed89c03bec07d609a7a1b7718a43a6feaaab9fbf35d76d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 df87a2058cddd7c37db9a398608597f4683a4101a370cd47b6ce72bbba6c9f07
MD5 7ecd31fec8778c9c2f378b755243aeee
BLAKE2b-256 6fb6e11f852c599430e33616ad27549571d3ee267ca9fbb75528cd64a3b232d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 549de03438854ab7ec7eafa201220c2829bcb7fee24f97531a6e18f198bef478
MD5 bb13e99e6477d371bc3d4041b914fddd
BLAKE2b-256 1cd05be069100ad844df6c126cfc65fadafcfc84fffde6fd83eb4aa4e6f0b176

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3009a512c7a0ef837ffc35c2b22a3fa0f71ccc4340f014c84f8e1583c9f360cd
MD5 57a15f4f72d0b151582f5d6150f7a5f9
BLAKE2b-256 86f5cbc6e67790d89ac749974a32d1e524a7b4e84968f5d1a2ae11fa6204d37c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15e3cd5804ff26fc223822cfe73dfeadab5bcf19476089a9bef686e0a5de1963
MD5 83d2fa686cac9ac1ec0d2ab54f89e933
BLAKE2b-256 c4ee971558afaac2a97582b7c11b66b6a1f19f01cf1d82dc7081d3fded79d63e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e96fbdc92f369f8d5846a446c4894e3aebd582ffd95f3af8ee022266eccba36
MD5 df0f8654873e51d7b297f1e76ad8e960
BLAKE2b-256 e4c1646cf44e44c6845c89453cbdbaaafa730a2cc38658fd0524e66ee7c8744f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2e6ac63852e84f83b3f46e20c7888aa286c7780326371be524d1582bcb3ffce1
MD5 eafdc06d43cdabd90f027eb9201cdc39
BLAKE2b-256 94410e85f0d571c5037208edfe57e75868785178ebbbf0cb3500ebe51d0f13c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 172beec7389ea0d1aaf1e219f3f5923437abdcba941995ac3c47725ec502c1b7
MD5 834dae7c38a1bc41d3e20c60e39c4ae4
BLAKE2b-256 ed9a0d28b6e727b615f5a19a262284478b650fb1ced6eedc983f9ea350f3e5e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 503fffd97e0197fd3a0024abd07604571c47a9a249a0205e6a982a742cb9a89a
MD5 150f5bfc0101b5cda368749994a2ddf6
BLAKE2b-256 d6968d573caac542fe7aeb082d2e2c00814a99c9882438ee35e582c7bcd82014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c5d4e75b6b6036ce25671f50ce5844d36ccd1ff4e53cfd9bd36c404e60ac833
MD5 367b2db39c0c469810b3c4474f1d840b
BLAKE2b-256 5c03f75bce89b73323c0db8f310cf98b13601266abbe1e4adb1663c3ee7b0a18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3c3402d224c3414a4e1682ab4175bdcc759c1dbc4ca10bb70c7da965325638d
MD5 a281502c87a7aa9060b5bf49ad5f8758
BLAKE2b-256 45cceed8b3f1d6041986ffeeeb45ade2f8afc336cc66344de98d4f40addb8231

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4fb3bcfdb5ed38f315227196fe0da987258659689d727ac8b77fdf2ddcddf688
MD5 a59f36d3592b660c6ac28e6530d43779
BLAKE2b-256 89ad1570808b1e039af2d73e51aadbdffaf5261c6e18884d792daa07f0745796

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 e1d7bebec8d2a30a9dbbe8afac06a01130695c5c13ef47aaccd9fa3170116cad
MD5 3eb84431596fa3d79086eacaae66a82f
BLAKE2b-256 4da865260ac637333b4ec640f62e3c1c105087af7ffc9b61a65fe08cb4f72986

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c5f7f12ba74482e39482f62c9e485c8b4c37c9a23466973bd5d88debed609492
MD5 1409de6bea5ea0fc7cf742e56014fef5
BLAKE2b-256 da4ba9eb70e1c7d93d0c665518d261dcf4a611d2d32d21542f69ad89c7cddab7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c87f720c60eafa588f9292f814a7c5d4829d9f490a7f001ffb2a27e4e7ca311f
MD5 9dbec4582f8e28e1db0d16d8905db31f
BLAKE2b-256 f3bed2f40e1628573e4a9798be4b8bfc48357e7b3965dcaa56d62eaae81eab69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ac9a1843774f51bc893c520c9a3c8500e9bfbf440f40cc0f2c032e2b05acb8d
MD5 786795aa5077d3415e82aeedbf93d89c
BLAKE2b-256 344aefc3436e4fdfbfa9e5eaf135b6c7b908f3901e19a4c130e5216d9b7b984c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5da6c04d5eac85713eca835c383bd18461780360b1795832816d363a76c14d4f
MD5 7622099c340478c087a46eb30b343e34
BLAKE2b-256 ffae225e8b70a180a642bdc18b8660983c3d2cfa5f19a425b4ead8590ab7eebb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 1f95f87936207ed820517d878ab1f364a1dfa7ea97058e69ca4b37717e2a55d5
MD5 90d060f65d0d88d2dc0a5231596a542f
BLAKE2b-256 45d29d5d0d5f9d2f7bee9d4a3d280725958083c4cfdd5f57e34699d5a497e503

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 63e4bff5cde0def0f24cd733cfdf9295bbd98cb15851d38e6a79a004062d3dac
MD5 781e07c1e53c2ea6a4fe5f134e8f519a
BLAKE2b-256 a1bfe689957c8f08da46cd6ca67a5b39e4da8408755c8e6cbcae7303caecbad0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ad51cd006a649d1edb69e0bf340e3b3283a51038183607f0c3647352d3f03c8
MD5 96fd374fd88edde7a4ffaf5f865b9515
BLAKE2b-256 a1fb34a16251473cb4075bcb00b17f9404fe35a5bd137e07a12ba1dfd92cf8c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2f3be16ed3782ff50bed094b21359cb5c1a4e388c13983c0af39c83a83f9d04
MD5 13a0732e5993af9262d79b16fe44343b
BLAKE2b-256 85c93299f39646922abadc4f66205e5440e2e4b3160a8f16e8a2eb88f04245da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 17be8729d159d83604c54cc030a45a4ab29a09db5b9c2af253262331d8ec5d64
MD5 5c55256989a372e73312eead58c2e723
BLAKE2b-256 0e5a8fe8c341636cbaf7ef08b6217f089b951f098efbf830354692504e56b0a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 fc93bc8c57a769500f281346a4aa67c19b386ddc6b363feeea5d135215ccc625
MD5 18a02685d0efbd2171970660f329636a
BLAKE2b-256 984f4d06fda6a764ecb9ed1881f42f71fb0a9a06ae2e4f3db0205df543a613a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 61221f62826dfa6c8a30cfcc35803a3364c6faaa5c90e6415422aeed1b8b768c
MD5 be2894c2b319836e177694e316ca4d6f
BLAKE2b-256 18bb481e3466c14682e0fd8c1219bbe05ca8422499929ac8f4f4a59e9aefbc30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8492930620ee702b958b76e6223e2df96cecf144baa2611584a8489acfe3c2c2
MD5 a679ca270f8d3033cbb25debb2d9aa42
BLAKE2b-256 58f0db0f27b6504927a6cd3945b6d7fcea246e9a8158ba7c7bb82e868c56e890

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 03c8c5ac201c3978b437f04a411327301f466f86051951ab1dba4485ebd3b021
MD5 a8ff62813d8e10d2749a46afe36d61a7
BLAKE2b-256 15adde043a95ea946b0bc1a647c482d2eb0273eb96cfcb8f5f641189a5925182

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 83e0c7ecadeff1c5610c4e4340d94706a254010d297f522dc6eb1f3d75a1c89d
MD5 ccf9fef21b29f4c485e7ec8a29c0c170
BLAKE2b-256 01c01323ccdbf1fd062359b3011d7a08539431e8aafd5b478aeef0525376ce50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9622643de8ecb1d0e109c312510ebc38772c0ece50efb9940ae2af7bda169fdb
MD5 5d9a86336c21fa58a87b637fb6001114
BLAKE2b-256 048ee9a3b35ddbe8aae67e1a918e5738311ef90a49f4c843c00f8bfbcf203e11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2036cf999fd7e6cbba2f725a4c150ca5b247db1316a1685e4ea28ff24b3a25ec
MD5 ce2b1f915225b13796df071118e0d642
BLAKE2b-256 243d3b41fd2eba4b725e9a291fd714a53fb8f114666b440abd744f7e58b89f66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96598bfc648a9504fd6449df966f64c06795a1468a012bc9a898c67ab4c6c608
MD5 6f5f230fa3f1a2214ce4f913d54284bc
BLAKE2b-256 e3b58a81e18c5b7950a3bce2399ae85bafd56de0f663d7b8c26024a3f0fc4f11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lightsim2grid-0.12.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4157a9c54a8b548ab7288b8faee5dba229b108072aea2f34f12484a362ecd7b6
MD5 b3557a44fdd3f5cb05ae43466bbcdaf7
BLAKE2b-256 66c552e187b2cd2a2cc0df0b1a722c7a315830cd362461f5ed99ddd16bb2f04d

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