Stratimikos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Thyra_Amesos2Types.hpp
Go to the documentation of this file.
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_AMESOS2_TYPES_HPP
45 #define THYRA_AMESOS2_TYPES_HPP
46 
47 #include "Amesos2_config.h"
49 
50 namespace Thyra {
51 
52 namespace Amesos2 {
53 
59 #ifdef HAVE_AMESOS2_LAPACK
60  ,LAPACK
61 #endif
62 #ifdef HAVE_AMESOS2_SUPERLU
63  ,SUPERLU
64 #endif
65 #ifdef HAVE_AMESOS2_SUPERLUMT
66  ,SUPERLUMT
67 #endif
68 #ifdef HAVE_AMESOS2_SUPERLUDIST
69  ,SUPERLUDIST
70 #endif
71 #ifdef HAVE_AMESOS2_PARDISO_MKL
72  ,PARDISO_MKL
73 #endif
74 #ifdef HAVE_AMESOS2_CHOLMOD
75  ,CHOLMOD
76 #endif
77 #ifdef HAVE_AMESOS2_BASKER
78  ,BASKER
79 #endif
80 #ifdef HAVE_AMESOS2_MUMPS
81  ,MUMPS
82 #endif
83 };
84 
88 const int numSolverTypes = 1
89 #ifdef HAVE_AMESOS2_LAPACK
90 +1
91 #endif
92 #ifdef HAVE_AMESOS2_SUPERLU
93 +1
94 #endif
95 #ifdef HAVE_AMESOS2_SUPERLUMT
96 +1
97 #endif
98 #ifdef HAVE_AMESOS2_SUPERLUDIST
99 +1
100 #endif
101 #ifdef HAVE_AMESOS2_PARDISO_MKL
102 +1
103 #endif
104 #ifdef HAVE_AMESOS2_CHOLMOD
105 +1
106 #endif
107 #ifdef HAVE_AMESOS2_BASKER
108 +1
109 #endif
110 #ifdef HAVE_AMESOS2_MUMPS
111 +1
112 #endif
113 ;
114 
119 
123 extern const char* solverTypeNames[numSolverTypes];
124 
128 extern const bool supportsUnsymmetric[numSolverTypes];
129 
133 inline const char* toString(const ESolverType solverType)
134 { return solverTypeNames[solverType]; }
135 
140 
147 };
148 
153 
158 
161 
165 inline const char* toString(const ERefactorizationPolicy refactorizationPolicy)
166 { return refactorizationPolicyNames[refactorizationPolicy]; }
167 
172 
173 }// namespace Amesos2
174 
175 } // namespace Thyra
176 
177 #endif // THYRA_AMESOS2_TYPES_HPP
const int numRefactorizationPolices
Completely new pivoting will be used on refactorizations!
ERefactorizationPolicy
The policy used on refactoring a matrix.
No piviting, or only minor repivoting, will be used on refactorizations!
const char * solverTypeNames[numSolverTypes]
const char * refactorizationPolicyNames[numRefactorizationPolices]
const char * toString(const ESolverType solverType)
Teuchos::StringToIntMap refactorizationPolicyNameToEnumMap
Teuchos::StringToIntMap solverTypeNameToEnumMap
const ESolverType solverTypeValues[numSolverTypes]
const bool supportsUnsymmetric[numSolverTypes]
const ERefactorizationPolicy refactorizationPolicyValues[numRefactorizationPolices]