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 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 without too much issues.

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.

Pypi packages are available for linux, windows and macos with python versions:

  • 3.7
  • 3.8
  • 3.9
  • 3.10 (lightsim2grid >= 0.6.1)
  • 3.11 (lightsim2grid >= 0.7.1)

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

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.

First on an environment based on the IEEE case14 grid:

case14_sandbox grid2op speed (it/s) grid2op 'backend.runpf' time (ms) solver powerflow time (ms)
PP 70.5 11 4.27
LS+GS 881 0.447 0.327
LS+GS S 877 0.446 0.327
LS+SLU (single) 1110 0.191 0.0655
LS+SLU 1120 0.195 0.0683
LS+KLU (single) 1200 0.138 0.0176
LS+KLU 1180 0.141 0.0188
LS+NICSLU (single) 1200 0.139 0.0179
LS+NICSLU 1200 0.139 0.0184

Then on an environment based on the IEEE case 118:

neurips_2020_track2 grid2op speed (it/s) grid2op 'backend.runpf' time (ms) solver powerflow time (ms)
PP 39.6 13.3 5.58
LS+GS 5.3 188 188
LS+GS S 36.5 26.6 26.4
LS+SLU (single) 642 0.775 0.607
LS+SLU 588 0.932 0.769
LS+KLU (single) 945 0.277 0.116
LS+KLU 918 0.306 0.144
LS+NICSLU (single) 947 0.274 0.11
LS+NICSLU 929 0.298 0.134

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/bdonnot/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 __COMPLILE_O3 environment variable: set __COMPLILE_O3=1 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/rte-france/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, 10, 11 and 12) and clang (version 11, 13 and 14).

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.7.4.tar.gz (94.7 kB view details)

Uploaded Source

Built Distributions

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

LightSim2Grid-0.7.4-cp311-cp311-win_amd64.whl (486.6 kB view details)

Uploaded CPython 3.11Windows x86-64

LightSim2Grid-0.7.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (672.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.4-cp311-cp311-macosx_11_0_arm64.whl (538.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

LightSim2Grid-0.7.4-cp311-cp311-macosx_10_9_x86_64.whl (627.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

LightSim2Grid-0.7.4-cp310-cp310-win_amd64.whl (486.0 kB view details)

Uploaded CPython 3.10Windows x86-64

LightSim2Grid-0.7.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (670.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.4-cp310-cp310-macosx_11_0_arm64.whl (537.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

LightSim2Grid-0.7.4-cp310-cp310-macosx_10_9_x86_64.whl (625.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

LightSim2Grid-0.7.4-cp39-cp39-win_amd64.whl (487.9 kB view details)

Uploaded CPython 3.9Windows x86-64

LightSim2Grid-0.7.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (671.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.4-cp39-cp39-macosx_11_0_arm64.whl (537.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

LightSim2Grid-0.7.4-cp39-cp39-macosx_10_9_x86_64.whl (625.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

LightSim2Grid-0.7.4-cp38-cp38-win_amd64.whl (501.2 kB view details)

Uploaded CPython 3.8Windows x86-64

LightSim2Grid-0.7.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (671.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.4-cp38-cp38-macosx_11_0_arm64.whl (537.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

LightSim2Grid-0.7.4-cp38-cp38-macosx_10_9_x86_64.whl (625.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

LightSim2Grid-0.7.4-cp37-cp37m-win_amd64.whl (496.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

LightSim2Grid-0.7.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (666.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.4-cp37-cp37m-macosx_11_0_x86_64.whl (616.0 kB view details)

Uploaded CPython 3.7mmacOS 11.0+ x86-64

File details

Details for the file LightSim2Grid-0.7.4.tar.gz.

File metadata

  • Download URL: LightSim2Grid-0.7.4.tar.gz
  • Upload date:
  • Size: 94.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4.tar.gz
Algorithm Hash digest
SHA256 001044f304cc71ab1b1cbb7dabc58e57058d2add2975d5e563d73e26e1528a5e
MD5 c6e1363914543eed5e1250c964515867
BLAKE2b-256 af7eb874583fd73effecf4500a753cb5c2f457325e6d0b2472febffbe972e519

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 486.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0e3346a5868702117e4ffa0bb505a0641974a364f5fdd41c36e130a93ca29ab8
MD5 3e5dffdbf2399e822dc1ec666f71945b
BLAKE2b-256 d6fc3d4f4aa8fffe4801e86a484c88953e7475e4415d4fc07ceab0e9b5aeeaaa

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7f63cc11aec7972c63eb7b385838aec12836ab6746131ea112857cba2285ec6
MD5 7e10075de4586ac4ccea0fa89ad20e64
BLAKE2b-256 e1d9a55911289e0d00c027b75ed9322e6e4ff647e4a9c55bbfee375ceaac2dd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 538.5 kB
  • Tags: CPython 3.11, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d10b42faa375781738d819a18cd69173d72488452f24baa2f44bfed74a83735c
MD5 82b67e5f98ee45032fbeeb31f0bac8ae
BLAKE2b-256 df659f13c8aa443141e0633fd3c73459161ed8935d49a12e95f4ae28b96cedfb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp311-cp311-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 627.3 kB
  • Tags: CPython 3.11, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c8c5332638ad0e45c8c59ebc61a1337d53977167c355a29fc2f4fd2587b52dcf
MD5 d13b23e2f24ba104e5a687ff569c0950
BLAKE2b-256 864401071dcd52936882d34d33315adaf4103621528afe9a717253998087176f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 486.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d73080d4399678e1edef2e647ddb3e23e06dbb933928e4b91335bbecce5e1509
MD5 2c67eb5b5832ac5a42ceddee090b32c3
BLAKE2b-256 d4bc890ed90d9316d1cec6c0e1fead3b63546d1dec8b0ece0d5e8a7e75953108

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 db730a900d4fa278a9ff5b5069aa2795357160da48035b98c0e8ef2b57392a76
MD5 d41de7037f167430bd4fcc59b7bb5f41
BLAKE2b-256 9f91b94e9cab63a384f459275c7eb3abc1bedae9956de8ca496bcf6298f46ca6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 537.4 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 50b047c2530a87129f54fbbf755c31dc22dde81e7cba30e91c16ebcec42077c8
MD5 99f00779259bac3245f68d16f6958faf
BLAKE2b-256 6c20266827685bd497d0211a306bdf8ee49b1a23273cec1446ee177540f9b95e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 625.7 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d457fff3a0c7c0b8e356955ce4669edda69655e80b22dedde1537875134d9201
MD5 fe783660b7651e5cfbe09e961b1c724f
BLAKE2b-256 6b433e773d282f1d3e0447b4948fbe32beb9022902a0e44ea486582f01bfbc21

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 487.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8f9dd835cf67076379ee1f5b6c9c23c613dbaf721bcb099c0988eac619c35d74
MD5 1f7639a516d496a84c08de993847542b
BLAKE2b-256 b98d05252e2d2e465290091b8f49be378b7766a3add0ff28f4f283109715e693

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ad7a3f644c289feb957160e38fa8d0e7bca356a2f881d70e9849f1deeabe7ef
MD5 5da3496ed229d647cccccd10a63e5e12
BLAKE2b-256 8ed07f845858f5c275bc44fd68b131d528ad06e1a2baed78776e7a4f4b7a45fe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 537.4 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f2a0467104e2c97f0c441b10d924fbcdfdbcb4a20dc52e16414de7da69906f98
MD5 49c50695b03976ad1c6127a5c1f8f955
BLAKE2b-256 5d79ae900ac3e58c7671d592ac0a26015de1f00f2c1978db1b21c9ce74129fe5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 625.9 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c64268862cb315d769d73369d3a6494b04b1536c10d4d663f019da5a93627362
MD5 e1a7f99e290fc5f45d693402b553d008
BLAKE2b-256 60326a0c3a6e1781d2461c49e8bb3c529c4e413e3125d6dddb45b89dcc58c56d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 501.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8d0869971973a21f29c89a656353f95dd78fcedd3f9ff67946ec904a92b0b065
MD5 33ef8a30e3fe5310915039721ff8cc22
BLAKE2b-256 bfde28680143d9b4ae433e37ce15608d87e0f83653f17b7b7c1e8447f73aa1bd

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 526c5c2c29cb319b6051925987615b2217676b1ff23e15189af439f893c10f99
MD5 a76873d7835bf4c4d7e40372fbd72036
BLAKE2b-256 ef003817f89c36dfcc50583c5e64f75c7b8d734203be9762eddaa62e7fb662b4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 537.3 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6bf54da849d90e402add184d6c311cc4147b49847f44cd3e895c2825a10c9fd0
MD5 53b8a34764bea1bc86c5ed7fcc6f1f05
BLAKE2b-256 f13e2a5e492cda873bc93659e0d80ecdccd937c387dac6ca013b03becb646ad5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 625.7 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59732f8ec722432293d660fa3472dc51a2b8542c4e3cc6c78c94be27cc96f690
MD5 d315a768876824b9b781104862d52e81
BLAKE2b-256 2c8fb67bd86d5b3fc81ed11c6a5bc44a09d6a4827c7d2a516cae0a58924d4f56

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 496.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 9e600eb2b403c0997413b8eb56636776361e256aa5f735006bd486bb20e9ae0a
MD5 dbdf57f68701e89fc56e3953d46088d5
BLAKE2b-256 ef6d324da5ac5a7e497bcd039b80ea7dce69cdb0b1d817e96f6ecf0f12e46549

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d63a93a48a004aaccdfc8ed982cc320b53ca7ac3b0ee9efaab0a5a14755a0b1
MD5 6d305fcb52dc55f562e74609dc827102
BLAKE2b-256 492917eb92134e44f7e48b3dce54743a4411f73876812c4d297c5ce44a5e049f

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.4-cp37-cp37m-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.4-cp37-cp37m-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 616.0 kB
  • Tags: CPython 3.7m, macOS 11.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.31.0 requests-toolbelt/1.0.0 tqdm/4.65.0 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.4-cp37-cp37m-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 039a32491e2dbbc9d147b95d794fd1913ee570755bea94ae71f9781f1e308be0
MD5 eb698f0504aebc0224dbef7e13dd8f68
BLAKE2b-256 23395df41779efc817810e6973fba57c270607118c8b0efcaa58157677d80f03

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