Sierra Toolkit Version of the Day
LinearSystemInterface.hpp
00001 /*------------------------------------------------------------------------*/
00002 /*                 Copyright 2010 Sandia Corporation.                     */
00003 /*  Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive   */
00004 /*  license for use of this work by or on behalf of the U.S. Government.  */
00005 /*  Export of this program may require a license from the                 */
00006 /*  United States Government.                                             */
00007 /*------------------------------------------------------------------------*/
00008 
00009 #ifndef stk_linsys_LinearSystemInterface_hpp
00010 #define stk_linsys_LinearSystemInterface_hpp
00011 
00012 #include <stk_linsys/FeiBaseIncludes.hpp>
00013 #include <stk_linsys/DofMapper.hpp>
00014 
00015 #include <Teuchos_ParameterList.hpp>
00016 
00017 namespace stk {
00018 namespace linsys {
00019 
00020 class LinearSystemInterface {
00021  public:
00022   virtual ~LinearSystemInterface() {}
00023 
00024   virtual void set_parameters(Teuchos::ParameterList& paramlist) = 0;
00025 
00026   virtual void synchronize_mappings_and_structure() = 0;
00027   virtual void create_fei_LinearSystem() = 0;
00028   virtual void finalize_assembly() = 0;
00029 
00031   virtual const DofMapper& get_DofMapper() const = 0;
00032 
00034   virtual DofMapper& get_DofMapper() = 0;
00035 
00037   virtual void reset_to_zero() = 0;
00038 
00040   virtual const fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph() const = 0;
00041 
00043   virtual fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph() = 0;
00044 
00046   virtual const fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem() const = 0;
00047 
00049   virtual fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem() = 0;
00050 
00054   virtual void write_files(const std::string& base_name) const = 0;
00055 
00072   virtual int solve(int & status, const Teuchos::ParameterList & params) = 0;
00073 
00074 };//class LinearSystemInterface
00075 
00076 }//namespace linsys
00077 }//namespace stk
00078 
00079 #endif
00080 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends