1#ifndef included_AMP_ColumnSolver
2#define included_AMP_ColumnSolver
4#include "AMP/solvers/SolverStrategy.h"
33 explicit ColumnSolver( std::shared_ptr<const SolverStrategyParameters> parameters );
40 static std::unique_ptr<SolverStrategy>
51 std::string
type()
const override {
return "ColumnSolver"; }
59 void apply( std::shared_ptr<const AMP::LinearAlgebra::Vector> f,
60 std::shared_ptr<AMP::LinearAlgebra::Vector>
u )
override;
72 void append( std::shared_ptr<AMP::Solver::SolverStrategy>
solver );
87 void resetOperator( std::shared_ptr<const AMP::Operator::OperatorParameters> params )
override;
90 void GaussSeidel( std::shared_ptr<const AMP::LinearAlgebra::Vector> &f,
91 std::shared_ptr<AMP::LinearAlgebra::Vector> &
u );
94 std::shared_ptr<AMP::LinearAlgebra::Vector> &
u );
96 std::vector<std::shared_ptr<AMP::Solver::SolverStrategy>>
d_Solvers;
std::shared_ptr< AMP::Solver::SolverStrategy > getSolver(const int i)
void SymmetricGaussSeidel(std::shared_ptr< const AMP::LinearAlgebra::Vector > &f, std::shared_ptr< AMP::LinearAlgebra::Vector > &u)
bool d_resetColumnOperator
void resetOperator(std::shared_ptr< const AMP::Operator::OperatorParameters > params) override
std::string type() const override
Return the name of the solver.
void apply(std::shared_ptr< const AMP::LinearAlgebra::Vector > f, std::shared_ptr< AMP::LinearAlgebra::Vector > u) override
void GaussSeidel(std::shared_ptr< const AMP::LinearAlgebra::Vector > &f, std::shared_ptr< AMP::LinearAlgebra::Vector > &u)
std::string d_IterationType
void setInitialGuess(std::shared_ptr< AMP::LinearAlgebra::Vector > initialGuess) override
void append(std::shared_ptr< AMP::Solver::SolverStrategy > solver)
static std::unique_ptr< SolverStrategy > createSolver(std::shared_ptr< SolverStrategyParameters > solverStrategyParameters)
std::vector< std::shared_ptr< AMP::Solver::SolverStrategy > > d_Solvers
ColumnSolver(std::shared_ptr< const SolverStrategyParameters > parameters)
std::shared_ptr< AMP::Solver::SolverStrategy > shared_ptr
SolverStrategyParameters ColumnSolverParameters