14#include <unordered_map>
18#include <dpsim/Config.h>
51 std::vector<std::pair<UInt, UInt>> &listVariableSystemMatrixEntries) = 0;
62 std::vector<std::pair<UInt, UInt>> &listVariableSystemMatrixEntries) = 0;
83 SPDLOG_LOGGER_WARN(
mSLog,
"Linear solver configuration is not used!");
std::shared_ptr< spdlog::logger > Log
virtual void refactorize(SparseMatrix &systemMatrix)=0
refactorization without partial pivoting
DirectLinearSolver(const DirectLinearSolver &)=default
Copy Constructor.
DirectLinearSolver()=default
Constructor.
DirectLinearSolver(CPS::Logger::Log log)
Constructor with Logger.
DirectLinearSolver(DirectLinearSolver &&)=default
Move Constructor.
virtual void partialRefactorize(SparseMatrix &systemMatrix, std::vector< std::pair< UInt, UInt > > &listVariableSystemMatrixEntries)=0
partial refactorization withouth partial pivoting
virtual void applyConfiguration()
DirectLinearSolverConfiguration mConfiguration
Object that carries configuration options.
CPS::Logger::Log mSLog
Stores logger of solver class.
DirectLinearSolver & operator=(DirectLinearSolver &&)=default
Move Assignment Operator.
virtual void setConfiguration(DirectLinearSolverConfiguration &configuration)
virtual void factorize(SparseMatrix &systemMatrix)=0
factorization function with partial pivoting
virtual Matrix solve(Matrix &rightSideVector)=0
solution function for a right hand side
DirectLinearSolver & operator=(const DirectLinearSolver &)=default
Copy Assignment Operator.
virtual ~DirectLinearSolver()=default
Destructor.
virtual void preprocessing(SparseMatrix &systemMatrix, std::vector< std::pair< UInt, UInt > > &listVariableSystemMatrixEntries)=0
preprocessing function pre-ordering and scaling the matrix
CPS::SparseMatrixRow SparseMatrix