Stratimikos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Thyra_AmesosTypes.cpp
Go to the documentation of this file.
00001 /*
00002 // @HEADER
00003 // ***********************************************************************
00004 // 
00005 //         Stratimikos: Thyra-based strategies for linear solvers
00006 //                Copyright (2006) Sandia Corporation
00007 // 
00008 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00009 // license for use of this work by or on behalf of the U.S. Government.
00010 // 
00011 // Redistribution and use in source and binary forms, with or without
00012 // modification, are permitted provided that the following conditions are
00013 // met:
00014 //
00015 // 1. Redistributions of source code must retain the above copyright
00016 // notice, this list of conditions and the following disclaimer.
00017 //
00018 // 2. Redistributions in binary form must reproduce the above copyright
00019 // notice, this list of conditions and the following disclaimer in the
00020 // documentation and/or other materials provided with the distribution.
00021 //
00022 // 3. Neither the name of the Corporation nor the names of the
00023 // contributors may be used to endorse or promote products derived from
00024 // this software without specific prior written permission.
00025 //
00026 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00027 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00028 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00029 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00030 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00031 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00032 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00033 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00034 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00035 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00036 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00037 //
00038 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 
00039 // 
00040 // ***********************************************************************
00041 // @HEADER
00042 */
00043 
00044 #include "Thyra_AmesosTypes.hpp"
00045 
00046 namespace Thyra {
00047 
00048 const Amesos::ESolverType Amesos::solverTypeValues[Amesos::numSolverTypes] =
00049 {
00050   Amesos::LAPACK
00051 #ifdef HAVE_AMESOS_KLU
00052   ,Amesos::KLU
00053 #endif
00054 #ifdef HAVE_AMESOS_UMFPACK
00055   ,Amesos::UMFPACK
00056 #endif
00057 #ifdef HAVE_AMESOS_SUPERLU
00058   ,Amesos::SUPERLU
00059 #endif
00060 #ifdef HAVE_AMESOS_SUPERLUDIST
00061   ,Amesos::SUPERLUDIST
00062 #endif
00063 #ifdef HAVE_AMESOS_TAUCS
00064   ,Amesos::TAUCS
00065 #endif
00066 #ifdef HAVE_AMESOS_PARDISO
00067   ,Amesos::PARDISO
00068 #endif
00069 #ifdef HAVE_AMESOS_PASTIX
00070   ,Amesos::PASTIX
00071 #endif
00072 #ifdef HAVE_AMESOS_PARAKLETE
00073   ,Amesos::PARAKLETE
00074 #endif
00075 #ifdef HAVE_AMESOS_MUMPS
00076   ,Amesos::MUMPS
00077 #endif
00078 #ifdef HAVE_AMESOS_SCALAPACK
00079   ,Amesos::SCALAPACK
00080 #endif
00081 #ifdef HAVE_AMESOS_DSCPACK
00082   ,Amesos::DSCPACK
00083 #endif
00084 };
00085 
00086 const char* Amesos::solverTypeNames[Amesos::numSolverTypes] =
00087 {
00088   "Lapack"
00089 #ifdef HAVE_AMESOS_KLU
00090   ,"Klu"
00091 #endif
00092 #ifdef HAVE_AMESOS_UMFPACK
00093   ,"Umfpack"
00094 #endif
00095 #ifdef HAVE_AMESOS_SUPERLU
00096   ,"Superlu"
00097 #endif
00098 #ifdef HAVE_AMESOS_SUPERLUDIST
00099   ,"Superludist"
00100 #endif
00101 #ifdef HAVE_AMESOS_TAUCS
00102   ,"Taucs"
00103 #endif
00104 #ifdef HAVE_AMESOS_PARDISO
00105   ,"Pardiso"
00106 #endif
00107 #ifdef HAVE_AMESOS_PASTIX
00108   ,"Pastix"
00109 #endif
00110 #ifdef HAVE_AMESOS_PARAKLETE
00111   ,"Paraklete"
00112 #endif
00113 #ifdef HAVE_AMESOS_MUMPS
00114   ,"Mumps"
00115 #endif
00116 #ifdef HAVE_AMESOS_SCALAPACK
00117   ,"Scalapack"
00118 #endif
00119 #ifdef HAVE_AMESOS_DSCPACK
00120   ,"Dscpack"
00121 #endif
00122 };
00123 
00124 const bool Amesos::supportsUnsymmetric[Amesos::numSolverTypes] =
00125 {
00126   true
00127 #ifdef HAVE_AMESOS_KLU
00128   ,true
00129 #endif
00130 #ifdef HAVE_AMESOS_UMFPACK
00131   ,true
00132 #endif
00133 #ifdef HAVE_AMESOS_SUPERLU
00134   ,true
00135 #endif
00136 #ifdef HAVE_AMESOS_SUPERLUDIST
00137   ,true
00138 #endif
00139 #ifdef HAVE_AMESOS_TAUCS
00140   ,false
00141 #endif
00142 #ifdef HAVE_AMESOS_PARDISO
00143   ,true
00144 #endif
00145 #ifdef HAVE_AMESOS_PASTIX
00146   ,true
00147 #endif
00148 #ifdef HAVE_AMESOS_PARAKLETE
00149   ,true
00150 #endif
00151 #ifdef HAVE_AMESOS_MUMPS
00152   ,true
00153 #endif
00154 #ifdef HAVE_AMESOS_SCALAPACK
00155   ,true
00156 #endif
00157 #ifdef HAVE_AMESOS_DSCPACK
00158   ,false
00159 #endif
00160 };
00161 
00162 Teuchos::StringToIntMap
00163 Amesos::solverTypeNameToEnumMap(
00164   "Amesos::SolverType"
00165   ,Amesos::numSolverTypes
00166   ,Amesos::solverTypeNames
00167   );
00168 
00169 const Amesos::ERefactorizationPolicy Amesos::refactorizationPolicyValues[Amesos::numRefactorizationPolices] =
00170 {
00171   Amesos::REPIVOT_ON_REFACTORIZATION
00172   ,Amesos::NO_PIVOT_ON_REFACTORIZATION
00173 };
00174 
00175 const char* Amesos::refactorizationPolicyNames[Amesos::numRefactorizationPolices] =
00176 {
00177   "RepivotOnRefactorization"
00178   ,"NoPivotOnRefactorization"
00179 };
00180 
00181 Teuchos::StringToIntMap
00182 Amesos::refactorizationPolicyNameToEnumMap(
00183   "Amesos::RefactorizationPolices"
00184   ,Amesos::numRefactorizationPolices
00185   ,Amesos::refactorizationPolicyNames
00186   );
00187 
00188 } // namespace Thyra
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines