Stratimikos Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
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"
48#include "Teuchos_StringToIntMap.hpp"
49
50namespace Thyra {
51
52namespace Amesos2 {
53
58 KLU2
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
88const 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
123extern const char* solverTypeNames[numSolverTypes];
124
128extern const bool supportsUnsymmetric[numSolverTypes];
129
133inline const char* toString(const ESolverType solverType)
134{ return solverTypeNames[solverType]; }
135
139extern Teuchos::StringToIntMap solverTypeNameToEnumMap;
140
148
153
158
161
165inline const char* toString(const ERefactorizationPolicy refactorizationPolicy)
166{ return refactorizationPolicyNames[refactorizationPolicy]; }
167
171extern Teuchos::StringToIntMap refactorizationPolicyNameToEnumMap;
172
173}// namespace Amesos2
174
175} // namespace Thyra
176
177#endif // THYRA_AMESOS2_TYPES_HPP
const int numRefactorizationPolices
ERefactorizationPolicy
The policy used on refactoring a matrix.
@ NO_PIVOT_ON_REFACTORIZATION
No piviting, or only minor repivoting, will be used on refactorizations!
@ REPIVOT_ON_REFACTORIZATION
Completely new pivoting will be used on refactorizations!
const ERefactorizationPolicy refactorizationPolicyValues[numRefactorizationPolices]
const char * solverTypeNames[numSolverTypes]
Teuchos::StringToIntMap refactorizationPolicyNameToEnumMap
const bool supportsUnsymmetric[numSolverTypes]
const char * toString(const ESolverType solverType)
const ESolverType solverTypeValues[numSolverTypes]
const char * refactorizationPolicyNames[numRefactorizationPolices]
Teuchos::StringToIntMap solverTypeNameToEnumMap