Thyra_AmesosTypes.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
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
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 }
00179
00180 }
00181
00182 #endif // THYRA_AMESOS_TYPES_HPP