fei_Solver.hpp

00001 /*--------------------------------------------------------------------*/
00002 /*    Copyright 2005 Sandia Corporation.                              */
00003 /*    Under the terms of Contract DE-AC04-94AL85000, there is a       */
00004 /*    non-exclusive license for use of this work by or on behalf      */
00005 /*    of the U.S. Government.  Export of this program may require     */
00006 /*    a license from the United States Government.                    */
00007 /*--------------------------------------------------------------------*/
00008 
00009 #ifndef _fei_Solver_hpp_
00010 #define _fei_Solver_hpp_
00011 
00012 #include <fei_macros.hpp>
00013 #include <fei_SharedPtr.hpp>
00014 
00015 namespace fei {
00016   class ParameterSet;
00017   class Matrix;
00018   class LinearSystem;
00019 
00022   class Solver {
00023   public:
00025     class Factory {
00026     public:
00028       virtual ~Factory(){}
00029 
00031       virtual fei::SharedPtr<fei::Solver> createSolver(const char* name=0) = 0;
00032     };
00033 
00035     virtual ~Solver(){}
00036 
00039     virtual int solve(fei::LinearSystem* linearSystem,
00040           fei::Matrix* preconditioningMatrix,
00041           const fei::ParameterSet& parameterSet,
00042           int& iterationsTaken,
00043           int& status);
00044   };//class Solver
00045 }//namespace fei
00046 
00047 #endif // _fei_Factory_hpp_

Generated on Tue Jul 13 09:27:46 2010 for FEI by  doxygen 1.4.7