00001 #ifndef PRECOND_H 00002 #define PRECOND_H 00003 00004 #include <stdio.h> 00005 #include "galias.h" 00006 //#include "gmatrix.h" 00007 //#include "aggregator.h" 00008 #include "gtopology.h" 00009 #include "xfile.h" 00010 00011 class gmatrix; 00012 class aggregator; 00013 00014 /** 00015 class deals with preconditioning 00016 00017 JK, 25.2.2007 00018 */ 00019 class precond 00020 { 00021 public: 00022 precond (); 00023 ~precond (); 00024 00025 void read (gtopology *gt,XFILE *in,long mespr); 00026 void print (FILE *out); 00027 00028 void setting (precondtype p,double ift,long numaggr); 00029 00030 void initiation (gtopology *gt,gmatrix *gm,FILE *out); 00031 00032 void preconditioning (double *r,double *h,double *rhs); 00033 00034 00035 /// type of preconditioning 00036 precondtype pt; 00037 00038 /// number of unknowns/equations 00039 long n; 00040 00041 /// treshold for incomplete factorization 00042 double incompltresh; 00043 00044 /// class for aggregation method 00045 aggregator *agg; 00046 00047 00048 gmatrix *agm; 00049 00050 double ssoromega; 00051 double indegamma; 00052 }; 00053 00054 00055 #endif