19 #ifndef GEOS_LINEARSOLVERBASE_HPP
20 #define GEOS_LINEARSOLVERBASE_HPP
22 #include "PreconditionerBase.hpp"
58 template<
typename LAI >
#define GEOS_UNUSED_VAR(...)
Mark an unused variable and silence compiler warnings.
Simple interface for linear solvers that allows to extract solution results.
typename Base::Vector Vector
Alias for vector type.
virtual void setExecutionContext(LinearSolverExecutionContext const &context)
Provide contextual execution metadata for backends that need it.
LinearSolverResult m_result
Result of most recent solve (status, timings)
virtual void solve(Vector const &rhs, Vector &sol) const =0
Solve preconditioned system.
LinearSolverParameters m_params
Parameters for the solver.
typename Base::Matrix Matrix
Alias for matrix type.
LinearSolverResult const & result() const
LinearSolverParameters const & parameters() const
LinearSolverBase(LinearSolverParameters params)
Constructor.
Common interface for preconditioning operators.
typename Base::Vector Vector
Alias for vector type.
typename LAI::ParallelMatrix Matrix
Alias for matrix type.
unsigned long long int Timestamp
Timestamp type (used to perform actions such a sparsity pattern computation after mesh modifications)
std::string string
String type.
int integer
Signed integer type.
Execution metadata associated with a linear-solver invocation.
Timestamp systemSetupTimestamp
Timestamp of the last system assembly/setup used by this solve.
integer configurationAttempt
Current configuration-attempt index, or -1 when unavailable.
integer timeStepAttempt
Current timestep-attempt index, or -1 when unavailable.
std::string solverName
Human-readable name of the owning solver.
integer cycleNumber
Current outer cycle index, or -1 when unavailable.
integer nonlinearIteration
Current nonlinear-iteration index, or -1 when unavailable.
Set of parameters for a linear solver or preconditioner.
Results/stats of a linear solve.