Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

operator/umfpackFabric.hh
Go to the documentation of this file.
00001 // fabric class for Umfpack
00002 
00003 #ifndef umfpackFabric_hh
00004 #define umfpackFabric_hh
00005 
00006 #include "umfpack.hh"
00007 #include "solverFabric.hh"
00008 
00009 namespace concepts {
00010 
00011   // ********************************************************* UmfpackFabric **
00012 
00016   class UmfpackFabric : public SolverFabric<Real> {
00017   public:
00018     UmfpackFabric(bool symmetric = false) : symmetric_(symmetric) {}
00019     virtual Operator<Real>* operator()(Operator<Real>& matrix) {
00020       return new Umfpack(matrix, symmetric_);
00021     }
00022     virtual Operator<Real>* operator()(SparseMatrix<Real>& matrix) {
00023       return new Umfpack(matrix, symmetric_);
00024     }
00025   protected:
00026     virtual std::ostream& info(std::ostream& os) const {
00027       return os << "UmfpackFabric()";
00028     }
00029   private:
00030     bool symmetric_;
00031   };
00032 
00033 } // concepts
00034 
00035 #endif // umfpackFabric_hh

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)