|
Stratimikos Package Browser (Single Doxygen Collection)
Version of the Day
|
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
1.7.6.1