Skip to content

Latest commit

 

History

History
170 lines (150 loc) · 8.57 KB

CHANGELOG.md

File metadata and controls

170 lines (150 loc) · 8.57 KB

Release Changelog

v0.3

  • Added output_layout solver option for long monitor output and a PostgreSQL example.
  • Restricted monitored bus names and device ids to letters, digits, spaces, _, . and -.
  • Removed unused VariableMonitorController::addVariable.
  • Added BusSignalVoltageOut bus model with voltage signal outlets and current signal inlets.
  • Added BusSignalVoltageIn bus model with voltage signal inlets and current signal outlets.
  • Removed BusToSignalAdapter. Prefer BusSignalVoltageOut or BusSignalVoltageIn.
  • Added Bus::setFault to apply or clear a fault to ground directly at a bus.
  • Removed the BusFault class in favor of Bus::setFault.
  • Added enable and disable solver events that put a branch in or out of service.
  • verify() returns Model::ConfigurationChecks listing every configuration problem instead of an error count.
  • Added Model::ParameterReader
  • Added the OptimalPowerFlow model family, the SteadyState::IpoptInterface, and the EconomicDispatch example.
  • Removed legacy PhasorDynamics component constructors in favor of constructors taking model data.
  • Added hierarchical PhasorDynamics system models.
  • Migrated PhasorDynamics models with real and Boolean parameters to Model::ParameterReader.
  • Added component labels and lookups that search subsystems.
  • Added ACTIVSg25k and ACTIVSg70k PhasorDynamics cases.
  • Fixed REPCA PI windup while saturated; the PI states now track the limited outputs.
  • Fixed REECB to limit the direct voltage reference (VFlag off) to [Vmin, Vmax].
  • Fixed ESDC1A rate feedback to use the limited field-voltage rate.
  • Fixed REGCA to hold the terminal voltage at Vhvmax, as PowerWorld does; Khv is accepted but unused.
  • Added the FourBusLimits validation case, which drives the REPCA, REECB, REGCA, and ESDC1A limits.
  • Added SubsystemModel and BusLinePartitionInterface to support partitioning PowerElectronics systems into independently evaluated and simulated subsystems.
  • Added a TwoArea integration test comparing flat and hierarchical PhasorDynamics systems.
  • Added rate feedback (Kf, Tf) to the IEEET1 exciters in the TwoArea case, whose generators lost synchronism without a fault.
  • Added the state_file solver option, which sets PhasorDynamics initial bus voltages from a state file.

v0.2

  • 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 GenClassical as supported device class in JSON parser.
  • Added more context information to JSON parser errors.
  • Added Logger class.
  • 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 CsrMatrix class.
  • Added verify step for signal node links in system model components
  • Added support for DependencyTracking::Variable in PowerElectronics models.
  • Updated Jacobian value storage from ScalarT to RealT.
  • Added a header file defining constants to be used throughout the code.
  • Added GridKitDocs target 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 Node class to the PowerElectronics module to separate nodes from circuit components.
  • Refactored Jacobian assembly in PowerElectronics module to reuse the CSR pattern.
  • Refactored Jacobian assembly in PhasorDynamics module to reuse the CSR pattern.
  • Removed COO_Matrix class use in PowerElectronics module.
  • Added phasor dynamics application to generalize examples
  • Added LoadZIP model component type.
  • Added component model developer checklist to a README file.
  • Added IEEEST Stabilizer Model
  • Added SEXS-PTI Exciter Model
  • Added ESDC1A Exciter Model
  • Added GENSAL Machine Model
  • Added 200 Bus Synthetic Illinois Case
  • Added node objects to PowerElectronics module & updated all examples to make use of them.
  • Separated internal and external residuals of PowerElectronics models.
  • Added CliArgs class for better management of command-line options.
  • Remove data copying between system and components in PowerElectronics models.
  • Added multi-contingency analysis application.
  • Added BusToSignalAdapter component 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 Branch model.
  • Added portable Vector class to GridKit
  • Added support for running IDA with fixed time steps
  • Added ConstantSignalSource component as first use case for BusToSignalAdapter.
  • Added IDA option to suppress algebraic variables in local error tests.
  • Added GASTPTI governor model implementation for PhasorDynamics.
  • Removed COO_Matrix class.
  • Added portable Vector class and policy-based memory utilities.
  • Add new LinearSolver interface for linear solvers.
  • Added new Rosenbrock integrator.
  • Clarified naming conventions for macros.
  • Added dt_fixed, rel_tol, abs_tol, max_steps, and max_order options to phasor dynamics solver JSON files and renamed the dt option to dt_monitor.
  • Added EMT model and operator documentation.
  • Added REGCA converter model implementation for PhasorDynamics.
  • Remove unnecessary data copying while evaluating PowerElectronics models, speeding up large simulations by up to 3x
  • Added HYGOV governor model implementation for PhasorDynamics.
  • Added REPCA controller model implementation for PhasorDynamics.
  • Added REECB electrical-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() for PowerElectronics models.
  • Fixed the TenGenGenrou example to output the correct omega values.
  • Added GridKit_ENABLE_DEVELOPER_MODE CMake option; in developer mode the Logger defaults to EVERYTHING verbosity.
  • 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.

v0.1

  • 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.

v0.0.7

  • 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.

v0.0.6

  • Refactored CMake to use and export targets
  • Bug fixes

0.0.5

  • Parameter estimation example
  • Power flow model composer with test example
  • Improved CMake build
  • Updated documentation

0.0.4

  • Add branch component model.
  • Add generator with governor component model.
  • Add generator connected to infinite bus example.

0.0.3

  • Add basic system composer.
  • Make GridKit forward compatible with Sundials >= 4.0

0.0.2

  • Add dynamic constraint Ipopt interface and usage example.
  • Add Generator 4 component model to the library.
  • Require CMake >= 3.0 to build GridKit

0.0.1

  • Initial release. Skeleton of the library to be developed.