|
Stratimikos Package Browser (Single Doxygen Collection)
Version of the Day
|
00001 // @HEADER 00002 // *********************************************************************** 00003 // 00004 // Belos: Block Eigensolvers Package 00005 // Copyright (2010) 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 Michael A. Heroux (maherou@sandia.gov) 00025 // 00026 // *********************************************************************** 00027 // @HEADER 00028 00029 #ifndef __Thyra_TsqrAdaptor_hpp 00030 #define __Thyra_TsqrAdaptor_hpp 00031 00032 #include <BelosConfigDefs.hpp> 00033 00034 #include <Thyra_DetachedMultiVectorView.hpp> 00035 #include <Thyra_MultiVectorBase.hpp> 00036 #include <Thyra_MultiVectorStdOps.hpp> 00037 #include <Teuchos_ParameterListAcceptorDefaultBase.hpp> 00038 #include <stdexcept> 00039 00040 00041 namespace Thyra { 00042 00064 template<class Scalar> 00065 class TsqrAdaptor : public Teuchos::ParameterListAcceptorDefaultBase { 00066 public: 00067 typedef Thyra::MultiVectorBase<Scalar> MV; 00068 typedef Scalar scalar_type; 00069 typedef int ordinal_type; // MultiVectorBase really does use int for this 00070 typedef int node_type; // FIXME (mfh 26 Oct 2010) stub for now 00071 typedef Teuchos::SerialDenseMatrix<ordinal_type, scalar_type> dense_matrix_type; 00072 typedef typename Teuchos::ScalarTraits<scalar_type>::magnitudeType magnitude_type; 00073 00074 public: 00081 TsqrAdaptor (const Teuchos::RCP<Teuchos::ParameterList>& plist) 00082 { 00083 throw std::logic_error ("Thyra adaptor for TSQR not implemented"); 00084 } 00085 00087 TsqrAdaptor () 00088 { 00089 throw std::logic_error ("Thyra adaptor for TSQR not implemented"); 00090 } 00091 00092 Teuchos::RCP<const Teuchos::ParameterList> 00093 getValidParameters () const 00094 { 00095 throw std::logic_error ("Thyra adaptor for TSQR not implemented"); 00096 } 00097 00098 void 00099 setParameterList (const Teuchos::RCP<Teuchos::ParameterList>& plist) 00100 { 00101 throw std::logic_error ("Thyra adaptor for TSQR not implemented"); 00102 } 00103 00125 void 00126 factorExplicit (MV& A, 00127 MV& Q, 00128 dense_matrix_type& R, 00129 const bool forceNonnegativeDiagonal=false) 00130 { 00131 throw std::logic_error ("Thyra adaptor for TSQR not implemented"); 00132 } 00133 00165 int 00166 revealRank (MV& Q, 00167 dense_matrix_type& R, 00168 const magnitude_type& tol) 00169 { 00170 return 0; // FIXME (mfh 26 Oct 2010) Stub implementation 00171 } 00172 }; 00173 00174 } // namespace Tpetra 00175 00176 #endif // __Thyra_TsqrAdaptor_hpp 00177
1.7.6.1