1 #include "Epetra_Comm.h" 2 #include "Teuchos_ParameterList.hpp" 4 #include "Epetra_CrsMatrix.h" 5 #include "Epetra_Map.h" 6 #include "Epetra_Vector.h" 7 #include "Epetra_LinearProblem.h" 53 double &maxrelresidual,
57 std::string StringFilename = filename ;
58 bool ImpcolB = ( StringFilename.find(
"ImpcolB") < StringFilename.find(
"xdz_notaname_garbage") );
62 const Epetra_Comm& Comm = Amat->Comm();
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 );
422 if ( Amat->RowMatrixRowMap().LinearMap() == false )
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 ;
453 if ( Amat->RowMatrixRowMap().LinearMap() == false )
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 ;
489 if ( Amat->RowMatrixRowMap().LinearMap() == false )
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 ;
525 if ( Amat->RowMatrixRowMap().LinearMap() == false )
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 ;
561 if ( Amat->RowMatrixRowMap().LinearMap() == false )
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 ;
597 if ( Amat->RowMatrixRowMap().LinearMap() == false )
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 ;
631 if ( Amat->RowMatrixRowMap().LinearMap() == false )
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 SuperludistParams.set(
"RowPerm",
"LargeDiag" );
707 SuperludistParams.set(
"MaxProcesses", 10 );
710 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
711 <<
" ParamList = " <<
712 ParamList << std::endl ;
725 maxrelerror = EPETRA_MAX( relerror, maxrelerror ) ;
726 maxrelresidual = EPETRA_MAX( relresidual, maxrelresidual ) ;
736 Teuchos::ParameterList ParamList ;
737 ParamList.set(
"Redistribute",
true );
738 ParamList.set(
"AddZeroToDiag",
false );
739 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
740 SuperludistParams.set(
"ReuseSymbolic",
true );
741 SuperludistParams.set(
"RowPerm",
"NATURAL" );
742 SuperludistParams.set(
"MaxProcesses", 10 );
745 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
746 <<
" ParamList = " <<
747 ParamList << std::endl ;
760 maxrelerror = EPETRA_MAX( relerror, maxrelerror ) ;
761 maxrelresidual = EPETRA_MAX( relresidual, maxrelresidual ) ;
770 Teuchos::ParameterList ParamList ;
771 ParamList.set(
"Redistribute",
true );
772 ParamList.set(
"AddZeroToDiag",
false );
773 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
774 SuperludistParams.set(
"ReuseSymbolic",
true );
775 SuperludistParams.set(
"RowPerm",
"LargeDiag" );
776 SuperludistParams.set(
"MaxProcesses", 10 );
779 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
780 <<
" ParamList = " <<
781 ParamList << std::endl ;
794 maxrelerror = EPETRA_MAX( relerror, maxrelerror ) ;
795 maxrelresidual = EPETRA_MAX( relresidual, maxrelresidual ) ;
803 Teuchos::ParameterList ParamList ;
804 ParamList.set(
"Redistribute",
true );
805 ParamList.set(
"AddZeroToDiag",
false );
806 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
807 SuperludistParams.set(
"ReuseSymbolic",
true );
808 SuperludistParams.set(
"ReplaceTinyPivot",
true );
809 SuperludistParams.set(
"MaxProcesses", 10 );
812 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
813 <<
" ParamList = " <<
814 ParamList << std::endl ;
827 maxrelerror = EPETRA_MAX( relerror, maxrelerror ) ;
828 maxrelresidual = EPETRA_MAX( relresidual, maxrelresidual ) ;
836 Teuchos::ParameterList ParamList ;
837 ParamList.set(
"Redistribute",
true );
838 ParamList.set(
"AddZeroToDiag",
false );
839 Teuchos::ParameterList& SuperludistParams = ParamList.sublist(
"Superludist") ;
840 SuperludistParams.set(
"ReuseSymbolic",
true );
841 SuperludistParams.set(
"ReplaceTinyPivot",
false );
842 SuperludistParams.set(
"MaxProcesses", 10 );
845 if ( MyVerbose ) std::cout << __FILE__ <<
"::" << __LINE__
846 <<
" ParamList = " <<
847 ParamList << std::endl ;
860 maxrelerror = EPETRA_MAX( relerror, maxrelerror ) ;
861 maxrelresidual = EPETRA_MAX( relresidual, maxrelresidual ) ;
cholmod_sparse *CHOLMOD() transpose(cholmod_sparse *A, int values, cholmod_common *Common)
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)