00001 /* @HEADER@ */ 00002 // 00003 /* @HEADER@ */ 00004 00005 #ifndef PLAYA_NONLINEAR_SOLVER_HPP 00006 #define PLAYA_NONLINEAR_SOLVER_HPP 00007 00008 #include "PlayaDefs.hpp" 00009 #include "PlayaNonlinearSolverBase.hpp" 00010 #include "PlayaHandle.hpp" 00011 00012 namespace Playa 00013 { 00014 00015 /** 00016 * 00017 */ 00018 template <class Scalar> 00019 class NonlinearSolver : public Handle<NonlinearSolverBase<Scalar> > 00020 { 00021 public: 00022 /* boilerplate ctors */ 00023 HANDLE_CTORS(NonlinearSolver<Scalar>, NonlinearSolverBase<Scalar>); 00024 00025 /** */ 00026 SolverState<Scalar> solve(const NonlinearOperator<Scalar>& F, 00027 Vector<Scalar>& soln) const {return this->ptr()->solve(F, soln);} 00028 }; 00029 00030 00031 } 00032 00033 #endif