AbstractLinAlgPack_MatrixOpNonsingThyra.hpp

Go to the documentation of this file.
00001 // @HEADER
00002 // ***********************************************************************
00003 // 
00004 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization
00005 //                  Copyright (2003) Sandia Corporation
00006 // 
00007 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00008 // license for use of this work by or on behalf of the U.S. Government.
00009 // 
00010 // This library is free software; you can redistribute it and/or modify
00011 // it under the terms of the GNU Lesser General Public License as
00012 // published by the Free Software Foundation; either version 2.1 of the
00013 // License, or (at your option) any later version.
00014 //  
00015 // This library is distributed in the hope that it will be useful, but
00016 // WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018 // Lesser General Public License for more details.
00019 //  
00020 // You should have received a copy of the GNU Lesser General Public
00021 // License along with this library; if not, write to the Free Software
00022 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00023 // USA
00024 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 
00025 // 
00026 // ***********************************************************************
00027 // @HEADER
00028 //
00029 
00030 #ifndef ALAP_MATRIX_OP_NONSING_Thyra_HPP
00031 #define ALAP_MATRIX_OP_NONSING_Thyra_HPP
00032 
00033 #include "AbstractLinAlgPack_MatrixOpNonsing.hpp"
00034 #include "AbstractLinAlgPack_MatrixOpThyra.hpp"
00035 #include "Thyra_LinearOpWithSolveBase.hpp"
00036 
00037 namespace AbstractLinAlgPack {
00038 
00041 class MatrixOpNonsingThyra
00042   :virtual public MatrixOpNonsing
00043   ,virtual public MatrixOpThyra
00044 {
00045 public:
00046 
00049 
00057   MatrixOpNonsingThyra();
00060   MatrixOpNonsingThyra(
00061     const Teuchos::RCP<const Thyra::LinearOpWithSolveBase<value_type> >  &thyra_linear_op_ns
00062     ,BLAS_Cpp::Transp                                                            thyra_linear_op_trans = BLAS_Cpp::no_trans
00063     );
00079   void initialize(
00080     const Teuchos::RCP<const Thyra::LinearOpWithSolveBase<value_type> >  &thyra_linear_op_ns
00081     ,BLAS_Cpp::Transp                                                            thyra_linear_op_trans = BLAS_Cpp::no_trans
00082     );
00092   Teuchos::RCP<const Thyra::LinearOpWithSolveBase<value_type> > set_uninitialized();
00095   Teuchos::RCP<const Thyra::LinearOpWithSolveBase<value_type> > thyra_linear_op_ns() const;
00096 
00098   
00101 
00103   mat_mut_ptr_t clone();
00104 
00106 
00109 
00111   void V_InvMtV(
00112     VectorMutable* v_lhs, BLAS_Cpp::Transp trans_rhs1
00113     ,const Vector& v_rhs2
00114     ) const;
00116   void M_StInvMtM(
00117     MatrixOp* m_lhs, value_type alpha
00118     ,BLAS_Cpp::Transp trans_rhs1
00119     ,const MatrixOp& mwo_rhs2, BLAS_Cpp::Transp trans_rhs2
00120     ) const;
00121 
00123 
00126 
00128   mat_mwons_ptr_t clone_mwons() const;
00129 
00131 
00132 };  // end class MatrixOpNonsingThyra
00133 
00134 } // end namespace AbstractLinAlgPack
00135 
00136 #endif  // ALAP_MATRIX_OP_NONSING_Thyra_HPP

Generated on Tue Oct 20 12:51:43 2009 for MOOCHO (Single Doxygen Collection) by doxygen 1.4.7