2 #include "Teuchos_ParameterList.hpp" 53 double &maxrelresidual,
57 std::string StringFilename = filename ;
58 bool ImpcolB = ( StringFilename.find(
"ImpcolB") < StringFilename.find(
"xdz_notaname_garbage") );
68 bool MyVerbose = false ;
77 Teuchos::ParameterList ParamList ;
78 ParamList.set(
"Redistribute",
true );
79 ParamList.set(
"AddZeroToDiag",
true );
80 ParamList.set(
"AddToDiag", 1e2 );
81 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
82 SuperludistParams.set(
"ReuseSymbolic",
true );
83 SuperludistParams.set(
"MaxProcesses", 2 );
86 const int ExpectedError = 0 ;
104 std::cout <<
"Amesos_Superludist failed with error code " << Errors<< std::endl ;
108 NumErrors += Errors ;
109 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
110 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
119 Teuchos::ParameterList ParamList ;
120 ParamList.set(
"Redistribute",
true );
121 ParamList.set(
"AddZeroToDiag",
false );
122 ParamList.set(
"AddToDiag", 1e2 );
123 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
124 SuperludistParams.set(
"ReuseSymbolic",
true );
125 SuperludistParams.set(
"MaxProcesses", 2 );
144 std::cout <<
"Amesos_Superludist failed with error code " << Errors<< std::endl ;
148 NumErrors += Errors ;
149 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
150 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
159 Teuchos::ParameterList ParamList ;
160 ParamList.set(
"Redistribute",
true );
161 ParamList.set(
"AddZeroToDiag",
true );
162 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
163 SuperludistParams.set(
"ReuseSymbolic",
false );
164 SuperludistParams.set(
"MaxProcesses", 2 );
167 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
168 <<
" ParamList = " <<
169 ParamList << std::endl ;
182 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
183 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
190 Teuchos::ParameterList ParamList ;
191 ParamList.set(
"Redistribute",
true );
192 ParamList.set(
"AddZeroToDiag",
true );
193 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
194 SuperludistParams.set(
"ReuseSymbolic",
true );
195 SuperludistParams.set(
"MaxProcesses", 1 );
198 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
199 <<
" ParamList = " <<
200 ParamList << std::endl ;
213 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
214 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
222 Teuchos::ParameterList ParamList ;
223 ParamList.set(
"Redistribute",
true );
224 ParamList.set(
"AddZeroToDiag",
true );
225 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
226 SuperludistParams.set(
"ReuseSymbolic",
false );
227 SuperludistParams.set(
"MaxProcesses", 1 );
230 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
231 <<
" ParamList = " <<
232 ParamList << std::endl ;
245 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
246 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
256 Teuchos::ParameterList ParamList ;
257 ParamList.set(
"Redistribute",
true );
258 ParamList.set(
"AddZeroToDiag",
true );
259 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
260 SuperludistParams.set(
"ReuseSymbolic",
false );
261 SuperludistParams.set(
"MaxProcesses", 10 );
275 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
276 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
285 Teuchos::ParameterList ParamList ;
286 ParamList.set(
"Redistribute",
true );
287 ParamList.set(
"AddZeroToDiag",
false );
288 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
289 SuperludistParams.set(
"ReuseSymbolic",
true );
290 SuperludistParams.set(
"MaxProcesses", -1 );
293 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
294 <<
" ParamList = " <<
295 ParamList << std::endl ;
308 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
309 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
318 Teuchos::ParameterList ParamList ;
319 ParamList.set(
"Redistribute",
true );
320 ParamList.set(
"AddZeroToDiag",
false );
321 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
322 SuperludistParams.set(
"ReuseSymbolic",
true );
323 SuperludistParams.set(
"MaxProcesses", -2 );
326 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
327 <<
" ParamList = " <<
328 ParamList << std::endl ;
341 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
342 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
351 Teuchos::ParameterList ParamList ;
352 ParamList.set(
"Redistribute",
true );
353 ParamList.set(
"AddZeroToDiag",
false );
354 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
355 SuperludistParams.set(
"ReuseSymbolic",
false );
356 SuperludistParams.set(
"MaxProcesses", -3 );
359 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
360 <<
" ParamList = " <<
361 ParamList << std::endl ;
374 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
375 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
384 Teuchos::ParameterList ParamList ;
385 ParamList.set(
"Redistribute",
true );
386 ParamList.set(
"AddZeroToDiag",
false );
387 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
388 SuperludistParams.set(
"ReuseSymbolic",
false );
389 SuperludistParams.set(
"MaxProcesses", 4 );
392 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
393 <<
" ParamList = " <<
394 ParamList << std::endl ;
407 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
408 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
417 Teuchos::ParameterList ParamList ;
418 ParamList.set(
"AddZeroToDiag",
true );
419 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
420 SuperludistParams.set(
"ReuseSymbolic",
true );
421 SuperludistParams.set(
"MaxProcesses", 4 );
423 ParamList.set(
"Redistribute",
true );
425 ParamList.set(
"Redistribute",
false );
428 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
429 <<
" ParamList = " <<
430 ParamList << std::endl ;
443 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
444 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
452 Teuchos::ParameterList ParamList ;
454 ParamList.set(
"Redistribute",
true );
456 ParamList.set(
"Redistribute",
false );
457 ParamList.set(
"AddZeroToDiag",
true );
458 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
459 SuperludistParams.set(
"ReuseSymbolic",
true );
460 SuperludistParams.set(
"MaxProcesses", 4 );
463 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
464 <<
" ParamList = " <<
465 ParamList << std::endl ;
478 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
479 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
488 Teuchos::ParameterList ParamList ;
490 ParamList.set(
"Redistribute",
true );
492 ParamList.set(
"Redistribute",
false );
493 ParamList.set(
"AddZeroToDiag",
true );
494 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
495 SuperludistParams.set(
"ReuseSymbolic",
false );
496 SuperludistParams.set(
"MaxProcesses", 1 );
499 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
500 <<
" ParamList = " <<
501 ParamList << std::endl ;
514 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
515 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
524 Teuchos::ParameterList ParamList ;
526 ParamList.set(
"Redistribute",
true );
528 ParamList.set(
"Redistribute",
false );
529 ParamList.set(
"AddZeroToDiag",
true );
530 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
531 SuperludistParams.set(
"ReuseSymbolic",
false );
532 SuperludistParams.set(
"MaxProcesses", 2 );
535 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
536 <<
" ParamList = " <<
537 ParamList << std::endl ;
550 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
551 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
560 Teuchos::ParameterList ParamList ;
562 ParamList.set(
"Redistribute",
true );
564 ParamList.set(
"Redistribute",
false );
565 ParamList.set(
"AddZeroToDiag",
false );
566 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
567 SuperludistParams.set(
"ReuseSymbolic",
true );
568 SuperludistParams.set(
"MaxProcesses", 1 );
571 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
572 <<
" ParamList = " <<
573 ParamList << std::endl ;
586 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
587 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
596 Teuchos::ParameterList ParamList ;
598 ParamList.set(
"Redistribute",
true );
600 ParamList.set(
"Redistribute",
false );
601 ParamList.set(
"AddZeroToDiag",
false );
602 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
603 SuperludistParams.set(
"ReuseSymbolic",
true );
604 SuperludistParams.set(
"MaxProcesses", 2 );
607 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
608 <<
" ParamList = " <<
609 ParamList << std::endl ;
622 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
623 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
630 Teuchos::ParameterList ParamList ;
632 ParamList.set(
"Redistribute",
true );
634 ParamList.set(
"Redistribute",
false );
635 ParamList.set(
"AddZeroToDiag",
false );
636 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
637 SuperludistParams.set(
"ReuseSymbolic",
true );
638 SuperludistParams.set(
"Fact",
"SamePattern" );
639 SuperludistParams.set(
"MaxProcesses", 2 );
642 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
643 <<
" ParamList = " <<
644 ParamList << std::endl ;
657 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
658 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
667 Teuchos::ParameterList ParamList ;
668 ParamList.set(
"Redistribute",
true );
669 ParamList.set(
"AddZeroToDiag",
false );
670 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
671 SuperludistParams.set(
"ReuseSymbolic",
false );
672 SuperludistParams.set(
"RowPerm",
"NATURAL" );
673 SuperludistParams.set(
"MaxProcesses", 10 );
676 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
677 <<
" ParamList = " <<
678 ParamList << std::endl ;
691 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
692 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
701 Teuchos::ParameterList ParamList ;
702 ParamList.set(
"Redistribute",
true );
703 ParamList.set(
"AddZeroToDiag",
false );
704 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
705 SuperludistParams.set(
"ReuseSymbolic",
false );
706 #if (SUPERLU_DIST_MAJOR_VERSION > 5) || ( SUPERLU_DIST_MAJOR_VERSION == 5 && SUPERLU_DIST_MINOR_VERSION > 3) 707 SuperludistParams.set(
"RowPerm",
"LargeDiag_MC64" );
709 SuperludistParams.set(
"RowPerm",
"LargeDiag" );
711 SuperludistParams.set(
"MaxProcesses", 10 );
714 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
715 <<
" ParamList = " <<
716 ParamList << std::endl ;
729 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
730 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
740 Teuchos::ParameterList ParamList ;
741 ParamList.set(
"Redistribute",
true );
742 ParamList.set(
"AddZeroToDiag",
false );
743 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
744 SuperludistParams.set(
"ReuseSymbolic",
true );
745 SuperludistParams.set(
"RowPerm",
"NATURAL" );
746 SuperludistParams.set(
"MaxProcesses", 10 );
749 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
750 <<
" ParamList = " <<
751 ParamList << std::endl ;
764 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
765 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
774 Teuchos::ParameterList ParamList ;
775 ParamList.set(
"Redistribute",
true );
776 ParamList.set(
"AddZeroToDiag",
false );
777 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
778 SuperludistParams.set(
"ReuseSymbolic",
true );
779 #if (SUPERLU_DIST_MAJOR_VERSION > 5) || ( SUPERLU_DIST_MAJOR_VERSION == 5 && SUPERLU_DIST_MINOR_VERSION > 3) 780 SuperludistParams.set(
"RowPerm",
"LargeDiag_MC64" );
782 SuperludistParams.set(
"RowPerm",
"LargeDiag" );
784 SuperludistParams.set(
"MaxProcesses", 10 );
787 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
788 <<
" ParamList = " <<
789 ParamList << std::endl ;
802 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
803 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
811 Teuchos::ParameterList ParamList ;
812 ParamList.set(
"Redistribute",
true );
813 ParamList.set(
"AddZeroToDiag",
false );
814 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
815 SuperludistParams.set(
"ReuseSymbolic",
true );
816 SuperludistParams.set(
"ReplaceTinyPivot",
true );
817 SuperludistParams.set(
"MaxProcesses", 10 );
820 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
821 <<
" ParamList = " <<
822 ParamList << std::endl ;
835 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
836 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
844 Teuchos::ParameterList ParamList ;
845 ParamList.set(
"Redistribute",
true );
846 ParamList.set(
"AddZeroToDiag",
false );
847 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
848 SuperludistParams.set(
"ReuseSymbolic",
true );
849 SuperludistParams.set(
"ReplaceTinyPivot",
false );
850 SuperludistParams.set(
"MaxProcesses", 10 );
853 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
854 <<
" ParamList = " <<
855 ParamList << std::endl ;
868 maxrelerror =
EPETRA_MAX( relerror, maxrelerror ) ;
869 maxrelresidual =
EPETRA_MAX( relresidual, maxrelresidual ) ;
const Epetra_Comm & Comm() const
const Epetra_Map & RowMatrixRowMap() const
int TestSuperludist(Epetra_CrsMatrix *&Amat, int EpetraMatrixType, bool transpose, bool verbose, int Levels, const double Rcond, double &maxrelerror, double &maxrelresidual, const char *filename, int &NumTests)