00001
00002
00003
00004
00005
00006
00007
00008 #ifndef JACOBIMETHOD_HPP_
00009 #define JACOBIMETHOD_HPP_
00010
00011 #include "Smoother.hpp"
00012 #include <exception>
00013 #include <stdexcept>
00014
00015 class JacobiMethod : public Smoother {
00016 public:
00017 JacobiMethod();
00018 virtual ~JacobiMethod();
00019 virtual void Smooth(Vec x, int global, int local);
00020 virtual void PreSmoothing(Mat matrix, Vec b);
00021 virtual void SetRhs(Vec rhs);
00022 virtual Vec GetResidual(Vec x);
00023
00024 private:
00025 Mat scaledMatrix;
00026 Vec diagonal;
00027 Vec bdiagonal;
00028 Vec temporary_result;
00029 };
00030
00031 #endif