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 LSGrid 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-1.0.0rc1.tar.gz (3.0 MB view details)

Uploaded Source

Built Distributions

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

lightsim2grid-1.0.0rc1-cp314-cp314-win_arm64.whl (4.4 MB view details)

Uploaded CPython 3.14Windows ARM64

lightsim2grid-1.0.0rc1-cp314-cp314-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.14Windows x86-64

lightsim2grid-1.0.0rc1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

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

lightsim2grid-1.0.0rc1-cp314-cp314-macosx_15_0_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

lightsim2grid-1.0.0rc1-cp314-cp314-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

lightsim2grid-1.0.0rc1-cp313-cp313-win_arm64.whl (4.3 MB view details)

Uploaded CPython 3.13Windows ARM64

lightsim2grid-1.0.0rc1-cp313-cp313-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.13Windows x86-64

lightsim2grid-1.0.0rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

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

lightsim2grid-1.0.0rc1-cp313-cp313-macosx_15_0_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

lightsim2grid-1.0.0rc1-cp313-cp313-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

lightsim2grid-1.0.0rc1-cp312-cp312-win_arm64.whl (4.3 MB view details)

Uploaded CPython 3.12Windows ARM64

lightsim2grid-1.0.0rc1-cp312-cp312-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.12Windows x86-64

lightsim2grid-1.0.0rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

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

lightsim2grid-1.0.0rc1-cp312-cp312-macosx_15_0_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

lightsim2grid-1.0.0rc1-cp312-cp312-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

lightsim2grid-1.0.0rc1-cp311-cp311-win_arm64.whl (4.3 MB view details)

Uploaded CPython 3.11Windows ARM64

lightsim2grid-1.0.0rc1-cp311-cp311-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.11Windows x86-64

lightsim2grid-1.0.0rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

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

lightsim2grid-1.0.0rc1-cp311-cp311-macosx_15_0_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

lightsim2grid-1.0.0rc1-cp311-cp311-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

lightsim2grid-1.0.0rc1-cp310-cp310-win_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10Windows ARM64

lightsim2grid-1.0.0rc1-cp310-cp310-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.10Windows x86-64

lightsim2grid-1.0.0rc1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

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

lightsim2grid-1.0.0rc1-cp310-cp310-macosx_15_0_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

lightsim2grid-1.0.0rc1-cp310-cp310-macosx_14_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

lightsim2grid-1.0.0rc1-cp39-cp39-win_arm64.whl (4.3 MB view details)

Uploaded CPython 3.9Windows ARM64

lightsim2grid-1.0.0rc1-cp39-cp39-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.9Windows x86-64

lightsim2grid-1.0.0rc1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

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

lightsim2grid-1.0.0rc1-cp39-cp39-macosx_15_0_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.9macOS 15.0+ x86-64

lightsim2grid-1.0.0rc1-cp39-cp39-macosx_11_0_arm64.whl (4.5 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file lightsim2grid-1.0.0rc1.tar.gz.

File metadata

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

File hashes

Hashes for lightsim2grid-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 c37c091c5f342c604426470ec636db6153f480346f45d61b32c0c73619fb2c8d
MD5 e50bf68d0a3f359368e92f0728f6fbf1
BLAKE2b-256 7688412a18de9b134faf5f51d71c1235d863d599cd8450b904c59b033016a600

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp314-cp314-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 f2fb865ed7e9f5ed1ae51720ede9f206ad9948bed17a2ff88dfb23e3c8212cdf
MD5 20445fef81ef1d739416952dbfa51183
BLAKE2b-256 ee31642f8fb9788f7cdfd5e90df8344767520e9822b6e957eaa8759aecfa229b

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 188f6aad8e98b30bbe1ebe965201ff09ad8bcb3934e51e7e4918fb87cc318ef1
MD5 d45f85cd286d8cfbbe017fb248a17250
BLAKE2b-256 a28a0cc461ca33c7c3745f152467fab7fe89d6e33da4521f20141d21412a4e52

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 78c25ad33e0d18515fae8b670f1fb88b34a83f0c11933ef2c0358df74f94053c
MD5 0a26ecd2de0389b075be729e31a208db
BLAKE2b-256 4bc56ad9818a18930ec7f713c1a55fd54d622117d4b8780d1941bfa960e22138

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ba106ca39da66c313be4755878f6081dc76c26b706434412b1d465145b4e3cce
MD5 01f8c0639b3e1485908d26262423840c
BLAKE2b-256 b2cbb3854d23542e4f2b59f8435be7e9c9da3394304ddcb1914ecfd4b826a45a

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 eccc1d53e44419fc4127554911c1a2e6e8b3751722977e74de2eba3c4e7b6036
MD5 bd43425434968b8d638694d0f9ac4154
BLAKE2b-256 0362a48f4100305a1ad70e847b3de44eac6d30a3c24dfdacca671c51a74392e5

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp313-cp313-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 f59ad049444009caf1e2c32fd4f7222e65c6c1ad2182997cb86e7aa539bcb50e
MD5 c4c939c41cb87333e3a49906344a7769
BLAKE2b-256 7b758c1321b6b65858866667d88aae626479f1408b1585ffb16820af934ea16e

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 65fe1bb1e72de0d614c6fa881d85f2327df3c0f7b30fa3a3fd4107e5423129de
MD5 5c07edbdbc409ade796b0a420ac11587
BLAKE2b-256 ffe07e6d9201f125a13623495e5ed0df78c8f25ec2ecbe171e60949c8c00dcd7

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17b9401334848318a27785c54dd60737c19df5aedfed439a13fda4cd66562aed
MD5 99100b6cb562969863cb527d9dee2ef6
BLAKE2b-256 b6bc54b7a07fb854b424a2fee8999108984656d99b9e4f55d451d68edb9e47ef

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 0a94eae86cca98e23b20747dcd2d4b23bf151d03918760d95d0e214c37959d8a
MD5 ceeb8baf13e89361a2979d1da220164c
BLAKE2b-256 a8d34d420370320b4d521063580a6ec6e0c8a03044ce2a430ed568ea28001db5

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1b2572fe66214d15c8cd162c355646340920cd60b253632650354cf0fe526a1f
MD5 dfc90bf049bd390c1fd54e55ca6c69b8
BLAKE2b-256 35ed49715117809c1e0b0c28617263834a107abccb002b972e1603c9140db849

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 3c54fe9e126ecb7043250f97df2754b7cf2b0c325ab749216df4c85e1e5d2c4e
MD5 1cb139b2922de8bddc6381c28298751c
BLAKE2b-256 98ee76936b29d63d0e6cae08951295044233e292a76266353d439e1384e43b02

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9641c06fd7a55f1020075841a7266017f244a1323c58bf00dd1287961f84dd93
MD5 8df87ab3014f0644724e2cb88625ca08
BLAKE2b-256 9537f5155785a0a04c5da0387e014a7dfc740b2cd10a1de3ca944bb58032b40b

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a780505a853e9834988a570d839b9b3095eddffc9d336a741bb0fe7e2dfeb21d
MD5 2bb3b108964509762659bc1e4e287ead
BLAKE2b-256 9d848778f253bffa39a9b370a8188cd83f2dfab0c134aaac73c89be8dc73af25

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 05d517ff0484153e2f82c8eb348957f2fa436dd8e246a9388314759e6f0fa250
MD5 f6b1954fef6d7e788243cd8049924d5c
BLAKE2b-256 21a77fe231f2f82dd7fb75a5b1f20a9ef23395c9b80c24621783c06ccd599723

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4da7c368ad9091cbd58c32ffd294e53a56fe68c396e09be80e8c60338041a89f
MD5 febefde04057f0ff2059ce92909bfa6b
BLAKE2b-256 7ce8b3566ddb9798fe7f4cd9f8ccb7742c031a9d3657fbec8aee549d4c46864c

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 4a0251ff50d5665d8ea5efe1672d901544004075c48876a68b2f63344cdb607b
MD5 9109d4191c1b50a7c0eaa36ea1ad926f
BLAKE2b-256 70e261d3b177e3727c3d1a852577008d33fd0cacce1272b9363d290b7389dd85

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fd881d5e4b6a0c67ad4733c3724774b2ebfe2d453525d46cd70553ddc21e64b9
MD5 44a6dc66e18717246cffbf4d06e88293
BLAKE2b-256 288d6d915cf4351899430f03d2dd00c1481942ead5bc6477009d37f995c8231e

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97c0b782aadab75b3b1638bed73278f94ccb58184c1179ea262683d61380a0d0
MD5 85cfe2f302b7e38588843209b95a0d82
BLAKE2b-256 2bf407b9d3ee05bac2830c6e584725622d2517ba36c65bf55fe1f3fa301c3f41

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 8905abcc7074a24fd7fdeabe9e4d4b6f292548148e7ae98fb74d74b82e486f31
MD5 b3a9f74a36a12069b30214bb200c67a6
BLAKE2b-256 b8067fe6dfcfe43d94d68037a3f346f14005ddaa820da845282eccb09a2ec17f

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e481659dbd83c6905c7469c394492605faa41c4b2b225ce2bc8d190a8b8090c9
MD5 bb257a4d9ee2c717dde44c733b2b501d
BLAKE2b-256 82f7c18fac0cf95f2766b1bec4fb4493c96a3dca1549de8e2025d7a8238bdb0a

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 c5337acc3a581ab93f8fd977776ce68186172c23a10883047550b5187d9d2726
MD5 9445e2572f12c32470c7e5940c75a264
BLAKE2b-256 20963185f7a2ad967b69835825ffa02d5ce3a25d34640f9ca2c24a9c9bb0aeb6

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 343fc2666e60d759cdc6fd707fb9e10d2285ce053f14f5cfec64f89bfcda1e13
MD5 c1fff25fcbbb5268f329d2b58317283e
BLAKE2b-256 48e4539445357cab3fad48127af961dc3494e25bd043a18cf059ed84b87c5c51

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76135260a94dbc6690bb277497a7ef675711228a96db0d0081d6fb16b83bcce2
MD5 46e77579da322145ebc95df59f2ed072
BLAKE2b-256 c6dbc8978f0d3db9067bdbaa5565ff01101d365d63d325630031c6a07824fbcc

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 1a8e490b3b6aade5c2f112a469fb75dbc269bd50e5f49c7cc4d424c5b77974de
MD5 ecdc444304c7ac8e368bd4b54492fbcc
BLAKE2b-256 a4dc1cf7d2c52087d683ccf18fbc3abd3d0f8b00bb5662d37e6d4f00b4204323

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ade690c4a849d6d5c5a42704946bcede6135250f8b96423c0ca37ed4518867eb
MD5 a42039e666059026af92794fc7011111
BLAKE2b-256 a0033bf727b6f6963de1f66dadcf5116606a7cd4cc39dc6c491ef1d353e0a464

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 8cc638a36c9bec701493c939c1a34a170072eef7c2af0d74b1a44abac2e1fccc
MD5 71b0c3cc7e15bf1a2303cf5c277d819a
BLAKE2b-256 2bd2b6bbed5136a462049e744d30806a6e0d9a6d4a72a776dda285d8fbe26800

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0a8a1b33e147c3d3807a011c95edfb1541c997276c8de9b81ed20052b0cca6bd
MD5 b32f452ab83aad194a2d09aad3495d41
BLAKE2b-256 66eb2f2d3f9785cb8b0caa2dba3825aa0f2573d750f6085c25aca41ae7ffe8a6

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 13e119a7e3a6c72e3a015758abd08efeba0b019fd647a1b6cce0f26f42b90aca
MD5 638688681d82b2d728e4660e440c188b
BLAKE2b-256 7adff707816dc92d761e93b34cf961c48c556369755f4ca5ce1853f36099e6d4

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp39-cp39-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp39-cp39-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 7a5e2cbd237cee6842bf08303abfc8683e42970cf7ef87b9df503bea68e43e6e
MD5 cd7e6b6e1c9fcc0519b31b7f6d5c23ea
BLAKE2b-256 8fed7c1062b96225e849736e7a49329a4412b80e28e53b377eebe3f10800ec18

See more details on using hashes here.

File details

Details for the file lightsim2grid-1.0.0rc1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for lightsim2grid-1.0.0rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8878fb49f9410915f656eb2f0ece6dcb8e755aea769cb5a2dff40d9bd1190601
MD5 f30983566fad020dc68f9af3240b94f6
BLAKE2b-256 3c5a37830c12914afe44031f57dd0cc8ff3107c316c15d0babe6bde74bb55696

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