PlayaNOXSolver.hpp

00001 /* @HEADER@ */
00002 //   
00003 /* @HEADER@ */
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

doxygen