LAMA
/home/brandes/workspace/LAMA/src/lama/solver/AMGSetup.hpp
Go to the documentation of this file.
00001 
00033 #ifndef LAMA_AMGSETUP_HPP_
00034 #define LAMA_AMGSETUP_HPP_
00035 
00036 // for dll_import
00037 #include <lama/config.hpp>
00038 
00039 // others
00040 #include <lama/matrix/Matrix.hpp>
00041 
00042 #include <lama/solver/Solver.hpp>
00043 
00044 namespace lama
00045 {
00046 
00053 class LAMA_DLL_IMPORTEXPORT AMGSetup
00054 {
00055 public:
00056     AMGSetup();
00057     virtual ~AMGSetup();
00058 
00059     virtual void initialize(const Matrix&  coefficients) =0;
00060 
00061     virtual Solver& getCoarseLevelSolver() =0;
00062 
00063     virtual unsigned int getNumLevels() =0;
00064 
00065     virtual Solver& getSmoother( const unsigned int level ) =0;
00066 
00067     virtual const Matrix& getGalerkin( const unsigned int level ) =0;
00068 
00069     virtual const Matrix& getRestriction( const unsigned int level ) =0;
00070 
00071     virtual const Matrix& getInterpolation( const unsigned int level ) =0;
00072 
00073     virtual Vector& getSolutionVector( const unsigned int level ) =0;
00074 
00075     virtual Vector& getRhsVector( const unsigned int level ) =0;
00076 
00077     virtual Vector& getTmpResVector( const unsigned int level ) =0;
00078 
00079     virtual std::string getCouplingPredicateInfo() const =0;
00080 
00081     virtual std::string getColoringInfo() const =0;
00082 
00083     virtual std::string getInterpolationInfo() const =0;
00084 
00085     virtual std::string getSmootherInfo() const =0;
00086 
00087     virtual std::string getCoarseLevelSolverInfo() const =0;
00088 
00089     virtual void setMaxLevels( const unsigned int level ) =0;
00090 
00091     virtual void setMinVarsCoarseLevel( const unsigned int vars ) =0;
00092 
00093     virtual void setHostOnlyLevel( IndexType hostOnlyLevel );
00094 
00095     virtual void setReplicatedLevel( IndexType replicatedLevel );
00096 
00097     virtual void setCoarseLevelSolver( SolverPtr solver ) =0;
00098 
00102     virtual void setSmoother( SolverPtr solver ) =0;
00103 
00104 protected:
00105 
00106     IndexType mHostOnlyLevel;
00107 
00108     IndexType mReplicatedLevel;
00109 };
00110 
00111 }
00112 
00113 #endif /* LAMA_AMGSETUP_HPP_ */