PlayaPoissonBoltzmannOp.hpp

00001 /* @HEADER@ */
00002 //   
00003 /* @HEADER@ */
00004 
00005 #ifndef PLAYA_POISSONBOLTZMANNOP_HPP
00006 #define PLAYA_POISSONBOLTZMANNOP_HPP
00007 
00008 #include "PlayaDefs.hpp"
00009 #include "PlayaNonlinearOperatorBase.hpp"
00010 #include "PlayaPoissonBoltzmannJacobian.hpp"
00011 #include "PlayaVectorDecl.hpp"
00012 
00013 namespace Playa
00014 {
00016   class PoissonBoltzmannOp : public NonlinearOperatorBase<double>
00017   {
00018   public:
00020     PoissonBoltzmannOp(int nLocal, const VectorType<double>& vecType);
00021 
00023     Vector<double> getInitialGuess() const ;
00024 
00026     Vector<double> exactSoln() const ;
00027 
00028     
00029 
00030     /* */
00031     GET_RCP(NonlinearOperatorBase<double>);
00032 
00033   protected:
00035     LinearOperator<double> 
00036     computeJacobianAndFunction(Vector<double>& functionValue) const ;
00037 
00038   private:
00039 
00040     mutable PoissonBoltzmannJacobian J_;
00041     
00042     RCP<GhostImporter<double> > importer_;
00043 
00044     double uLeftBC_;
00045 
00046     double uRightBC_;
00047 
00048     
00049   };
00050  
00051 }
00052 
00053 
00054 #endif

doxygen