stdloop.h

Go to the documentation of this file.
00001 #ifndef  __StdLoop_h
00002 #define  __StdLoop_h
00003 
00004 #include  "extrapolator.h"
00005 #include  "adaptordata.h"
00006 #include  "basicloop.h"
00007 
00008 /*-----------------------------------------*/
00009 
00010 namespace Gascoigne
00011 {
00012 
00014 //
00017 
00021 
00022 class StdLoop : public virtual BasicLoop
00023 {
00024 
00025 protected:
00026 
00027   mutable StopWatch   _clock_newmesh, _clock_solve, _clock_write;
00028 
00029 
00030   
00031   int _nmin, _nmax, _coarse;
00032   double _p;
00033   int    _random_coarsening;
00034   std::string _estimator, _extrapolate, _refiner;
00035   DoubleVector _JErr;
00036   Extrapolator    Extra;
00037 
00038   // new vectors
00039 
00040   DoubleVector ComputeFunctionals(VectorInterface& f, VectorInterface& u) const;
00041 
00042   DoubleVector GetExactValues() const;
00043 
00044   virtual void EtaVisu(std::string name, int i, const DoubleVector& eta) const;
00045   virtual void EtaCellVisu(std::string name, int i, const GlobalVector& eta) const;
00046   virtual void AdaptMesh(const DoubleVector& eta);
00047   virtual void AdaptMesh(const DoubleVector& eta,std::string refine_or_coarsen_step);
00048   virtual DoubleVector Functionals(VectorInterface& u, VectorInterface& f);
00049   virtual double Estimator(DoubleVector& eta, VectorInterface& u, VectorInterface& f);
00050 
00051 public:
00052 
00053   StdLoop();
00054   ~StdLoop();
00055 
00056   void BasicInit(const ParamFile* paramfile,
00057                  const ProblemContainer* PC,
00058                  const FunctionalContainer* FC=NULL);
00059 
00060   void run(const std::string& problemlabel);
00061   void ClockOutput() const;
00062 };
00063 }
00064 /*-----------------------------------------*/
00065 
00066 #endif

Generated on Thu Sep 14 10:34:38 2006 for Gascoigne by  doxygen 1.4.7