Sierra Toolkit  Version of the Day
LinearSystemInterface.hpp
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2010 Sandia Corporation. */
3 /* Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive */
4 /* license for use of this work by or on behalf of the U.S. Government. */
5 /* Export of this program may require a license from the */
6 /* United States Government. */
7 /*------------------------------------------------------------------------*/
8 
9 #ifndef stk_linsys_LinearSystemInterface_hpp
10 #define stk_linsys_LinearSystemInterface_hpp
11 
12 #include <stk_linsys/FeiBaseIncludes.hpp>
13 #include <stk_linsys/DofMapper.hpp>
14 
15 #include <Teuchos_ParameterList.hpp>
16 
17 namespace stk_classic {
18 namespace linsys {
19 
20 class LinearSystemInterface {
21  public:
22  virtual ~LinearSystemInterface() {}
23 
24  virtual void set_parameters(Teuchos::ParameterList& paramlist) = 0;
25 
26  virtual void synchronize_mappings_and_structure() = 0;
27  virtual void create_fei_LinearSystem() = 0;
28  virtual void finalize_assembly() = 0;
29 
31  virtual const DofMapper& get_DofMapper() const = 0;
32 
34  virtual DofMapper& get_DofMapper() = 0;
35 
37  virtual void reset_to_zero() = 0;
38 
40  virtual const fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph() const = 0;
41 
43  virtual fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph() = 0;
44 
46  virtual const fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem() const = 0;
47 
49  virtual fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem() = 0;
50 
54  virtual void write_files(const std::string& base_name) const = 0;
55 
72  virtual int solve(int & status, const Teuchos::ParameterList & params) = 0;
73 
74 };//class LinearSystemInterface
75 
76 }//namespace linsys
77 }//namespace stk_classic
78 
79 #endif
80 
Sierra Toolkit.