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.3.tar.gz (94.4 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.3-cp311-cp311-win_amd64.whl (485.9 kB view details)

Uploaded CPython 3.11Windows x86-64

LightSim2Grid-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (671.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.3-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.3-cp310-cp310-win_amd64.whl (485.3 kB view details)

Uploaded CPython 3.10Windows x86-64

LightSim2Grid-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (670.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.3-cp310-cp310-macosx_11_0_x86_64.whl (626.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

LightSim2Grid-0.7.3-cp39-cp39-win_amd64.whl (487.2 kB view details)

Uploaded CPython 3.9Windows x86-64

LightSim2Grid-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (670.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.3-cp39-cp39-macosx_11_0_x86_64.whl (626.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

LightSim2Grid-0.7.3-cp38-cp38-win_amd64.whl (500.5 kB view details)

Uploaded CPython 3.8Windows x86-64

LightSim2Grid-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (670.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.3-cp38-cp38-macosx_11_0_x86_64.whl (628.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ x86-64

LightSim2Grid-0.7.3-cp37-cp37m-win_amd64.whl (495.9 kB view details)

Uploaded CPython 3.7mWindows x86-64

LightSim2Grid-0.7.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (665.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

LightSim2Grid-0.7.3-cp37-cp37m-macosx_11_0_x86_64.whl (615.3 kB view details)

Uploaded CPython 3.7mmacOS 11.0+ x86-64

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.3.tar.gz
  • Upload date:
  • Size: 94.4 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.3.tar.gz
Algorithm Hash digest
SHA256 79bc8495429b9a8a6a2165ce51ef6a617a5630b2b53aca2614d997b88ec435f2
MD5 838248f4003bdab110b3f32121f8d695
BLAKE2b-256 9ee478f156c523db57bb4ddeca33fd26cb7bca5f57148dccada7cda7854a5483

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 485.9 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 26506439311e742bfc68c0bcc1f6554cf02430e316a011ed7aed6bf11e009e50
MD5 0160efaaabe88b5acf218948f421699c
BLAKE2b-256 e568147de6d504b2baef278aab9279c9daa49a829cf5ec152cf47231eb1a51f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3db140c5a54900968d674f5fb79ac48ffb9a1a3b996f2ded7924c4e3bc6cc8b5
MD5 5b6d20576b7b72b614ca7645819080f3
BLAKE2b-256 e3a62ec4019d2ec7719210804b4633c0e47e40fc9ba5bd98b2b1fe92978f739a

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.3-cp311-cp311-macosx_10_14_universal2.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.3-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.3-cp311-cp311-macosx_10_14_universal2.whl
Algorithm Hash digest
SHA256 139996a9328207eef91bb9dad5ff7e28ba79b5c7c4c5a9486401dda888c8490a
MD5 d40a9de222e58ae957b2afcc44017078
BLAKE2b-256 3e5bb695a47b1076c803c7ab7a171bee8503c434449783965079d2046023ef7b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 485.3 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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 91b476031712ac389930a640f7ec0dbed55fe4449e7503015d1102f0a5947b09
MD5 3a3e5e1109c581af014bddd9ccea0981
BLAKE2b-256 2ca3ae248a99a19f1bfdb5dccfdff83f75a7b4889bc8bab2fbfe0eb10ac6e4e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a76a2aeb4e5cddcece7bbea5e030a9a04c5b314e4e87e5daf0a803a9dbc939f5
MD5 d6a793559747239912013d6d6e95162a
BLAKE2b-256 dab5af9bc57af294ea8a0a317f883b3b3ce60425b0931835075dc14ebe859957

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.3-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp310-cp310-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 626.1 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.3-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 becfbd45310403e2ca06b0b492d40d2aa8cfc8849e7d44e03a52bacd3927aca0
MD5 aecfec475933ef3537888035302e52a6
BLAKE2b-256 b02284bc3ca507b553cb66da24caa5363e971c18811be8ab83368eeafd3f7836

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 487.2 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.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cb5f674501ffa82afac4761252016211864b1ebbd1712054bc56f2162adc03ea
MD5 1dd3401a2161214d0c8ed5e2d2bc3d13
BLAKE2b-256 0856426d2396a3ea78711a9e508255184f8764efe6bfe1236c94b5cc47206359

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 494a1fec617a98c259543f15f00c9c714c7172bc16d4d2cb21d759409167b548
MD5 d360410c4f4494c5764a9334b4c01cb7
BLAKE2b-256 8c64755d15e5949084fdd45a0c013a15c2ee01c95036718b107f214c1a3159e7

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.3-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp39-cp39-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 626.3 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.3-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d7fdcaec685694b645eab9e50b146f6379fc908f7df953ee9d9911f572027ee7
MD5 e7b7f91d43a8fda539c7bac88696fc16
BLAKE2b-256 d7066ee20d54881202b31cb2833c34caabd355a52fffc7d315ed1f8cd4b44c5c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 500.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.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 206d438e04a8d73f39ac2943b912fb3c78c899f28a7f04d01f5fd6c9ef45b3df
MD5 641e0d38971cd396936b6732f0310ad6
BLAKE2b-256 f68b7127fcdd0ad04abd71b7289c6729f647d4896449df8628b97582c7d711e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b6b5b975a5fcba1ba3318e805c7b66fa2dcc8c9027950cb55d1abeae5d527da
MD5 e95a1d7d47110d96e5dc670734cd708c
BLAKE2b-256 30f4858c437caf09306a9330e164ddbe12071f13e19f01f6c5f2467ddd6ebd5e

See more details on using hashes here.

File details

Details for the file LightSim2Grid-0.7.3-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp38-cp38-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 628.9 kB
  • Tags: CPython 3.8, 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.3-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 3c0714faea5c7aba1877673e7d5f226cec0e4b98ad4fbfbe4254d7bfcdec7410
MD5 a7a9862529fb646eee5312deee221c19
BLAKE2b-256 8898db8c9b9e1687c899e743835e3413f345411455a610c63e473ec351974b33

See more details on using hashes here.

File details

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

File metadata

  • Download URL: LightSim2Grid-0.7.3-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 495.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.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 31e4c734087f79a462836fed14c0e2194ef31fb2cd00d09b1682008500a3d61b
MD5 0d75bb6b36e217734118eec42e6bfcc4
BLAKE2b-256 b70bf268f6b2fa3d18f4a34f534e47d6f1979dcf8ad6c3cb831f49efa13babf7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for LightSim2Grid-0.7.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c7a0e964f13c8966a27ea85e0ad066df9ac91c2188191403ba2d0ccddbc54c2
MD5 f2e766164816aa46c64862f0c32eae13
BLAKE2b-256 f666659c7089745de9cd05bbfae3c4b46e0016f94984172bd026cb6bff368fd6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for LightSim2Grid-0.7.3-cp37-cp37m-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 a737de9f33fac9862fb5e3b61732c4bc2cf45be177cea7eab5d342ecadfbfb36
MD5 38a4312353083ee47f9716e085ff2dce
BLAKE2b-256 186a197494f2b8711279aac510a2ff32a2afa563ff6e7fe0c8beb6642a04f0e8

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