Stratimikos Version of the Day
Loading...
Searching...
No Matches
Thyra_AmesosTypes.hpp
1/*
2// @HEADER
3// ***********************************************************************
4//
5// Stratimikos: Thyra-based strategies for linear solvers
6// Copyright (2006) Sandia Corporation
7//
8// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9// license for use of this work by or on behalf of the U.S. Government.
10//
11// Redistribution and use in source and binary forms, with or without
12// modification, are permitted provided that the following conditions are
13// met:
14//
15// 1. Redistributions of source code must retain the above copyright
16// notice, this list of conditions and the following disclaimer.
17//
18// 2. Redistributions in binary form must reproduce the above copyright
19// notice, this list of conditions and the following disclaimer in the
20// documentation and/or other materials provided with the distribution.
21//
22// 3. Neither the name of the Corporation nor the names of the
23// contributors may be used to endorse or promote products derived from
24// this software without specific prior written permission.
25//
26// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov)
39//
40// ***********************************************************************
41// @HEADER
42*/
43
44#ifndef THYRA_AMESOS_TYPES_HPP
45#define THYRA_AMESOS_TYPES_HPP
46
47#include "Amesos_ConfigDefs.h"
48#include "Teuchos_StringToIntMap.hpp"
49
50namespace Thyra {
51
52namespace Amesos {
53
57enum ESolverType {
58 LAPACK
59#ifdef HAVE_AMESOS_KLU
60 ,KLU
61#endif
62#ifdef HAVE_AMESOS_UMFPACK
63 ,UMFPACK
64#endif
65#ifdef HAVE_AMESOS_SUPERLU
66 ,SUPERLU
67#endif
68#ifdef HAVE_AMESOS_SUPERLUDIST
69 ,SUPERLUDIST
70#endif
71#ifdef HAVE_AMESOS_TAUCS
72 ,TAUCS
73#endif
74#ifdef HAVE_AMESOS_PARDISO
75 ,PARDISO
76#endif
77#ifdef HAVE_AMESOS_PASTIX
78 ,PASTIX
79#endif
80#ifdef HAVE_AMESOS_PARAKLETE
81 ,PARAKLETE
82#endif
83#ifdef HAVE_AMESOS_MUMPS
84 ,MUMPS
85#endif
86#ifdef HAVE_AMESOS_SCALAPACK
87 ,SCALAPACK
88#endif
89#ifdef HAVE_AMESOS_DSCPACK
90 ,DSCPACK
91#endif
92};
93
97const int numSolverTypes = 1 // LAPACK
98#ifdef HAVE_AMESOS_KLU
99+1
100#endif
101#ifdef HAVE_AMESOS_UMFPACK
102+1
103#endif
104#ifdef HAVE_AMESOS_SUPERLU
105+1
106#endif
107#ifdef HAVE_AMESOS_SUPERLUDIST
108+1
109#endif
110#ifdef HAVE_AMESOS_TAUCS
111+1
112#endif
113#ifdef HAVE_AMESOS_PARDISO
114+1
115#endif
116#ifdef HAVE_AMESOS_PASTIX
117+1
118#endif
119#ifdef HAVE_AMESOS_PARAKLETE
120+1
121#endif
122#ifdef HAVE_AMESOS_MUMPS
123+1
124#endif
125#ifdef HAVE_AMESOS_SCALAPACK
126+1
127#endif
128#ifdef HAVE_AMESOS_DSCPACK
129+1
130#endif
131;
132
136extern const ESolverType solverTypeValues[numSolverTypes];
137
141extern const char* solverTypeNames[numSolverTypes];
142
146extern const bool supportsUnsymmetric[numSolverTypes];
147
151inline const char* toString(const ESolverType solverType)
152{ return solverTypeNames[solverType]; }
153
157extern Teuchos::StringToIntMap solverTypeNameToEnumMap;
158
162enum ERefactorizationPolicy {
163 REPIVOT_ON_REFACTORIZATION
164 ,NO_PIVOT_ON_REFACTORIZATION
165};
166
170const int numRefactorizationPolices = 2;
171
175extern const ERefactorizationPolicy refactorizationPolicyValues[numRefactorizationPolices];
176
178extern const char* refactorizationPolicyNames[numRefactorizationPolices];
179
183inline const char* toString(const ERefactorizationPolicy refactorizationPolicy)
184{ return refactorizationPolicyNames[refactorizationPolicy]; }
185
189extern Teuchos::StringToIntMap refactorizationPolicyNameToEnumMap;
190
191} // namespace Amesos
192
193} // namespace Thyra
194
195#endif // THYRA_AMESOS_TYPES_HPP
std::string toString(const int &x)

Generated for Stratimikos by doxygen 1.10.0