Amesos Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Amesos_BaseSolver.h
Go to the documentation of this file.
1 /*
2 // @HEADER
3 // ***********************************************************************
4 //
5 // Amesos: Direct Sparse Solver Package
6 // Copyright (2004) Sandia Corporation
7 //
8 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9 // license for use of this work by or on behalf of the U.S. Government.
10 //
11 // This library is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Lesser General Public License as
13 // published by the Free Software Foundation; either version 2.1 of the
14 // License, or (at your option) any later version.
15 //
16 // This library is distributed in the hope that it will be useful, but
17 // WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 // Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public
22 // License along with this library; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24 // USA
25 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
26 //
27 // ***********************************************************************
28 // @HEADER
29 */
30 
41 #ifndef _AMESOS_BASESOLVER_H_
42 #define _AMESOS_BASESOLVER_H_
43 
44 #if defined(Amesos_SHOW_DEPRECATED_WARNINGS)
45 #ifdef __GNUC__
46 #warning "The Amesos package is deprecated"
47 #endif
48 #endif
49 
52 
53 //#include "Amesos_ConfigDefs.h"
54 #include "Teuchos_RCP.hpp"
57 #include "Epetra_LinearProblem.h"
59 class Epetra_MultiVector;
60 class Epetra_Map;
61 class Epetra_Comm;
62 
64 
231 {
232 
233 #if 0
234  private:
236 #endif
237 
238  public:
239 
242 
244  virtual ~Amesos_BaseSolver() {};
246 
248 
249 
251 
269  virtual int SymbolicFactorization() = 0;
270 
272 
306  virtual int NumericFactorization() = 0;
307 
309 
331  virtual int Solve() = 0;
332 
334 
335 
337 
355  virtual int SetUseTranspose(bool UseTranspose) = 0;
356 
358  virtual bool UseTranspose() const = 0;
359 
361 
377  virtual int SetParameters( Teuchos::ParameterList &ParameterList ) = 0 ;
378 
385  virtual const Epetra_LinearProblem* GetProblem() const = 0;
386 
388 
394  virtual bool MatrixShapeOK() const = 0;
395 
397  virtual const Epetra_Comm & Comm() const = 0;
398 
400  virtual int NumSymbolicFact() const = 0;
401 
403  virtual int NumNumericFact() const = 0;
404 
406  virtual int NumSolve() const = 0;
407 
409  virtual void PrintStatus() const = 0;
410 
412  virtual void PrintTiming() const = 0;
413 
416  {
417  Teuchos::RCP<Teuchos::ParameterList> temp = paramList;
418  // paramList_ = paramlist ;
419  // this->SetParameters( *paramList_ );
420  }
421 
424  {
426  return PL ;
427  }
428 
431  {
433  // this->SetParameters( *paramList_ );
434  return PL ;
435  }
436 
438  virtual void GetTiming( Teuchos::ParameterList &TimingParameterList ) const
439  {
441  TimingParameterList = temp.setName("NULL");
442  }
443 
445 
446 
447 
448 };
449 
450 #endif /* _AMESOS_BASESOLVER_H_ */
virtual const Epetra_Comm & Comm() const =0
Returns a pointer to the Epetra_Comm communicator associated with this operator.
virtual Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
This is an empty stub.
virtual int Solve()=0
Solves A X = B (or AT x = B)
virtual int NumSolve() const =0
Returns the number of solves performed by this object.
virtual int NumNumericFact() const =0
Returns the number of numeric factorizations performed by this object.
virtual int NumSymbolicFact() const =0
Returns the number of symbolic factorizations performed by this object.
virtual int NumericFactorization()=0
Performs NumericFactorization on the matrix A.
virtual int SymbolicFactorization()=0
Performs SymbolicFactorization on the matrix A.
virtual int SetParameters(Teuchos::ParameterList &ParameterList)=0
Updates internal variables.
virtual bool UseTranspose() const =0
Returns the current UseTranspose setting.
virtual void PrintTiming() const =0
Prints timing information about the current solver.
virtual int SetUseTranspose(bool UseTranspose)=0
If set true, X will be set to the solution of AT X = B (not A X = B)
virtual void GetTiming(Teuchos::ParameterList &TimingParameterList) const
Extracts timing information from the current solver and places it in the parameter list...
virtual void PrintStatus() const =0
Prints status information about the current solver.
const int NumericallySingularMatrixError
const int StructurallySingularMatrixError
virtual const Epetra_LinearProblem * GetProblem() const =0
Returns the Epetra_LinearProblem.
ParameterList & setName(const std::string &name)
virtual bool MatrixShapeOK() const =0
Returns true if the solver can handle this matrix shape.
Amesos_BaseSolver: A pure virtual class for direct solution of real-valued double-precision operators...
virtual ~Amesos_BaseSolver()
Destructor.
virtual Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
This is an empty stub.
virtual RCP< const ParameterList > getParameterList() const
virtual void setParameterList(Teuchos::RCP< Teuchos::ParameterList > const &paramList)
Redefined from Teuchos::ParameterListAcceptor (Does Not Work)