20#include <unordered_map>
23#include <dpsim/Config.h>
30 std::vector<std::pair<UInt, UInt>> mChangedEntries;
33 std::vector<Int> mVaryingColumns;
35 std::vector<Int> mVaryingRows;
39 klu_numeric *mNumeric =
nullptr;
40 klu_symbolic *mSymbolic =
nullptr;
45 int mPreordering = AMD_ORDERING;
68 std::vector<std::pair<UInt, UInt>>
69 &listVariableSystemMatrixEntries)
override;
79 std::vector<std::pair<UInt, UInt>>
80 &listVariableSystemMatrixEntries)
override;
std::shared_ptr< spdlog::logger > Log
DirectLinearSolver()=default
Constructor.
void applyConfiguration() override
Apply configuration.
void factorize(SparseMatrix &systemMatrix) override
factorization function with partial pivoting
Matrix solve(Matrix &rightSideVector) override
solution function for a right hand side
void refactorize(SparseMatrix &systemMatrix) override
refactorization without partial pivoting
void printMatrixMarket(SparseMatrix &systemMatrix, int counter) const
Function to print matrix in MatrixMarket's coo format.
void partialRefactorize(SparseMatrix &systemMatrix, std::vector< std::pair< UInt, UInt > > &listVariableSystemMatrixEntries) override
partial refactorization withouth partial pivoting
~KLUAdapter() override
Destructor.
void preprocessing(SparseMatrix &systemMatrix, std::vector< std::pair< UInt, UInt > > &listVariableSystemMatrixEntries) override
preprocessing function pre-ordering and scaling the matrix
PARTIAL_REFACTORIZATION_METHOD
CPS::SparseMatrixRow SparseMatrix