Sierra Toolkit Version of the Day
LinearSystem.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_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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends