Stratimikos Version of the Day
Loading...
Searching...
No Matches
Thyra_AmesosTypes.cpp
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#include "Thyra_AmesosTypes.hpp"
45
46namespace Thyra {
47
48const Amesos::ESolverType Amesos::solverTypeValues[Amesos::numSolverTypes] =
49{
50 Amesos::LAPACK
51#ifdef HAVE_AMESOS_KLU
52 ,Amesos::KLU
53#endif
54#ifdef HAVE_AMESOS_UMFPACK
55 ,Amesos::UMFPACK
56#endif
57#ifdef HAVE_AMESOS_SUPERLU
58 ,Amesos::SUPERLU
59#endif
60#ifdef HAVE_AMESOS_SUPERLUDIST
61 ,Amesos::SUPERLUDIST
62#endif
63#ifdef HAVE_AMESOS_TAUCS
64 ,Amesos::TAUCS
65#endif
66#ifdef HAVE_AMESOS_PARDISO
67 ,Amesos::PARDISO
68#endif
69#ifdef HAVE_AMESOS_PASTIX
70 ,Amesos::PASTIX
71#endif
72#ifdef HAVE_AMESOS_PARAKLETE
73 ,Amesos::PARAKLETE
74#endif
75#ifdef HAVE_AMESOS_MUMPS
76 ,Amesos::MUMPS
77#endif
78#ifdef HAVE_AMESOS_SCALAPACK
79 ,Amesos::SCALAPACK
80#endif
81#ifdef HAVE_AMESOS_DSCPACK
82 ,Amesos::DSCPACK
83#endif
84};
85
86const char* Amesos::solverTypeNames[Amesos::numSolverTypes] =
87{
88 "Lapack"
89#ifdef HAVE_AMESOS_KLU
90 ,"Klu"
91#endif
92#ifdef HAVE_AMESOS_UMFPACK
93 ,"Umfpack"
94#endif
95#ifdef HAVE_AMESOS_SUPERLU
96 ,"Superlu"
97#endif
98#ifdef HAVE_AMESOS_SUPERLUDIST
99 ,"Superludist"
100#endif
101#ifdef HAVE_AMESOS_TAUCS
102 ,"Taucs"
103#endif
104#ifdef HAVE_AMESOS_PARDISO
105 ,"Pardiso"
106#endif
107#ifdef HAVE_AMESOS_PASTIX
108 ,"Pastix"
109#endif
110#ifdef HAVE_AMESOS_PARAKLETE
111 ,"Paraklete"
112#endif
113#ifdef HAVE_AMESOS_MUMPS
114 ,"Mumps"
115#endif
116#ifdef HAVE_AMESOS_SCALAPACK
117 ,"Scalapack"
118#endif
119#ifdef HAVE_AMESOS_DSCPACK
120 ,"Dscpack"
121#endif
122};
123
124const bool Amesos::supportsUnsymmetric[Amesos::numSolverTypes] =
125{
126 true
127#ifdef HAVE_AMESOS_KLU
128 ,true
129#endif
130#ifdef HAVE_AMESOS_UMFPACK
131 ,true
132#endif
133#ifdef HAVE_AMESOS_SUPERLU
134 ,true
135#endif
136#ifdef HAVE_AMESOS_SUPERLUDIST
137 ,true
138#endif
139#ifdef HAVE_AMESOS_TAUCS
140 ,false
141#endif
142#ifdef HAVE_AMESOS_PARDISO
143 ,true
144#endif
145#ifdef HAVE_AMESOS_PASTIX
146 ,true
147#endif
148#ifdef HAVE_AMESOS_PARAKLETE
149 ,true
150#endif
151#ifdef HAVE_AMESOS_MUMPS
152 ,true
153#endif
154#ifdef HAVE_AMESOS_SCALAPACK
155 ,true
156#endif
157#ifdef HAVE_AMESOS_DSCPACK
158 ,false
159#endif
160};
161
162Teuchos::StringToIntMap
163Amesos::solverTypeNameToEnumMap(
164 "Amesos::SolverType"
165 ,Amesos::numSolverTypes
166 ,Amesos::solverTypeNames
167 );
168
169const Amesos::ERefactorizationPolicy Amesos::refactorizationPolicyValues[Amesos::numRefactorizationPolices] =
170{
171 Amesos::REPIVOT_ON_REFACTORIZATION
172 ,Amesos::NO_PIVOT_ON_REFACTORIZATION
173};
174
175const char* Amesos::refactorizationPolicyNames[Amesos::numRefactorizationPolices] =
176{
177 "RepivotOnRefactorization"
178 ,"NoPivotOnRefactorization"
179};
180
181Teuchos::StringToIntMap
182Amesos::refactorizationPolicyNameToEnumMap(
183 "Amesos::RefactorizationPolices"
184 ,Amesos::numRefactorizationPolices
185 ,Amesos::refactorizationPolicyNames
186 );
187
188} // namespace Thyra

Generated for Stratimikos by doxygen 1.9.6