- Added
BusSignalVoltageOutbus model with voltage signal outlets and current signal inlets. - Added
BusSignalVoltageInbus model with voltage signal inlets and current signal outlets. - Removed
BusToSignalAdapter. PreferBusSignalVoltageOutorBusSignalVoltageIn. - Added
Bus::setFaultto apply or clear a fault to ground directly at a bus. - Removed the
BusFaultclass in favor ofBus::setFault. - Added
enableanddisablesolver events that put a branch in or out of service. verify()returnsModel::ConfigurationCheckslisting every configuration problem instead of an error count.- Added
Model::ParameterReader - Removed legacy PhasorDynamics component constructors in favor of constructors taking model data.
- Added 3, 10, 37, and 39 bus test cases.
- Updated documentation.
- Added support for Read the Docs
- Added JSON parsing.
- Automatic differentiation with enzyme (w.r.t. internal and external variables).
- Added PR and issue templates.
- Added Genrou class unit test and example.
- Added Dev container.
- Added back removed tests.
- Added the ability to print matrices to matrix market files for later analysis.
- Added input format specifications.
- Improved IDA interface.
- SUNDIALS interface updates.
- Refactored and reorganized examples.
- Updated variable names and function signatures to follow conventions.
- Added classical generator model.
- Added clang formatting pre-commit.
- CMake fixes.
- Fixed warnings, memory leaks, and failed asserts.
- Added Tgov1 example.
- Added 10 generator example.
- Improved data structures.
- Removed dead code.
- Added signal node connectivity tools.
- Upgraded to Spack 1.0.0.
- Added
GenClassicalas supported device class in JSON parser. - Added more context information to JSON parser errors.
- Added
Loggerclass. - Added public function to encapsulate use of nlohmann/json and magic_enum from users.
- Added complete basic consumer example project used for testing installation
- Added
CsrMatrixclass. - Added
verifystep for signal node links in system model components - Added support for DependencyTracking::Variable in PowerElectronics models.
- Updated Jacobian value storage from
ScalarTtoRealT. - Added a header file defining constants to be used throughout the code.
- Added
GridKitDocstarget for Doxygen documentation. - Added a header file defining common math functions (e.g., sigmoid) to be used throughout the code.
- Added capability to print monitored variables in multiple formats, triggered from
Ida::runSimulation. - Added IDA statistics object which can be accumulated over multiple simulations.
- Minor performance improvements to residual evaluation in PowerElectronics module.
- Added full support for sparse Jacobians obtained with Enzyme in PhasorDynamics.
- Added
Nodeclass to the PowerElectronics module to separate nodes from circuit components. - Refactored Jacobian assembly in
PowerElectronicsmodule to reuse the CSR pattern. - Refactored Jacobian assembly in
PhasorDynamicsmodule to reuse the CSR pattern. - Removed
COO_Matrixclass use inPowerElectronicsmodule. - Added phasor dynamics application to generalize examples
- Added
LoadZIPmodel component type. - Added component model developer checklist to a README file.
- Added
IEEESTStabilizer Model - Added
SEXS-PTIExciter Model - Added
ESDC1AExciter Model - Added
GENSALMachine Model - Added 200 Bus Synthetic Illinois Case
- Added node objects to
PowerElectronicsmodule & updated all examples to make use of them. - Separated internal and external residuals of
PowerElectronicsmodels. - Added
CliArgsclass for better management of command-line options. - Remove data copying between system and components in
PowerElectronicsmodels. - Added multi-contingency analysis application.
- Added
BusToSignalAdaptercomponent for communicating bus voltages and injection currents. - Added cmake-format hooks, including in pre-commit.
- Added off-nominal tap ratio and phase shift support to the PhasorDynamics
Branchmodel. - Added portable Vector class to GridKit
- Added support for running IDA with fixed time steps
- Added
ConstantSignalSourcecomponent as first use case forBusToSignalAdapter. - Added IDA option to suppress algebraic variables in local error tests.
- Added
GASTPTIgovernor model implementation for PhasorDynamics. - Removed
COO_Matrixclass. - Added portable
Vectorclass and policy-based memory utilities. - Add new
LinearSolverinterface for linear solvers. - Added new
Rosenbrockintegrator. - Clarified naming conventions for macros.
- Added
dt_fixed,rel_tol,abs_tol,max_steps, andmax_orderoptions to phasor dynamics solver JSON files and renamed thedtoption todt_monitor. - Added EMT model and operator documentation.
- Added
REGCAconverter model implementation for PhasorDynamics. - Remove unnecessary data copying while evaluating
PowerElectronicsmodels, speeding up large simulations by up to 3x - Added
HYGOVgovernor model implementation for PhasorDynamics. - Added
REPCAcontroller model implementation for PhasorDynamics. - Added
REECBelectrical-control model implementation for PhasorDynamics. - Added cases and validation for ACTIVSg10k, ACTIVSg200, ACTIVSg500, and WECC240.
- Added ACTIVSg2000, Hawaii, and IEEE39 cases and validation.
- Added IDA option to choose the consistent initial condition calculation type.
- Implemented
tagDifferentiable()forPowerElectronicsmodels. - Fixed the
TenGenGenrouexample to output the correct omega values. - Added
GridKit_ENABLE_DEVELOPER_MODECMake option; in developer mode the Logger defaults toEVERYTHINGverbosity. - Added
Logger::raiseVerbosity(), which raises the verbosity without lowering a higher level. - Changed most of the core library code outputs to use the Logger instead of
std::cout/std::cerr.
- Refactored code to support adding different model families.
- Added PowerElectronics family of models.
- Prototype for sparse system matrix assembly (for PowerElectronics only).
- Added PhasorDynamics family of models.
- Unit testing framework.
- GridKit now depends on Sundials >= 7.0.
- Added parser for Matpower files.
- Added system composer, which assembles power flow models from components based on input from Matpower file.
- Updated bus and created generator factory.
- GridKit now depends on Sundials >= 6.0.
- GridKit now requires C++17 compliant compiler.
- Bug fixes.
- Refactored CMake to use and export targets
- Bug fixes
- Parameter estimation example
- Power flow model composer with test example
- Improved CMake build
- Updated documentation
- Add branch component model.
- Add generator with governor component model.
- Add generator connected to infinite bus example.
- Add basic system composer.
- Make GridKit forward compatible with Sundials >= 4.0
- Add dynamic constraint Ipopt interface and usage example.
- Add Generator 4 component model to the library.
- Require CMake >= 3.0 to build GridKit
- Initial release. Skeleton of the library to be developed.