Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

Precond_prm.h

Go to the documentation of this file.
00001 
00005 class PrecAction : public virtual HandleId
00006 
00007 {
00008 public:
00009 
00010   PrecAction () {}
00011  ~PrecAction ();
00012 
00013   virtual void genAction   
00014     (LinEqVector&, LinEqVector&, TransposeMode);
00015 
00016   virtual void matAction   
00017     (LinEqMatrix&, LinEqVector&, LinEqVector&, TransposeMode);
00018 
00019   virtual real getStorage () const { return 0; }
00020   virtual int getWork (const PrecondWork /*work_tp = APPLY_PREC_WORK*/) const
00021   { return 0; }
00022 };
00023 
00024 
00056 class Precond_prm : public HandleId
00057 
00058 {
00059 protected:
00060 
00061   StringList subclasses;
00062   static Handle(Precond_prm) master;
00063   virtual Precond_prm* clone () { return new Precond_prm(); }
00064 
00065   Precond_prm ();
00066 
00067 public:
00068 
00069   static   Precond_prm* construct ();
00070   virtual ~Precond_prm ();
00071 
00072   String   prec_tp;         
00073 
00074   bool     left;            
00075 
00076   bool     auto_init;       
00077 
00078   int      fillin_level;    
00079   real     relax_RILU;      
00080 
00081   real     relax_SSOR;      
00082 
00083   int      inner_steps;     
00084 
00085   Handle(PrecAction) precproc;  
00086 
00087   void operator = (const Precond_prm& p);
00088 
00089   static  void defineStatic  (MenuSystem& menu, int level = MAIN);
00090           void define        (MenuSystem& menu, int level = MAIN)
00091                              { defineStatic (menu, level); }
00092           void scan          (MenuSystem& menu);
00093 
00094   void print (Os os) const;
00095 
00096   virtual Precond* create () const;
00097           const StringList& hier () const    { return subclasses; }
00098   static  const StringList& hierStatic ()    { return master->hier(); }
00099   static  void   registerPrmSubclass (Precond_prm& sc) { master.rebind (sc); }
00100   static  void unregisterPrmSubclass () { master.rebind (new Precond_prm()); }
00101 };
00102 
00103 

Copyright © 2003 inuTech GmbH. All rights reserved.