FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_Solver.hpp
1 /*--------------------------------------------------------------------*/
2 /* Copyright 2005 Sandia Corporation. */
3 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
4 /* non-exclusive license for use of this work by or on behalf */
5 /* of the U.S. Government. Export of this program may require */
6 /* a license from the United States Government. */
7 /*--------------------------------------------------------------------*/
8 
9 #ifndef _fei_Solver_hpp_
10 #define _fei_Solver_hpp_
11 
12 #include <fei_macros.hpp>
13 #include <fei_SharedPtr.hpp>
14 
15 namespace fei {
16  class ParameterSet;
17  class Matrix;
18  class LinearSystem;
19 
22  class Solver {
23  public:
25  class Factory {
26  public:
28  virtual ~Factory(){}
29 
31  virtual fei::SharedPtr<fei::Solver> createSolver(const char* name=0) = 0;
32  };
33 
35  virtual ~Solver(){}
36 
39  virtual int solve(fei::LinearSystem* linearSystem,
40  fei::Matrix* preconditioningMatrix,
41  const fei::ParameterSet& parameterSet,
42  int& iterationsTaken,
43  int& status);
44  };//class Solver
45 }//namespace fei
46 
47 #endif // _fei_Factory_hpp_
virtual fei::SharedPtr< fei::Solver > createSolver(const char *name=0)=0
virtual ~Solver()
Definition: fei_Solver.hpp:35
virtual int solve(fei::LinearSystem *linearSystem, fei::Matrix *preconditioningMatrix, const fei::ParameterSet &parameterSet, int &iterationsTaken, int &status)
Definition: fei_Solver.cpp:65