/[escript]/trunk/paso/src/Preconditioner.h
ViewVC logotype

Diff of /trunk/paso/src/Preconditioner.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3158 by gross, Mon Sep 6 06:09:11 2010 UTC revision 3159 by gross, Mon Sep 6 06:59:31 2010 UTC
# Line 39  void Paso_Preconditioner_LocalSmoother_f Line 39  void Paso_Preconditioner_LocalSmoother_f
39  Paso_Preconditioner_Smoother* Paso_Preconditioner_Smoother_alloc(Paso_SystemMatrix * A_p, const bool_t jacobi, const bool_t is_local, const bool_t verbose);  Paso_Preconditioner_Smoother* Paso_Preconditioner_Smoother_alloc(Paso_SystemMatrix * A_p, const bool_t jacobi, const bool_t is_local, const bool_t verbose);
40  Paso_Preconditioner_LocalSmoother* Paso_Preconditioner_LocalSmoother_alloc(Paso_SparseMatrix * A_p,const bool_t jacobi, const bool_t verbose);  Paso_Preconditioner_LocalSmoother* Paso_Preconditioner_LocalSmoother_alloc(Paso_SparseMatrix * A_p,const bool_t jacobi, const bool_t verbose);
41    
42  void Paso_Preconditioner_Smoother_solve(Paso_SystemMatrix* A, Paso_Preconditioner_Smoother * gs, double * x, const double * b, const dim_t sweeps);  void Paso_Preconditioner_Smoother_solve(Paso_SystemMatrix* A, Paso_Preconditioner_Smoother * gs, double * x, const double * b, const dim_t sweeps, const bool_t x_is_initial);
43  void Paso_Preconditioner_LocalSmoother_solve(Paso_SparseMatrix* A, Paso_Preconditioner_LocalSmoother * gs, double * x, const double * b, const dim_t sweeps);  void Paso_Preconditioner_LocalSmoother_solve(Paso_SparseMatrix* A, Paso_Preconditioner_LocalSmoother * gs, double * x, const double * b, const dim_t sweeps, const bool_t x_is_initial);
44    
45  void Paso_Preconditioner_LocalSmoother_Sweep(Paso_SparseMatrix* A, Paso_Preconditioner_LocalSmoother * gs, double * x);  void Paso_Preconditioner_LocalSmoother_Sweep(Paso_SparseMatrix* A, Paso_Preconditioner_LocalSmoother * gs, double * x);
46  void Paso_Preconditioner_LocalSmoother_Sweep_sequential(Paso_SparseMatrix* A, Paso_Preconditioner_LocalSmoother * gs, double * x);  void Paso_Preconditioner_LocalSmoother_Sweep_sequential(Paso_SparseMatrix* A, Paso_Preconditioner_LocalSmoother * gs, double * x);
# Line 79  struct Paso_Solver_RILU { Line 79  struct Paso_Solver_RILU {
79  };  };
80  typedef struct Paso_Solver_RILU Paso_Solver_RILU;  typedef struct Paso_Solver_RILU Paso_Solver_RILU;
81    
 struct Paso_Solver_Smoother {  
   dim_t ID;    
   Paso_Preconditioner_LocalSmoother* Jacobi;  
   Paso_Preconditioner_LocalSmoother* GS;  
 };  
 typedef struct  Paso_Solver_Smoother  Paso_Solver_Smoother;  
82    
83  /* AMG preconditioner */  /* AMG preconditioner */
84  struct Paso_Solver_AMG {  struct Paso_Solver_AMG {
# Line 119  struct Paso_Solver_AMG { Line 113  struct Paso_Solver_AMG {
113    Paso_SparseMatrix * AOffset1;    Paso_SparseMatrix * AOffset1;
114    Paso_SparseMatrix * AUnrolled;    Paso_SparseMatrix * AUnrolled;
115    void* solver;    void* solver;
116    Paso_Solver_Smoother* Smoother;    Paso_Preconditioner_LocalSmoother* Smoother;
117    struct Paso_Solver_AMG * AMG_of_Coarse;    struct Paso_Solver_AMG * AMG_of_Coarse;
118  };  };
119  typedef struct Paso_Solver_AMG Paso_Solver_AMG;  typedef struct Paso_Solver_AMG Paso_Solver_AMG;
# Line 152  struct Paso_Solver_AMLI { Line 146  struct Paso_Solver_AMLI {
146    Paso_SparseMatrix * A;    Paso_SparseMatrix * A;
147    Paso_SparseMatrix * AOffset1;    Paso_SparseMatrix * AOffset1;
148    void* solver;    void* solver;
149    Paso_Preconditioner_LocalSmoother* GS;    Paso_Preconditioner_LocalSmoother* Smoother;
150    struct Paso_Solver_AMLI * AMLI_of_Schur;    struct Paso_Solver_AMLI * AMLI_of_Schur;
151  };  };
152  typedef struct Paso_Solver_AMLI Paso_Solver_AMLI;  typedef struct Paso_Solver_AMLI Paso_Solver_AMLI;

Legend:
Removed from v.3158  
changed lines
  Added in v.3159

  ViewVC Help
Powered by ViewVC 1.1.26