Harmony
HARMONic stabilitY assessment of PE-penetrated power systems
Loading...
Searching...
No Matches
Symbolic_functions.h
Go to the documentation of this file.
1#ifndef _SYMBOLIC_FUNCTIONS_H_
2#define _SYMBOLIC_FUNCTIONS_H_
3
13#include "../../Constants.h"
14
16extern const RCP<const Basic> PI;
17
19extern const double mu_0;
21extern const double epsilon_0;
23extern const double gamma_num;
24
26extern RCP<const Basic> j;
28extern RCP<const Basic> omega;
30extern RCP<const Basic> s;
31
38extern DenseMatrix createZeroMatrix(int size1, int size2);
39
44extern void fillWithZero(DenseMatrix& mat);
45
51extern DenseMatrix eigenToSymEngineDenseMatrix(const MatrixXcd& eigenMat);
52
60extern complex<double> substitute_symbol(const RCP<const Basic>& expr, const std::string& symbol_name, double value);
61
69extern complex<double> substitute_symbol(const RCP<const Basic>& expr, RCP<const Basic> symbol_name, double value);
70
78extern complex<double> substitute_symbol(const RCP<const Basic>& expr, const std::string& symbol_name, complex<double> value);
79
87extern complex<double> substitute_symbol(const RCP<const Basic>& expr, RCP<const Basic> symbol_name, complex<double> value);
88
96extern MatrixXcd substitute_symbol(DenseMatrix, const string&, double);
97
105extern MatrixXcd substitute_symbol(DenseMatrix, const string&, complex<double>);
106
114extern MatrixXcd substitute_symbol(DenseMatrix, RCP<const Basic>, double);
115
123extern MatrixXcd substitute_symbol(DenseMatrix, RCP<const Basic>, complex<double>);
124
132extern RCP<const Basic> substitute_symbols(const RCP<const Basic>& expr, const std::vector<RCP<const Basic>>& symbols, double value);
133
139extern double eval_basic(const RCP<const Basic>& expr);
140
147extern MatrixXd kron_reduction(MatrixXd, vector<int>);
148
155extern DenseMatrix kron_reduction(DenseMatrix, vector<int>);
156
162extern Eigen::SparseMatrix<double> absoluteSparseMatrix(const Eigen::SparseMatrix<std::complex<double>>& matrix);
163
169extern RCP<const Basic> inv(const RCP<const Basic>& val);
170
177extern RCP<const Basic> addSym(const RCP<const Basic>& a, const RCP<const Basic>& b);
178
185extern RCP<const Basic> subSym(const RCP<const Basic>& a, const RCP<const Basic>& b);
186
187
188#endif
RCP< const Basic > addSym(const RCP< const Basic > &a, const RCP< const Basic > &b)
Symbolic addition a + b.
Definition Symbolic_functions.cpp:261
Eigen::SparseMatrix< double > absoluteSparseMatrix(const Eigen::SparseMatrix< std::complex< double > > &matrix)
Takes the element-wise absolute value of a complex sparse matrix.
Definition Symbolic_functions.cpp:32
complex< double > substitute_symbol(const RCP< const Basic > &expr, const std::string &symbol_name, double value)
Substitutes a named symbol with a real value in an expression.
Definition Symbolic_functions.cpp:62
RCP< const Basic > subSym(const RCP< const Basic > &a, const RCP< const Basic > &b)
Symbolic subtraction a - b.
Definition Symbolic_functions.cpp:267
RCP< const Basic > j
Imaginary unit j.
Definition Symbolic_functions.cpp:9
const RCP< const Basic > PI
Symbolic representation of π.
Definition Symbolic_functions.cpp:8
double eval_basic(const RCP< const Basic > &expr)
Evaluates a symbolic expression to a real scalar.
Definition Symbolic_functions.cpp:158
MatrixXd kron_reduction(MatrixXd, vector< int >)
Kron-reduces a real matrix by eliminating specified nodes.
Definition Symbolic_functions.cpp:172
const double mu_0
Vacuum permeability (H/m).
Definition Standard_functions.cpp:8
void fillWithZero(DenseMatrix &mat)
Sets every entry of a SymEngine dense matrix to zero in place.
Definition Symbolic_functions.cpp:26
const double epsilon_0
Vacuum permittivity (F/m).
Definition Standard_functions.cpp:9
RCP< const Basic > s
Complex frequency symbol s = jω.
Definition Symbolic_functions.cpp:11
DenseMatrix createZeroMatrix(int size1, int size2)
Creates a zero-filled SymEngine dense matrix.
Definition Symbolic_functions.cpp:15
RCP< const Basic > inv(const RCP< const Basic > &val)
Symbolic multiplicative inverse (1/x).
Definition Symbolic_functions.cpp:257
DenseMatrix eigenToSymEngineDenseMatrix(const MatrixXcd &eigenMat)
Converts an Eigen complex matrix to a SymEngine DenseMatrix.
Definition Symbolic_functions.cpp:43
RCP< const Basic > substitute_symbols(const RCP< const Basic > &expr, const std::vector< RCP< const Basic > > &symbols, double value)
Substitutes multiple symbols with the same real value in an expression.
Definition Symbolic_functions.cpp:149
const double gamma_num
Euler–Mascheroni constant.
Definition Standard_functions.cpp:10
RCP< const Basic > omega
Angular frequency symbol ω.
Definition Symbolic_functions.cpp:10