Belos Package Browser (Single Doxygen Collection) Development
BelosTypes.hpp
Go to the documentation of this file.
00001 //@HEADER
00002 // ************************************************************************
00003 //
00004 //                 Belos: Block Linear Solvers Package
00005 //                  Copyright 2004 Sandia Corporation
00006 //
00007 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
00008 // the U.S. Government retains certain rights in this software.
00009 //
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are
00012 // met:
00013 //
00014 // 1. Redistributions of source code must retain the above copyright
00015 // notice, this list of conditions and the following disclaimer.
00016 //
00017 // 2. Redistributions in binary form must reproduce the above copyright
00018 // notice, this list of conditions and the following disclaimer in the
00019 // documentation and/or other materials provided with the distribution.
00020 //
00021 // 3. Neither the name of the Corporation nor the names of the
00022 // contributors may be used to endorse or promote products derived from
00023 // this software without specific prior written permission.
00024 //
00025 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00026 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00027 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00028 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00029 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00030 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00031 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00032 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00033 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00034 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00035 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00036 //
00037 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
00038 //
00039 // ************************************************************************
00040 //@HEADER
00041 
00042 #ifndef BELOS_TYPES_HPP
00043 #define BELOS_TYPES_HPP
00044 
00050 #include "BelosConfigDefs.hpp"
00051 #include "Teuchos_Assert.hpp"
00052 
00053 namespace Belos {
00054  
00056 
00057 
00060   class BelosError : public std::logic_error {
00061   public: 
00062     BelosError (const std::string& what_arg) : std::logic_error(what_arg) {}
00063   };
00064 
00066 
00067  
00081   enum ETrans     { NOTRANS = 0,  
00082       TRANS = 1,    
00083       CONJTRANS = 2 
00084   };
00085   
00097   enum NormType {   OneNorm,       
00098         TwoNorm,       
00099         InfNorm        
00100   };
00101   
00119   enum ScaleType {NormOfRHS,     
00120                   NormOfInitRes, 
00121                   NormOfPrecInitRes, 
00122                   None,          
00123                   UserProvided   
00124   };
00125  
00136   enum OutputType {General,     
00137                    Brief        
00138   };
00139 
00149   enum ReturnType { 
00150     Converged,  
00151     Unconverged 
00152   };
00153 
00155   std::string 
00156   convertReturnTypeToString (const ReturnType result);
00157   
00183   enum StatusType {   Passed = 0x1,      
00184                         Failed = 0x2,      
00185       Undefined = 0x4    
00186   };
00187 
00200   enum ResetType  {     Problem = 0x1,           
00201                         RecycleSubspace = 0x2    
00202   };
00203 
00209   const char* TEUCHOS_DEPRECATED
00210   toString (const StatusType status);
00211 
00213   std::string
00214   convertStatusTypeToString (const StatusType status);
00215 
00217   StatusType
00218   convertStringToStatusType (const std::string& status);
00219 
00221   ScaleType 
00222   convertStringToScaleType (const std::string& scaleType);
00223 
00225   std::string
00226   convertScaleTypeToString (const ScaleType scaleType);
00227   
00236   enum ConjType {
00237     NO_CONJ,      
00238     CONJ          
00239   };
00240   
00252   enum MsgType {
00253     Errors= 0,                  
00254     Warnings = 0x1,             
00255     IterationDetails = 0x2,     
00256     OrthoDetails = 0x4,         
00257     FinalSummary = 0x8,         
00258     TimingDetails = 0x10,       
00259     StatusTestDetails = 0x20,   
00260     Debug = 0x40                
00261   };
00262 
00273   std::string 
00274   convertMsgTypeToString (const MsgType msgType);
00275 
00276 } // end Belos namespace
00277 
00278 #endif /* BELOS_TYPES_HPP */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines