O2Relax.h

00001 #ifndef gridripper_odesolver_relax_method_O2Relax_h
00002 #define gridripper_odesolver_relax_method_O2Relax_h
00003 
00004 #include <gridripper/odesolver/relax/ODERelax.h>
00005 
00006 namespace gridripper { namespace odesolver {
00007 
00008 class ODE;
00009 
00010 namespace relax {
00011 
00018 class O2Relax: public ODERelax::Method
00019 {
00020 private:
00021     ODE* theODE;
00022 
00023     int maxi;
00024 
00025 public:
00031     O2Relax(ODE* ode, int nx) throw(ODERelax::RelaxationException&);
00032 
00033     int getNumSubsteps() const;
00034 
00045     void set(tvalarray<GReal_t>& fieldValues, tvalarray<GReal_t>& matrix,
00046              tvalarray<GReal_t>& rhsvec,
00047              const tvalarray<GReal_t>& deltaField);
00048 };
00049 
00050 } } } // namespace gridripper::odesolver::relax
00051 
00052 #endif /* gridripper_odesolver_relax_method_O2Relax_h */