47 int main(
int argc,
char* argv[])
65 std::string matrixFile =
"";
66 bool testTranspose =
true;
67 int numRandomVectors = 1;
68 double maxFwdError = 1e-14;
69 int maxIterations = 400;
70 double maxResid = 1e-6;
71 double maxSolutionError = 1e-6;
74 std::string aztecOutputLevel =
"freq";
75 int aztecOutputFreq = 0;
76 std::string aztecPrec =
"none";
77 std::string aztecSubdomainSolve =
"ilu";
79 CommandLineProcessor clp(
false);
80 clp.setOption(
"matrix-file", &matrixFile,
"Matrix input file [Required]." );
81 clp.setOption(
"test-transpose",
"no-test-transpose", &testTranspose,
"Test the transpose solve or not." );
82 clp.setOption(
"num-random-vectors", &numRandomVectors,
"Number of times a test is performed with different random vectors." );
83 clp.setOption(
"max-fwd-error", &maxFwdError,
"The maximum relative error in the forward operator." );
84 clp.setOption(
"max-iters", &maxIterations,
"The maximum number of linear solver iterations to take." );
85 clp.setOption(
"max-resid", &maxResid,
"The maximum relative error in the residual." );
86 clp.setOption(
"max-solution-error", &maxSolutionError,
"The maximum relative error in the solution of the linear system." );
87 clp.setOption(
"verbose",
"quiet", &verbose,
"Set if output is printed or not." );
88 clp.setOption(
"show-all-tests",
"no-show-all-tests", &showAllTests,
"Set if all the tests are shown or not." );
89 clp.setOption(
"dump-all",
"no-dump-all", &dumpAll,
"Determines if vectors are printed or not." );
90 clp.setOption(
"aztec-output-level", &aztecOutputLevel,
"Aztec output level (freq,last,summary,warnings,all)" );
91 clp.setOption(
"aztec-output-freq", &aztecOutputFreq,
"Aztec output freqency (> 0)" );
92 clp.setOption(
"aztec-prec", &aztecPrec,
"Type of aztec preconditioner (none,sym_GS,Neumann,Jacobi,ls,dom_decomp)" );
93 clp.setOption(
"aztec-subdomain-solve", &aztecSubdomainSolve,
"Type of subdomain solve for --aztec-prec==dom_decomp only (ilu,ilut)" );
94 CommandLineProcessor::EParseCommandLineReturn parse_return = clp.parse(argc,argv);
95 if( parse_return != CommandLineProcessor::PARSE_SUCCESSFUL )
return parse_return;
100 paramList(
"AztecOOLinearOpWithSolve");
102 &fwdSolveParamList = paramList.
sublist(
"Forward Solve"),
103 &adjSolveParamList = paramList.
sublist(
"Adjoint Solve");
104 fwdSolveParamList.
set(
"Max Iterations",maxIterations);
105 adjSolveParamList.
set(
"Max Iterations",maxIterations);
129 = Thyra::test_single_aztecoo_thyra_solver(
130 matrixFile,testTranspose,numRandomVectors
131 ,maxFwdError,maxResid,maxSolutionError,showAllTests,dumpAll
137 catch(
const std::exception &excpt ) {
138 std::cerr <<
"*** Caught standard exception : " << excpt.what() << std::endl;
142 std::cerr <<
"*** Caught an unknown exception\n";
147 if(success) out <<
"\nCongratulations! All of the tests checked out!\n";
148 else out <<
"\nOh no! At least one of the tests failed!\n";
151 return ( success ? 0 : 1 );
int main(int argc, char *argv[])
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
RCP< ParameterList > sublist(const RCP< ParameterList > ¶mList, const std::string &name, bool mustAlreadyExist=false, const std::string &docString="")
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)