PlayaNOXSolver.hpp
00001
00002
00003
00004
00005 #ifndef PLAYA_NOXSOLVER_HPP
00006 #define PLAYA_NOXSOLVER_HPP
00007
00008 #include "PlayaDefs.hpp"
00009 #include "PlayaNonlinearSolverBase.hpp"
00010 #include "NOX.H"
00011 #include "NOX_Common.H"
00012 #include "NOX_Utils.H"
00013 #include "NOX_Playa_Group.hpp"
00014 #include "NOX_Playa_StatusTestBuilder.hpp"
00015 #include "NOX_Multiphysics_Solver_Manager.H"
00016 #include "Teuchos_Assert.hpp"
00017 #include "Teuchos_ParameterList.hpp"
00018
00019 namespace Playa
00020 {
00021 using namespace Teuchos;
00022
00026 class NOXSolver : public NonlinearSolverBase<double>
00027 {
00028 public:
00030 NOXSolver(){;}
00032 NOXSolver(const ParameterList& params);
00034 NOXSolver(const ParameterList& nonlinParams,
00035 const LinearSolver<double>& linSolver);
00036
00038 SolverState<double> solve(const NonlinearOperator<double>& F,
00039 Vector<double>& soln) const ;
00040
00042 const LinearSolver<double>& linSolver() const
00043 {return linSolver_;}
00044
00045
00046 GET_RCP(NonlinearSolverBase<double>);
00047
00048
00049 private:
00050
00051 LinearSolver<double> linSolver_;
00052 mutable RCP<NOX::StatusTest::Generic> statusTest_;
00053 mutable ParameterList params_;
00054 mutable ParameterList printParams_;
00055 };
00056 }
00057
00058 #endif