Advanced Multi-Physics (AMP)
On-Line Documentation
ColumnSolver.h
Go to the documentation of this file.
1#ifndef included_AMP_ColumnSolver
2#define included_AMP_ColumnSolver
3
4#include "AMP/solvers/SolverStrategy.h"
5#include <string>
6#include <vector>
7
8namespace AMP::Solver {
9
11
18{
19public:
24
33 explicit ColumnSolver( std::shared_ptr<const SolverStrategyParameters> parameters );
34
40 static std::unique_ptr<SolverStrategy>
41 createSolver( std::shared_ptr<SolverStrategyParameters> solverStrategyParameters )
42 {
43 return std::make_unique<ColumnSolver>( solverStrategyParameters );
44 }
45
49 virtual ~ColumnSolver() {}
50
51 std::string type() const override { return "ColumnSolver"; }
52
59 void apply( std::shared_ptr<const AMP::LinearAlgebra::Vector> f,
60 std::shared_ptr<AMP::LinearAlgebra::Vector> u ) override;
61
66 void setInitialGuess( std::shared_ptr<AMP::LinearAlgebra::Vector> initialGuess ) override;
67
72 void append( std::shared_ptr<AMP::Solver::SolverStrategy> solver );
73
78 std::shared_ptr<AMP::Solver::SolverStrategy> getSolver( const int i ) { return d_Solvers[i]; }
79
80 int getNumberOfSolvers() { return d_Solvers.size(); }
81
87 void resetOperator( std::shared_ptr<const AMP::Operator::OperatorParameters> params ) override;
88
89protected:
90 void GaussSeidel( std::shared_ptr<const AMP::LinearAlgebra::Vector> &f,
91 std::shared_ptr<AMP::LinearAlgebra::Vector> &u );
92
93 void SymmetricGaussSeidel( std::shared_ptr<const AMP::LinearAlgebra::Vector> &f,
94 std::shared_ptr<AMP::LinearAlgebra::Vector> &u );
95
96 std::vector<std::shared_ptr<AMP::Solver::SolverStrategy>> d_Solvers;
100 std::string d_IterationType;
101
103
104private:
105};
106} // namespace AMP::Solver
107
108#endif
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)
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)
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



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:41.
Comments on this page