Advanced Multi-Physics (AMP)
On-Line Documentation
TrilinosNOXSolver.h
Go to the documentation of this file.
1#ifndef included_AMP_TrilinosNOXSolver
2#define included_AMP_TrilinosNOXSolver
3
4// AMP includes
5#include "AMP/AMP_TPLs.h"
6#include "AMP/solvers/SolverStrategy.h"
7#include "AMP/solvers/trilinos/nox/TrilinosNOXSolverParameters.h"
8
9
10// Trilinos includes
12#include "Teuchos_RCP.hpp"
14
15
16// Forward declare Trilinos classes (helps protect from nvcc_wrapper)
17// clang-format off
18namespace NOX::Solver { class Generic; }
19namespace NOX::StatusTest { class Combo; }
20namespace Teuchos { class ParameterList; }
21namespace Thyra { template<class> class PreconditionerBase; }
22namespace Thyra { template<class> class LinearOpWithSolveFactoryBase; }
23// clang-format on
24
25
26namespace AMP::Solver {
27
28
29class TrilinosThyraModelEvaluator;
30
31
37{
38public:
43
84 explicit TrilinosNOXSolver( std::shared_ptr<SolverStrategyParameters> parameters );
85
90
92 static std::unique_ptr<SolverStrategy>
93 createSolver( std::shared_ptr<SolverStrategyParameters> solverStrategyParameters )
94 {
95 return std::make_unique<TrilinosNOXSolver>( solverStrategyParameters );
96 }
97
98 std::string type() const override { return "TrilinosNOXSolver"; }
99
105 void reset( std::shared_ptr<SolverStrategyParameters> parameters ) override;
106
112 void apply( std::shared_ptr<const AMP::LinearAlgebra::Vector> f,
113 std::shared_ptr<AMP::LinearAlgebra::Vector> u ) override;
114
121 void setInitialGuess( std::shared_ptr<AMP::LinearAlgebra::Vector> initialGuess ) override
122 {
124 }
125
126
127protected:
128 void initialize( std::shared_ptr<const SolverStrategyParameters> parameters ) override;
129
130 std::shared_ptr<SolverStrategy>
131 createPreconditioner( std::shared_ptr<AMP::Database> pc_solver_db );
132
134
136
138
144};
145} // namespace AMP::Solver
146
147#endif
Provides C++ wrapper around MPI routines.
Definition AMP_MPI.h:63
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
Definition Vector.h:60
std::shared_ptr< AMP::Solver::SolverStrategy > shared_ptr
Teuchos::RCP< Thyra::PreconditionerBase< double > > d_precOp
Teuchos::RCP<::Thyra::LinearOpWithSolveFactoryBase< double > > d_lowsFactory
void reset(std::shared_ptr< SolverStrategyParameters > parameters) override
Teuchos::RCP< TrilinosThyraModelEvaluator > d_thyraModel
TrilinosNOXSolver(std::shared_ptr< SolverStrategyParameters > parameters)
Teuchos::RCP< NOX::StatusTest::Combo > d_status
void initialize(std::shared_ptr< const SolverStrategyParameters > parameters) override
static std::unique_ptr< SolverStrategy > createSolver(std::shared_ptr< SolverStrategyParameters > solverStrategyParameters)
static create routine that is used by SolverFactory
AMP::LinearAlgebra::Vector::shared_ptr d_initialGuess
void apply(std::shared_ptr< const AMP::LinearAlgebra::Vector > f, std::shared_ptr< AMP::LinearAlgebra::Vector > u) override
Teuchos::RCP< Teuchos::ParameterList > d_nlParams
void setInitialGuess(std::shared_ptr< AMP::LinearAlgebra::Vector > initialGuess) override
std::string type() const override
Return the name of the solver.
std::shared_ptr< SolverStrategy > createPreconditioner(std::shared_ptr< AMP::Database > pc_solver_db)
Teuchos::RCP< NOX::Solver::Generic > d_solver
#define DISABLE_WARNINGS
Re-enable warnings.
#define ENABLE_WARNINGS
Suppress all warnings.



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