Stratimikos Package Browser (Single Doxygen Collection) Version of the Day
Thyra_AmesosTypes.hpp
Go to the documentation of this file.
00001 /*
00002 // @HEADER
00003 // ***********************************************************************
00004 // 
00005 //                Amesos: Direct Sparse Solver Package
00006 //                 Copyright (2004) Sandia Corporation
00007 // 
00008 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00009 // license for use of this work by or on behalf of the U.S. Government.
00010 // 
00011 // This library is free software; you can redistribute it and/or modify
00012 // it under the terms of the GNU Lesser General Public License as
00013 // published by the Free Software Foundation; either version 2.1 of the
00014 // License, or (at your option) any later version.
00015 //  
00016 // This library is distributed in the hope that it will be useful, but
00017 // WITHOUT ANY WARRANTY; without even the implied warranty of
00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019 // Lesser General Public License for more details.
00020 //  
00021 // You should have received a copy of the GNU Lesser General Public
00022 // License along with this library; if not, write to the Free Software
00023 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00024 // USA
00025 // Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00026 // 
00027 // ***********************************************************************
00028 // @HEADER
00029 */
00030 
00031 #ifndef THYRA_AMESOS_TYPES_HPP
00032 #define THYRA_AMESOS_TYPES_HPP
00033 
00034 #include "Amesos_ConfigDefs.h"
00035 #include "Teuchos_StringToIntMap.hpp"
00036 
00037 namespace Thyra {
00038 
00039 namespace Amesos {
00040 
00044 enum ESolverType {
00045   LAPACK
00046 #ifdef HAVE_AMESOS_KLU
00047   ,KLU
00048 #endif
00049 #ifdef HAVE_AMESOS_UMFPACK
00050   ,UMFPACK
00051 #endif
00052 #ifdef HAVE_AMESOS_SUPERLU
00053   ,SUPERLU
00054 #endif
00055 #ifdef HAVE_AMESOS_SUPERLUDIST
00056   ,SUPERLUDIST
00057 #endif
00058 #ifdef HAVE_AMESOS_TAUCS
00059   ,TAUCS
00060 #endif
00061 #ifdef HAVE_AMESOS_PARDISO
00062   ,PARDISO
00063 #endif
00064 #ifdef HAVE_AMESOS_PASTIX
00065   ,PASTIX
00066 #endif
00067 #ifdef HAVE_AMESOS_PARAKLETE
00068   ,PARAKLETE
00069 #endif
00070 #ifdef HAVE_AMESOS_MUMPS
00071   ,MUMPS
00072 #endif
00073 #ifdef HAVE_AMESOS_SCALAPACK
00074   ,SCALAPACK
00075 #endif
00076 #ifdef HAVE_AMESOS_DSCPACK
00077   ,DSCPACK
00078 #endif
00079 }; 
00080 
00084 const int numSolverTypes = 1 // LAPACK 
00085 #ifdef HAVE_AMESOS_KLU
00086 +1
00087 #endif
00088 #ifdef HAVE_AMESOS_UMFPACK
00089 +1
00090 #endif
00091 #ifdef HAVE_AMESOS_SUPERLU
00092 +1
00093 #endif
00094 #ifdef HAVE_AMESOS_SUPERLUDIST
00095 +1
00096 #endif
00097 #ifdef HAVE_AMESOS_TAUCS
00098 +1
00099 #endif
00100 #ifdef HAVE_AMESOS_PARDISO
00101 +1
00102 #endif
00103 #ifdef HAVE_AMESOS_PASTIX
00104 +1
00105 #endif
00106 #ifdef HAVE_AMESOS_PARAKLETE
00107 +1
00108 #endif
00109 #ifdef HAVE_AMESOS_MUMPS
00110 +1
00111 #endif
00112 #ifdef HAVE_AMESOS_SCALAPACK
00113 +1
00114 #endif
00115 #ifdef HAVE_AMESOS_DSCPACK
00116 +1
00117 #endif
00118 ;
00119 
00123 extern const ESolverType solverTypeValues[numSolverTypes];
00124 
00128 extern const char* solverTypeNames[numSolverTypes];
00129 
00133 extern const bool supportsUnsymmetric[numSolverTypes];
00134 
00138 inline const char* toString(const ESolverType solverType)
00139 { return solverTypeNames[solverType]; }
00140 
00144 extern Teuchos::StringToIntMap solverTypeNameToEnumMap;
00145 
00149 enum ERefactorizationPolicy {
00150   REPIVOT_ON_REFACTORIZATION     
00151   ,NO_PIVOT_ON_REFACTORIZATION   
00152 };
00153 
00157 const int numRefactorizationPolices = 2;
00158 
00162 extern const ERefactorizationPolicy refactorizationPolicyValues[numRefactorizationPolices];
00163 
00165 extern const char* refactorizationPolicyNames[numRefactorizationPolices];
00166 
00170 inline const char* toString(const ERefactorizationPolicy refactorizationPolicy)
00171 { return refactorizationPolicyNames[refactorizationPolicy]; }
00172 
00176 extern Teuchos::StringToIntMap refactorizationPolicyNameToEnumMap;
00177 
00178 } // namespace Amesos
00179 
00180 } // namespace Thyra
00181 
00182 #endif // THYRA_AMESOS_TYPES_HPP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines