|
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_LinearSystem_hpp 00010 #define stk_linsys_LinearSystem_hpp 00011 00012 #include <stk_linsys/FeiBaseIncludes.hpp> 00013 #include <stk_linsys/DofMapper.hpp> 00014 #include <stk_linsys/LinearSystemInterface.hpp> 00015 00016 #include <Teuchos_ParameterList.hpp> 00017 00018 namespace stk { 00019 namespace linsys { 00020 00024 class LinearSystem : public LinearSystemInterface { 00025 public: 00027 LinearSystem(MPI_Comm comm, fei::SharedPtr<fei::Factory> factory); 00028 00030 virtual ~LinearSystem(); 00031 00037 void synchronize_mappings_and_structure(); 00038 00043 void create_fei_LinearSystem(); 00044 00052 void finalize_assembly(); 00053 00055 const DofMapper& get_DofMapper() const; 00056 00058 DofMapper& get_DofMapper(); 00059 00061 const fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph() const; 00062 00064 fei::SharedPtr<fei::MatrixGraph> get_fei_MatrixGraph(); 00065 00067 const fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem() const; 00068 00070 fei::SharedPtr<fei::LinearSystem> get_fei_LinearSystem(); 00071 00088 int solve(int & status, const Teuchos::ParameterList & params); 00089 00090 private: 00091 00092 fei::SharedPtr<fei::Factory> m_fei_factory; 00093 DofMapper m_dof_mapper; 00094 fei::SharedPtr<fei::MatrixGraph> m_fei_mgraph; 00095 00096 fei::SharedPtr<fei::LinearSystem> m_fei_linearsystem; 00097 };//class LinearSystem 00098 00099 }//namespace linsys 00100 }//namespace stk 00101 00102 #endif 00103