CG  Version 25
ApproximateFactorization.h
Go to the documentation of this file.
1 #ifndef APPROXIMATE_FACTORIZATION_H
2 #define APPROXIMATE_FACTORIZATION_H
3 
4 #include <vector>
5 #include <string>
6 #include <list>
7 #include "DBase.hh"
8 
9 namespace CG_ApproximateFactorization {
10 
11  class Factor {
12  public:
13  Factor(const int &dir=0, const std::string nm = "Factor") : direction(dir), name(nm){}
14  virtual ~Factor() {}
15 
16  virtual void solveRightHandSide(const real &dt, const GridFunction &u, GridFunction &u_star)=0;
17  virtual void solveLeftHandSide(const real &dt, const GridFunction &u, GridFunction &u_star)=0;
18  virtual void addExplicitContribution(const real &dt, const GridFunction &u, realCompositeGridFunction &f)=0;
19  inline int getDirection() const { return direction; }
20  inline std::string getName() const { return name;}
21 
22  protected:
23  std::string name;
24  private:
25  int direction;
26  };
27 
28  typedef KK::sptr<Factor> Factor_P;
29  typedef std::vector<Factor_P> FactorList;
30 
31  extern const int parallelBC;
32 }
33 
34 #endif