1#ifndef included_AMP_HyprePCGSolver
2#define included_AMP_HyprePCGSolver
5#include "AMP/matrices/Matrix.h"
6#include "AMP/solvers/SolverStrategy.h"
7#include "AMP/solvers/SolverStrategyParameters.h"
8#include "AMP/solvers/hypre/HypreSolver.h"
11class HypreMatrixAdaptor;
41 explicit HyprePCGSolver( std::shared_ptr<HyprePCGSolverParameters> parameters );
48 std::string
type()
const override {
return "HyprePCGSolver"; }
51 static std::unique_ptr<SolverStrategy>
66 void initialize( std::shared_ptr<const SolverStrategyParameters> parameters )
override;
70 void reset( std::shared_ptr<SolverStrategyParameters> params )
override;
void initialize(std::shared_ptr< const SolverStrategyParameters > parameters) override
std::string type() const override
Return the name of the solver.
HyprePCGSolver(std::shared_ptr< HyprePCGSolverParameters > parameters)
void getFromInput(std::shared_ptr< const AMP::Database > db)
virtual ~HyprePCGSolver()
void setupHypreSolver(std::shared_ptr< const SolverStrategyParameters > parameters)
static std::unique_ptr< SolverStrategy > createSolver(std::shared_ptr< SolverStrategyParameters > solverStrategyParameters)
static create routine that is used by SolverFactory
void setHypreFunctionPointers()
void reset(std::shared_ptr< SolverStrategyParameters > params) override
std::shared_ptr< AMP::Solver::SolverStrategy > shared_ptr