PlayaNonlinearOperator.hpp

00001 /* @HEADER@ */
00002 /* @HEADER@ */
00003 
00004 #ifndef PLAYA_NONLINEAROPERATOR_HPP
00005 #define PLAYA_NONLINEAROPERATOR_HPP
00006 
00007 #include "PlayaDefs.hpp"
00008 #include "PlayaHandle.hpp"
00009 #include "PlayaNonlinearOperatorBase.hpp"
00010 #include "Teuchos_TimeMonitor.hpp"
00011 
00012 namespace Playa
00013 {
00014 using namespace Teuchos;
00015 
00019 template <class Scalar>
00020 class NonlinearOperator : public Handle<NonlinearOperatorBase<Scalar> >
00021 {
00022 public:
00023   /* boilerplate ctors */
00024   HANDLE_CTORS(NonlinearOperator<Scalar>, NonlinearOperatorBase<Scalar>);
00025 
00027   VectorSpace<Scalar> domain() const 
00028     {return this->ptr()->domain();}
00029 
00031   VectorSpace<Scalar>  range() const 
00032     {return this->ptr()->range();}
00033 
00035   void setEvalPt(const Vector<double>& evalPt) const 
00036     {
00037       this->ptr()->setEvalPt(evalPt);
00038     }
00039       
00041   LinearOperator<Scalar> getJacobian() const 
00042     {
00043       return this->ptr()->getJacobian();
00044     }
00045 
00047   Vector<double> getFunctionValue() const 
00048     {
00049       return this->ptr()->getFunctionValue();
00050     }
00051 
00052       
00053 
00055   Vector<double> getInitialGuess() const 
00056     {
00057       return this->ptr()->getInitialGuess();
00058     }
00059 
00061   Vector<double> currentEvalPt() const 
00062     {
00063       return this->ptr()->currentEvalPt();
00064     }
00065 
00066 private:
00067 };
00068 }
00069 
00070 
00071 #endif

doxygen