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)

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.2.dev1.tar.gz (94.3 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.2.dev1-cp311-cp311-win_amd64.whl (479.3 kB view details)

Uploaded CPython 3.11Windows x86-64

LightSim2Grid-0.7.2.dev1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (659.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.2.dev1-cp311-cp311-macosx_10_14_universal2.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 10.14+ universal2 (ARM64, x86-64)

LightSim2Grid-0.7.2.dev1-cp310-cp310-win_amd64.whl (479.2 kB view details)

Uploaded CPython 3.10Windows x86-64

LightSim2Grid-0.7.2.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (659.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.2.dev1-cp310-cp310-macosx_11_0_x86_64.whl (620.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

LightSim2Grid-0.7.2.dev1-cp39-cp39-win_amd64.whl (483.5 kB view details)

Uploaded CPython 3.9Windows x86-64

LightSim2Grid-0.7.2.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (659.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.2.dev1-cp39-cp39-macosx_11_0_x86_64.whl (620.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

LightSim2Grid-0.7.2.dev1-cp38-cp38-win_amd64.whl (496.5 kB view details)

Uploaded CPython 3.8Windows x86-64

LightSim2Grid-0.7.2.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (658.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.2.dev1-cp38-cp38-macosx_10_15_x86_64.whl (622.9 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

LightSim2Grid-0.7.2.dev1-cp37-cp37m-win_amd64.whl (492.9 kB view details)

Uploaded CPython 3.7mWindows x86-64

LightSim2Grid-0.7.2.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (657.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.2.dev1-cp37-cp37m-macosx_10_15_x86_64.whl (609.6 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file LightSim2Grid-0.7.2.dev1.tar.gz.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1.tar.gz
  • Upload date:
  • Size: 94.3 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1.tar.gz
Algorithm Hash digest
SHA256 4b99bc470011b085c79094ba511469f5f3622c1bbb0a1a1d75d7734ed3efd3c0
MD5 3216154658b1a00c22512982a2d39583
BLAKE2b-256 82588b667797a1fb310ef80cb7d0a2f3183a775bdcf19f81d64c0674aea881a2

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 479.3 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bd7ed6502181e27d007e6c1011133ee5c9c86fc9a80f029ea9eecfd1a0760718
MD5 e8d21138c0acee482cd0b5fba12fe3a5
BLAKE2b-256 d9afae552d71c9519143c08b4d0a096e9bad155221813494a1d99ee35df79cbb

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 853b1ac607f75fcfd9af0b4e01ad2cd6859bfcbc2267c50231c513217eccf619
MD5 24f89844d58d1c5ce1da1190c87c9165
BLAKE2b-256 fd36964c9116348e8e6a5c2fe12d8d89a0f0ced7328ed65cae7231bb926f668b

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp311-cp311-macosx_10_14_universal2.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp311-cp311-macosx_10_14_universal2.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.11, macOS 10.14+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp311-cp311-macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 2dc56f5d20dba4d0494c89fba6e10dcd92f7aeef191ada133f5b477743deb09d
MD5 5fc3cdd14ed9efcc2eee59bcd21ffa8a
BLAKE2b-256 4ddb15b611ec36e460042619a66ff8bfb4a39d78a5f99f7fc85e56d0878ead2b

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 479.2 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bb6cf689cdebaed36834ee53cbcb5f27f145739cbc24772241872ba721172c25
MD5 bd388bb58aa124eaafd77cbdc9d49670
BLAKE2b-256 0b04304023e1ea19ba150ab8c7d67d37a7e23b7c6f4f28bd4dce1300b613075f

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a88c864d6de80592505f390a2eb8cba5248493c79db47146fb2a442ac58ae196
MD5 949d312e1b78e74a4d2004438e4ac9a9
BLAKE2b-256 f8adec767277f94c8540abd95a8d59ebc31453a791ee71fd7acc65cb7f168eac

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp310-cp310-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 620.2 kB
  • Tags: CPython 3.10, 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 c3171d26aaded4090bf74805b224073c934ffc2eac3fb3c1c83221a6016105e3
MD5 6b5f141bf46eb13f47a1f5673c7a56f1
BLAKE2b-256 50c390e7e609b0fcaea24e52434fabe306d6b59a77b699c66f7563929a45fd71

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 483.5 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 572ff7f677cd772e83d22675253e3969f73703421ea75986de3b7fb1bbb3f465
MD5 88aa980fcfa0707b8283f45d3ce31047
BLAKE2b-256 335b6b2bd8e172613caa3812259b915add69e1af9039c3516f5b88031bf0b5eb

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c7d780d40ff8da9339f56639e3290d1d7e5005ea04f25eeb4b95cf623f530885
MD5 7aabc036478427560e2400140cf10bfc
BLAKE2b-256 5e32765e2c85240c63b9f5ceb045d50158d842e29b6b1553a60751353b4e76a5

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp39-cp39-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 620.4 kB
  • Tags: CPython 3.9, 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5af925556f3ad1ea3db18fdcfdd0292bd2044aab31673c63f755d4bbf91f9263
MD5 07bb278b5ec5d4102c2f60e483993f88
BLAKE2b-256 d9a41636e1afe08689195ff4084e5b569f963800488d4fc014167eb0fd73d62f

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 496.5 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 17d4a1a0639f5655acce171fc55d5955e3143d8ed07e5f946fcf90e5eb0c3d0e
MD5 3aa77c64fff9b2e8726ce43f545a9e62
BLAKE2b-256 f7b838a08849a055cd433ea8afbd2f5c1c8a5f22f7208efc44c2a91acf9644f4

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a938bb291199c27897a814d44cad7e49518cebae9e0d6c6f51eb7811e9e86bd
MD5 5517d617d84f89fb02c7d5d9deadac94
BLAKE2b-256 8d965b4f9de489cc192795cf87d2542b738271785de1d792863ae8ae2d200ebc

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 622.9 kB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4fd6dcc25c28839f83e7ad38357e8531dc699a355758948ed07ff5a18ddf0eee
MD5 1b7698ec88a3e3a1d9c84eeaf78112da
BLAKE2b-256 c3ded4a3d35a81e2907455cac46b6fc47b67482195a5a808af0904032fdbe7ad

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 492.9 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.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 6c79d177eb362de865c0568c1d0b1e49d09eb9a3fb5b24acea0fa0d7d96ad22a
MD5 6f58c75a2bfa488709e88c913b088ba1
BLAKE2b-256 0e3776f75dd603357b0bc4c5c0ec5f274cc7531181b45e1b540dde52f3540e51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 06c33c812cd697f76c72cdb15a4a3de373722653fb1d92940023fd522eb1390a
MD5 84b023513ed3a4fba097f56b76f030a9
BLAKE2b-256 cc59d42441096917df1ced74a7e444e80c0d95a6357f82b98e8f63493db293d6

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.2.dev1-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.2.dev1-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 609.6 kB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for LightSim2Grid-0.7.2.dev1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5fea02dd18e2a3603a8c8b2afe976833d016d32fad3ec50524a9a9224694f38b
MD5 33035bfae5ac7ae80db7640a0c021678
BLAKE2b-256 7f63e484debe0dd323a0e9d9127ba3af885ce589d8938daa221b8546817d49ba

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