Loading...
Searching...
No Matches
solver.hpp File Reference
#include <optional>
#include "iterative_solver_info.hpp"
#include "terra/linalg/operator.hpp"
#include "terra/linalg/vector.hpp"

Go to the source code of this file.

Classes

class  terra::linalg::solvers::detail::DummySolver< OperatorT >
 Dummy solver for concept checks and testing. Implements solve_impl as a no-op. More...
 

Namespaces

namespace  terra
 
namespace  terra::util
 
namespace  terra::linalg
 Contains linear algebra utilities and functions for the Terra project.
 
namespace  terra::linalg::solvers
 
namespace  terra::linalg::solvers::detail
 

Concepts

concept  terra::linalg::solvers::SolverLike
 Concept for types that behave like linear solvers. Requires exposing OperatorType and a solve_impl method. See OperatorLike in operator.hpp for operator requirements.
 

Typedefs

template<SolverLike Solver>
using terra::linalg::solvers::SolutionOf = SrcOf< typename Solver::OperatorType >
 Alias for the solution vector type of a solver.
 
template<SolverLike Solver>
using terra::linalg::solvers::RHSOf = DstOf< typename Solver::OperatorType >
 Alias for the right-hand side vector type of a solver.
 

Functions

template<SolverLike Solver, OperatorLike Operator, VectorLike SolutionVector, VectorLike RHSVector>
void terra::linalg::solvers::solve (Solver &solver, Operator &A, SolutionVector &x, const RHSVector &b)
 Solve a linear system using the given solver and operator. Calls the solver's solve_impl method.