The objective of GridKit™ is to provide a modeling framework for power systems simulations and analysis that can support multiple advanced analysys methods, such as dynamic constrained optimization and partitioned numerical integrators for systems of differential and algebraic equations. While target applications are power grids, the methodology and the framework could be used in other areas without major modifications. GridKit™ supports adding multiple families of models to provide different representations of power grids and possibly other complex engineered systems.
GridKit™ has been built and tested on Linux and Mac platforms. It should be possible to build it on Windows, as well, with Cygwin or native. Before installing GridKit™ make sure you have all needed dependencies.
You should have all of the following installed before installing GridKit™
- A version of
- SUNDIALS >= 7.4.0 (optional)
- To support sparse linear algebra, SUNDIALS must also be built with KLU support. You most likely want this.
- Ipopt >= 3.x (optional)
- Enzyme >=0.0.206 (optional). Note
that the use of Enzyme is experimental, and some versions of it have been found to break GridKit code.
- LLVM >= 15.x. GridKit is currently tested with LLVM 16.
- SUNDIALS >= 7.4.0 (optional)
- CMake >= 3.13
- C++ 20 compliant compiler
git clone git@github.com:ORNL/GridKit.git
git submodule update --init third-party/
Note, you may need to run the second step periodically as our third party dependencies change.
GridKit™ uses CMake for build configuration. The build directory must be outside the source tree:
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install ../GridKit
cmake --build .
cmake --install .Dependencies are autodetected if installed in standard locations, otherwise specify their location explicitly. For example:
cmake -DSUNDIALS_DIR=/path/to/sundials/install ../GridKitYou can also use ccmake or cmake-gui to adjust the build configuration.
See INSTALL.md for full instructions, including how to build each optional dependency and all available CMake options.
Several examples are built together with GridKit™ libraries and serve as
functionality tests. Run them with ctest in the build directory:
ctest --output-on-failureTo verify the installed CMake configuration works correctly for downstream
projects, run the installation test after cmake --install:
make test_installSee Testing the installation in INSTALL.md for details.
GridKit™ is written by Slaven Peles (peless@ornl.gov) and has received contribution from Abdourahman Barry (Virginia Tech), Tamara Becejac (Avangrid), Adam Birchfield (Texas A&M), Kaleb Brunhoeber (ORNL), Reid Gomillion (Virginia Tech), Nicholson Koukpaizan (ORNL), Asher J. Mancinelli (NVIDIA), Alex Novotny (Virginia Tech), Shaked Regev (ORNL), R. Cameron Rutherford (PNNL), and Wiktoria Zielinska (ORNL).