Page MenuHomec4science

sparse_solver_base.hpp
No OneTemporary

File Metadata

Created
Thu, Jul 25, 14:53

sparse_solver_base.hpp

#ifndef SPECMICP_SPARSESOLVERS_SPARSESOLVERSBASE_HPP
#define SPECMICP_SPARSESOLVERS_SPARSESOLVERSBASE_HPP
namespace specmicp {
namespace sparse_solvers {
enum class SparseSolverReturnCode;
//! \brief Abstract Base Class for a sparse solver
template <class MatrixT, class DerivedR, class DerivedS>
class SparseSolverBase
{
public:
//! \brief Decompose the jacboian
virtual SparseSolverReturnCode decompose(MatrixT& jacobian) = 0;
//! \brief Solve the problem
virtual SparseSolverReturnCode solve(const DerivedR& residuals, DerivedS& solution) = 0;
//! \brief Solve the problem
virtual SparseSolverReturnCode solve_scaling(const DerivedR& residuals, const DerivedR& scaling, DerivedS& solution) = 0;
};
} // end namespace sparse_solvers
} // end namespace specmicp
#endif //SPECMICP_SPARSESOLVERS_SPARSESOLVERSBASE_HPP

Event Timeline