|
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_classic { 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_classic 00078 00079 #endif 00080