Diffpack Documentation


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

PrecProcedure.h

Go to the documentation of this file.
00001 
00005 class PrecProcedure : public Precond
00006 
00007 {
00008 protected:
00009 
00010      
00011      
00012      
00013 
00014   Handle(LinEqVector) scratch2;
00015 
00016   PrecProcedure (const Precond_prm& p);
00017 
00018 public:
00019 
00020   virtual ~PrecProcedure ();
00021 
00022   virtual bool redim (const LinEqVector& x);
00023 
00024   virtual void init (PrecBasis& Apb);
00025 
00026   virtual bool ok () const { return true; }
00027 
00028   virtual void apply (
00029     const LinEqVector& /*c*/,
00030           LinEqVector& /*d*/,
00031           TransposeMode /*tpmode*/ = NOT_TRANSPOSED) {
00032     errorFP("PrecProcedure ::apply",
00033             "Can not apply, this is a nonactive base class");
00034   }
00035 
00036   virtual real getStorage () const {
00037     if (precproc.ok())
00038      return precproc->getStorage();
00039     else {
00040      warningFP("PrecProcedure ::getStorage","Storage unknown, returning 0");
00041      return (0.0);
00042     }
00043   }
00044 
00045   CLASS_INFO
00046 };
00047 
00048 
00072 class PrecUserDefProc : public PrecProcedure
00073 
00074 {
00075 public:
00076 
00077   PrecUserDefProc (const Precond_prm& p);
00078   virtual ~PrecUserDefProc () {}
00079 
00080       
00081 
00082   virtual bool ok () const { return precproc.ok(); }
00083 
00084   virtual void apply
00085     (
00086      const LinEqVector& c,
00087            LinEqVector& d,
00088            TransposeMode tpmode = NOT_TRANSPOSED
00089     );
00090 
00091   virtual int getWork (const PrecondWork work_tp = APPLY_PREC_WORK) const;
00092 
00093   virtual String description () const;
00094 
00095   CLASS_INFO
00096 };
00097 
00098 

Copyright © 2003 inuTech GmbH. All rights reserved.