/*************************************************************************** * Copyright (c) 2023 Ondsel, Inc. * * * * This file is part of OndselSolver. * * * * See LICENSE file for details about copyright. * ***************************************************************************/ #pragma once #include #include #include "Solver.h" #include "FullColumn.h" #include "SparseMatrix.h" namespace MbD { class MatrixSolver; class SystemSolver; class VelSolver : public Solver { //system n x errorVector jacobian matrixSolver public: void basicSolveEquations(); void handleSingularMatrix() override; void logSingularMatrixMessage(); std::shared_ptr matrixSolverClassNew(); void solveEquations(); void setSystem(Solver* sys) override; SystemSolver* system = nullptr; size_t n = SIZE_MAX; FColDsptr x, errorVector; SpMatDsptr jacobian; std::shared_ptr matrixSolver; }; }