Stratimikos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
test
test_tpetra_stratimikos_solver_driver.cpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Stratimikos: Thyra-based strategies for linear solvers
5
// Copyright (2006) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#include <Tpetra_Core.hpp>
43
#include "
test_tpetra_stratimikos_solver.hpp
"
44
#include "Teuchos_GlobalMPISession.hpp"
45
#include "Teuchos_VerboseObject.hpp"
46
#include "Teuchos_CommandLineProcessor.hpp"
47
#include "Teuchos_XMLParameterListHelpers.hpp"
48
#include "Teuchos_StandardCatchMacros.hpp"
49
50
int
main
(
int
argc,
char
* argv[])
51
{
52
53
using
Teuchos::CommandLineProcessor;
54
55
bool
success =
true
;
56
bool
verbose =
true
;
57
58
59
Teuchos::RCP<Teuchos::FancyOStream>
60
out = Teuchos::VerboseObjectBase::getDefaultOStream();
61
62
try
{
63
Tpetra::ScopeGuard tpetraScope(&argc,&argv);
64
{
65
66
//
67
// Read options from command-line
68
//
69
70
std::string inputFile =
""
;
71
std::string extraParams =
""
;
72
bool
dumpAll =
false
;
73
74
CommandLineProcessor clp(
false
);
// Don't throw exceptions
75
clp.addOutputSetupOptions(
true
);
76
clp.setOption(
"input-file"
, &inputFile,
"Input file [Required]."
,
true
);
77
clp.setOption(
"extra-params"
, &extraParams,
"Extra parameters overriding the parameters read in from --input-file"
);
78
clp.setDocString(
79
"Testing program for Tpetra-Belos linear solvers access through Thyra."
80
);
81
82
CommandLineProcessor::EParseCommandLineReturn parse_return = clp.parse(argc,argv);
83
if
( parse_return != CommandLineProcessor::PARSE_SUCCESSFUL )
return
parse_return;
84
85
Teuchos::ParameterList paramList;
86
if
(verbose) *out <<
"\nReading parameters from XML file \""
<<inputFile<<
"\" ...\n"
;
87
Teuchos::updateParametersFromXmlFile(inputFile, Teuchos::inOutArg(paramList));
88
if
(extraParams.length()) {
89
if
(verbose) *out <<
"\nAppending extra parameters from the XML string \""
<<extraParams<<
"\" ...\n"
;
90
Teuchos::updateParametersFromXmlString(extraParams, Teuchos::inOutArg(paramList));
91
}
92
93
success
94
=
Thyra::test_tpetra_stratimikos_solver
(
95
¶mList, dumpAll, verbose?&*out:0
96
);
97
98
}
//End Tpetra scope
99
}
100
TEUCHOS_STANDARD_CATCH_STATEMENTS(verbose,std::cerr,success)
101
102
if
(verbose) {
103
if
(success) *out <<
"\nCongratulations! All of the tests checked out!\n"
;
104
else
*out <<
"\nOh no! At least one of the tests failed!\n"
;
105
}
106
107
return
( success ? EXIT_SUCCESS : EXIT_FAILURE );
108
}
Thyra::test_tpetra_stratimikos_solver
bool test_tpetra_stratimikos_solver(Teuchos::ParameterList *paramList, const bool dumpAll, Teuchos::FancyOStream *out)
Testing function for a single tpetra stratimikos solver for a single matrix.
Definition
test_tpetra_stratimikos_solver.cpp:54
test_tpetra_stratimikos_solver.hpp
main
int main(int argc, char *argv[])
Definition
test_tpetra_stratimikos_solver_driver.cpp:50
Generated by
1.17.0