Diffpack Documentation

(Functionality not available, requires installation of an additional Diffpack Toolbox)


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

Multigrid.h

Go to the documentation of this file.
00001 
00005 class Multigrid : public MLSolver
00006 
00007 {
00008 protected:
00009   VecSimplest(Handle(LinEqVector)) linearSubproblemRes; 
00010   virtual bool cycle(SpaceId space, StartVectorMode start);
00011 public:
00012 
00013   Multigrid (const MLSolver_prm& pm);
00014  ~Multigrid () {}
00015 
00016   virtual bool solve (StartVectorMode start);
00017   virtual void init ();
00018 
00019   virtual String description () const;
00020   virtual int getWork (const PrecondWork work_tp) const;
00021   virtual real getStorage () const;
00022 
00023   CLASS_INFO
00024 };
00025 
00026 
00027 
00098 class AddMultigrid : public Multigrid
00099 
00100 {
00101 public:
00102 
00103   AddMultigrid (const MLSolver_prm& pm);
00104  ~AddMultigrid () {}
00105 
00106   virtual String description () const;
00107   virtual int getWork (const PrecondWork work_tp) const;
00108   virtual bool solve (StartVectorMode start);
00109 
00110   CLASS_INFO
00111 };
00112 
00113 
00114 
00180 class NestedMultigrid : public Multigrid
00181 
00182 {
00183 public:
00184 
00185   NestedMultigrid (const MLSolver_prm& pm);
00186  ~NestedMultigrid () {}
00187 
00188   virtual String description () const;
00189   virtual int getWork (const PrecondWork work_tp) const;
00190   virtual bool solve (StartVectorMode start);
00191   virtual void init ();
00192   virtual void initRes (SpaceId i);
00193 
00194   CLASS_INFO
00195 };
00196 
00197 
00293 class NonlinearMultigrid : public Multigrid
00294 
00295 {
00296 protected:
00297   VecSimplest(Handle(LinEqVector)) linearOldSol; 
00298   VecSimplest(Handle(LinEqVector)) linearOldRes; 
00299   virtual bool cycle(SpaceId space, StartVectorMode start);
00300 public:
00301 
00302   NonlinearMultigrid (const MLSolver_prm& pm);
00303  ~NonlinearMultigrid () {}
00304 
00305   virtual bool solve (StartVectorMode start);
00306   virtual void init ();
00307   virtual void initRes (SpaceId i);
00308   virtual void initRhs (SpaceId i);
00309 
00310   virtual String description () const;
00311   virtual int getWork (const PrecondWork work_tp) const;
00312   virtual real getStorage () const;
00313 
00314   CLASS_INFO
00315 };
00316 
00317 
00388 class NestedFASMultigrid : public NonlinearMultigrid
00389 
00390 {
00391 protected:
00392   virtual bool cycle(SpaceId space, StartVectorMode start);
00393 public:
00394 
00395   NestedFASMultigrid (const MLSolver_prm& pm);
00396  ~NestedFASMultigrid () {}
00397 
00398   virtual bool solve (StartVectorMode start);
00399 
00400   virtual String description () const;
00401 
00402   CLASS_INFO
00403 };
00404 
00405 
00476 class FASMultigrid : public NestedFASMultigrid
00477 
00478 {
00479 public:
00480 
00481   FASMultigrid (const MLSolver_prm& pm);
00482  ~FASMultigrid () {}
00483 
00484   virtual bool solve (StartVectorMode start);
00485 
00486   virtual String description () const;
00487 
00488   CLASS_INFO
00489 };
00490 
00491 
00562 class NestedFASDampedMultigrid : public NestedFASMultigrid
00563 
00564 {
00565 protected:
00566   VecSimplest(real) sigma;
00567   virtual void init ();
00568   virtual bool cycle(SpaceId space, StartVectorMode start);
00569   virtual real getSigma(SpaceId space, LinEqVector& d);
00570 public:
00571 
00572   NestedFASDampedMultigrid (const MLSolver_prm& pm);
00573  ~NestedFASDampedMultigrid () {}
00574 
00575   virtual String description () const;
00576 
00577   CLASS_INFO
00578 };
00579 
00580 
00581 
00582 class FASDampedMultigrid : public FASMultigrid
00583 
00584 {
00585 protected:
00586   VecSimplest(real) sigma;
00587   virtual void init ();
00588   virtual bool cycle(SpaceId space, StartVectorMode start);
00589   virtual real getSigma(SpaceId space, LinEqVector& d);
00590 public:
00591 
00592   FASDampedMultigrid (const MLSolver_prm& pm);
00593  ~FASDampedMultigrid () {}
00594 
00595   virtual String description () const;
00596 
00597   CLASS_INFO
00598 };
00599 
00600 
00601 
00602 class NonlinearDampedMultigrid : public NonlinearMultigrid
00603 
00604 {
00605 protected:
00606   VecSimplest(real) sigma;
00607   virtual void init ();
00608   virtual bool cycle(SpaceId space, StartVectorMode start);
00609   virtual real getSigma(SpaceId space, LinEqVector& d);
00610 public:
00611 
00612   NonlinearDampedMultigrid (const MLSolver_prm& pm);
00613  ~NonlinearDampedMultigrid () {}
00614 
00615   virtual String description () const;
00616 
00617   CLASS_INFO
00618 };
00619 
00620 

Copyright © 2003 inuTech GmbH. All rights reserved.