deltaFlow
Qlim.H
Go to the documentation of this file.
1/*
2 * Copyright (c) 2024 Saud Zahir
3 *
4 * This file is part of deltaFlow.
5 *
6 * deltaFlow is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public
8 * License as published by the Free Software Foundation; either
9 * version 3 of the License, or (at your option) any later version.
10 *
11 * deltaFlow is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with deltaFlow. If not, see
18 * <https://www.gnu.org/licenses/>.
19 */
20
33#ifndef QLIM_H
34#define QLIM_H
35
36#include <Eigen/Dense>
37#include <vector>
38
39#include "ISolver.H"
40
41struct BusData;
42
47class Qlim final {
48 public:
67 static bool check(
68 const Eigen::VectorXd& V,
69 const Eigen::VectorXd& delta,
70 Eigen::VectorXi& type_bus,
71 const Eigen::MatrixXd& G,
72 const Eigen::MatrixXd& B,
73 BusData& busData,
74 const std::vector<int>& pv_bus_id,
75 int n_bus,
76 ISolverObserver* observer = nullptr
77 );
78};
79
80#endif
Abstraction over power-flow solvers (Open/Closed Principle).
Sink for solver progress/diagnostics (Dependency Inversion / SRP).
Definition ISolver.H:93
Checks reactive power limits on PV buses after solver convergence.
Definition Qlim.H:47
static bool check(const Eigen::VectorXd &V, const Eigen::VectorXd &delta, Eigen::VectorXi &type_bus, const Eigen::MatrixXd &G, const Eigen::MatrixXd &B, BusData &busData, const std::vector< int > &pv_bus_id, int n_bus, ISolverObserver *observer=nullptr)
Checks reactive power limits on PV buses after solver convergence.
Definition Qlim.C:36
Contains all relevant data for each bus in the power system.
Definition Data.H:55