15 #include <unordered_map>
18 #include <dpsim/Config.h>
19 #include <dpsim/Definitions.h>
20 #include <dpsim/DirectLinearSolver.h>
24 Eigen::SparseLU<CPS::SparseMatrixRow, Eigen::COLAMDOrdering<int>>
36 std::vector<std::pair<UInt, UInt>>
37 &listVariableSystemMatrixEntries)
override;
40 void factorize(SparseMatrix &systemMatrix)
override;
43 void refactorize(SparseMatrix &systemMatrix)
override;
47 std::vector<std::pair<UInt, UInt>>
48 &listVariableSystemMatrixEntries)
override;
51 Matrix
solve(Matrix &rightSideVector)
override;
DirectLinearSolver()=default
Constructor.
void factorize(SparseMatrix &systemMatrix) override
factorization function with partial pivoting
void refactorize(SparseMatrix &systemMatrix) override
refactorization without partial pivoting
~SparseLUAdapter() override
Destructor.
void preprocessing(SparseMatrix &systemMatrix, std::vector< std::pair< UInt, UInt >> &listVariableSystemMatrixEntries) override
preprocessing function pre-ordering and scaling the matrix
void partialRefactorize(SparseMatrix &systemMatrix, std::vector< std::pair< UInt, UInt >> &listVariableSystemMatrixEntries) override
partial refactorization withouth partial pivoting
Matrix solve(Matrix &rightSideVector) override
solution function for a right hand side