MFEM v2.0
|
00001 // Copyright (c) 2010, Lawrence Livermore National Security, LLC. Produced at 00002 // the Lawrence Livermore National Laboratory. LLNL-CODE-443211. All Rights 00003 // reserved. See file COPYRIGHT for details. 00004 // 00005 // This file is part of the MFEM library. For more information and source code 00006 // availability see http://mfem.googlecode.com. 00007 // 00008 // MFEM is free software; you can redistribute it and/or modify it under the 00009 // terms of the GNU Lesser General Public License (as published by the Free 00010 // Software Foundation) version 2.1 dated February 1999. 00011 00012 #ifndef MFEM_SPARSEMATSMOOTHERS 00013 #define MFEM_SPARSEMATSMOOTHERS 00014 00016 class GSSmoother : public MatrixInverse 00017 { 00018 public: 00019 00021 GSSmoother(const SparseMatrix &a); 00022 00024 virtual void Mult(const Vector &x, Vector &y) const; 00025 00027 virtual ~GSSmoother(); 00028 }; 00029 00031 class DSmoother : public MatrixInverse 00032 { 00033 private: 00035 double scale; 00036 00037 public: 00038 00040 DSmoother(const SparseMatrix &a, double scale = 1.); 00041 00043 virtual void Mult(const Vector &x, Vector &y) const; 00044 00046 virtual ~DSmoother(); 00047 }; 00048 00049 #endif