[3.6]
- Added
- Docker Support
- Multi-architecture Docker builds (AMD/ARM) with CI/CD pipeline
- Complete containerized GridPACK installation (OpenMPI, Boost, GA, PETSc)
- Documentation updated to include Docker usage
- State Estimation Enhancements
- Jacobian optimization and performance profiling for large-scale systems
- Bad data detection with chi-square test and configurable
diagnosticOutputLevel parameter (basic/standard/detailed) - Sparse matrix support for improved computational efficiency
- Added IIJ/IJI measurement types and enhanced voltage constraint options
- HPC capability for state estimation
- Chi-square convergence criteria in the outer loop
- Comprehensive output reporting with convergence warnings
- XML-configurable Newton-Raphson damping factor (dampingFactor, default 1.0)
- Updated IEEE 14-bus and IEEE 118-bus test inputs
- Python interface for state estimation including setMeasurements() API
and Sphinx documentation for the Python state estimation interface. - Power Flow Improvements
- Q-limit (QLIM) handling with PV-to-PQ bus switching and island detection
- RMPCT-based reactive power distribution for multi-generator buses
- Fixed shunt status check, Qg distribution when QLIM is reached, and
flat/warm start - Switched shunt support
- ZIP load model with voltage-dependent load representation
- Added Pinj, Qinj to power flow screen outputs
- Per-iteration max mismatch reporting in Newton-Raphson solve
- IREG remote voltage regulation support from PSS/E generator data
- JSON and CSV export of power flow results via ResultsExporter
- Contingency Analysis Enhancements
- N-1 auto-generation feature for contingency analysis
- Automatic slack bus transfer and capacity check
- QLIM configuration support in CA input XML files (default: false)
- PV->PQ warning messages in contingency output files
- Generator ID display in contingency results
- JSON and CSV export of contingency analysis results
- Dynamic Simulation Enhancements
- GENROU PSS integration
- Iterative equilibrium initialization (XML: equilibriumInit, default false)
- Support dynamic models (GENROU, GENSAL, Classical) for generators with
negative PG.
- Added build trigger when releasing a new version of GridPACK
- Docker Support
- Changed
- User manual updated for v3.6 including power flow, state estimation,
dynamic simulation, and Python interface documentation - Migrated QLIM parameter to bool type in power flow and CA for consistency
- Optimized CMake builds
- User manual updated for v3.6 including power flow, state estimation,
- Fixed
- Generator Models
- GENROU: scaled quadratic saturation, iterative q-axis saturation init,
LadIfd Se*Psidpp term, (1+omega) speed factor on internal voltage - GENSAL: unified saturation to PSS/E scaled quadratic, (1+omega) speed
factor, predictor speed deviation, saturation initialization - PowerAngle output wrapping to [-180,180] in all generator models
- Null pointer crash on unrecognized generator model in dsf_components
- GENROU: scaled quadratic saturation, iterative q-axis saturation init,
- Exciter Models
- ESST1A: regulator limits Vrmin/Vrmax to Vamin/Vamax, lead-lag bypass
- ESST4B: Kim parser key from EXCITER_KPM to EXCITER_KIM
- EXDC1: lead-lag using TA instead of TC
- SEXS: EMAX default from 0.0 to 999.0
- Governor Models
- GGOV1: re-enabled parameter parsing, PIDIn undefined behavior, State 9
ODE, lead-lag bypass/coefficients, corrector rate limit variable - WSIEG1: parser T3 field, NGV yin[] index, NGV/Db1/Db2 block types and
conditional bypass for zero data - WSHYGP: NGV yin[] indices, gate servo feedback, abs/fabs
- HYGOV: fallback setting R instead of r
- PSSSIM: washout output divided by Tw
- GGOV1: re-enabled parameter parsing, PIDIn undefined behavior, State 9
- Renewable Energy Models
- REECA1: VDL1/VDL2 swap, Thld state machine, timer formula, TIQ parser
- REPCA1: FEMIN parser column, over-frequency droop sign handling
- REGCA1: Iq_olim sign, P/Q swap in output
- REGCB1/REGCC1: uninitialized Preal variable
- Load Models
- MOTORW: comma operator (C0=1,0 -> 1.0), hardcoded llr1 removed, slip
interpolation - IEEL: normalization destroying valid coefficients
- MOTORW: comma operator (C0=1,0 -> 1.0), hardcoded llr1 removed, slip
- Framework / Infrastructure
- ForceSerial off-by-one in setElementRange half-open range
- Cblock crash when model time constant is zero
- Contingency analysis multi-process deadlock in GA operations
- 3-winding transformer parsing in PSS/E parsers
- Power Flow
- Warm start with qlim=false scenario
- Incomplete printing of parallel lines in output
- Trailing space in contingency output filenames
- Qmin/Qmax storage
- Generator Models