|
Sierra Toolkit Version of the Day
|
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 synchronize_mappings_and_structure() = 0; 00025 virtual void create_fei_LinearSystem() = 0; 00026 virtual void finalize_assembly() = 0; 00027 00029 virtual const DofMapper& get_DofMapper() const = 0; 00030 00032 virtual DofMapper& get_DofMapper() = 0; 00033 00035 virtual const fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph() const = 0; 00036 00038 virtual fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph() = 0; 00039 00041 virtual const fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem() const = 0; 00042 00044 virtual fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem() = 0; 00045 00062 virtual int solve(int & status, const Teuchos::ParameterList & params) = 0; 00063 00064 };//class LinearSystemInterface 00065 00066 }//namespace linsys 00067 }//namespace stk 00068 00069 #endif 00070