10#ifndef THYRA_AMESOS_TYPES_HPP
11#define THYRA_AMESOS_TYPES_HPP
13#include "Amesos_ConfigDefs.h"
14#include "Teuchos_StringToIntMap.hpp"
28#ifdef HAVE_AMESOS_UMFPACK
31#ifdef HAVE_AMESOS_SUPERLU
34#ifdef HAVE_AMESOS_SUPERLUDIST
37#ifdef HAVE_AMESOS_TAUCS
40#ifdef HAVE_AMESOS_PARDISO
43#ifdef HAVE_AMESOS_PASTIX
46#ifdef HAVE_AMESOS_PARAKLETE
49#ifdef HAVE_AMESOS_MUMPS
52#ifdef HAVE_AMESOS_SCALAPACK
55#ifdef HAVE_AMESOS_DSCPACK
63const int numSolverTypes = 1
67#ifdef HAVE_AMESOS_UMFPACK
70#ifdef HAVE_AMESOS_SUPERLU
73#ifdef HAVE_AMESOS_SUPERLUDIST
76#ifdef HAVE_AMESOS_TAUCS
79#ifdef HAVE_AMESOS_PARDISO
82#ifdef HAVE_AMESOS_PASTIX
85#ifdef HAVE_AMESOS_PARAKLETE
88#ifdef HAVE_AMESOS_MUMPS
91#ifdef HAVE_AMESOS_SCALAPACK
94#ifdef HAVE_AMESOS_DSCPACK
102extern const ESolverType solverTypeValues[numSolverTypes];
107extern const char* solverTypeNames[numSolverTypes];
112extern const bool supportsUnsymmetric[numSolverTypes];
117inline const char* toString(
const ESolverType solverType)
118{
return solverTypeNames[solverType]; }
123extern Teuchos::StringToIntMap solverTypeNameToEnumMap;
128enum ERefactorizationPolicy {
129 REPIVOT_ON_REFACTORIZATION
130 ,NO_PIVOT_ON_REFACTORIZATION
136const int numRefactorizationPolices = 2;
141extern const ERefactorizationPolicy refactorizationPolicyValues[numRefactorizationPolices];
144extern const char* refactorizationPolicyNames[numRefactorizationPolices];
149inline const char* toString(
const ERefactorizationPolicy refactorizationPolicy)
150{
return refactorizationPolicyNames[refactorizationPolicy]; }
155extern Teuchos::StringToIntMap refactorizationPolicyNameToEnumMap;