|
IFPACK Development
|
00001 /*@HEADER 00002 // *********************************************************************** 00003 // 00004 // Ifpack: Object-Oriented Algebraic Preconditioner Package 00005 // Copyright (2002) Sandia Corporation 00006 // 00007 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive 00008 // license for use of this work by or on behalf of the U.S. Government. 00009 // 00010 // This library is free software; you can redistribute it and/or modify 00011 // it under the terms of the GNU Lesser General Public License as 00012 // published by the Free Software Foundation; either version 2.1 of the 00013 // License, or (at your option) any later version. 00014 // 00015 // This library is distributed in the hope that it will be useful, but 00016 // WITHOUT ANY WARRANTY; without even the implied warranty of 00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 // Lesser General Public License for more details. 00019 // 00020 // You should have received a copy of the GNU Lesser General Public 00021 // License along with this library; if not, write to the Free Software 00022 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00023 // USA 00024 // Questions? Contact Michael A. Heroux (maherou@sandia.gov) 00025 // 00026 // *********************************************************************** 00027 //@HEADER 00028 */ 00029 00030 #include "Ifpack_ValidParameters.h" 00031 00032 Teuchos::ParameterList Ifpack_GetValidParameters() 00033 { 00034 Teuchos::ParameterList List; // empty list 00035 00036 // ============================================================ // 00037 // Parameters are reported from each used file in IFPACK. Files // 00038 // are listed in alphabetical order, first all *.cpp, then *.h. // 00039 // Some options not very tested or documented anywhere // 00040 // are not reported here. // 00041 // ============================================================ // 00042 00043 // Ifpack_Amesos.cpp 00044 List.set("amesos: solver type", "Amesos_Klu"); 00045 00046 // Ifpack_IC.cpp 00047 List.set("fact: level-of-fill", (int)1); 00048 List.set("fact: absolute threshold", (double)0.0); 00049 List.set("fact: relative threshold", (double)0.0); 00050 List.set("fact: drop tolerance", (double)0.0); 00051 00052 // Ifpack_ICT.cpp 00053 List.set("fact: ict level-of-fill", (double)1.0); 00054 List.set("fact: absolute threshold", (double)0.0); 00055 List.set("fact: relative threshold", (double)1.0); 00056 List.set("fact: relax value", (double)0.0); 00057 List.set("fact: drop tolerance", (double)0.0); 00058 00059 // Ifpack_ILU.cpp 00060 List.set("fact: level-of-fill", (int)0); 00061 List.set("fact: absolute threshold", (double)0.0); 00062 List.set("fact: relative threshold", (double)1.0); 00063 List.set("fact: relax value", (double)0.0); 00064 00065 // Ifpack_ILUT.cpp 00066 List.set("fact: ilut level-of-fill", (double)1.0); 00067 List.set("fact: absolute threshold", (double)0.0); 00068 List.set("fact: relative threshold", (double)1.0); 00069 List.set("fact: relax value", (double)0.0); 00070 00071 // Ifpack_METISPartitioner.cpp 00072 List.set("partitioner: local parts", (int)1); 00073 List.set("partitioner: overlap", (int)0); 00074 List.set("partitioner: print level", (int)0); 00075 00076 // Ifpack_PointRelaxation.cpp 00077 List.set("relaxation: type", "Jacobi"); 00078 List.set("relaxation: sweeps", (int)1); 00079 List.set("relaxation: damping factor", (double)1.0); 00080 List.set("relaxation: min diagonal value", (double)1.0); 00081 List.set("relaxation: zero starting solution", true); 00082 00083 // Ifpack_SPARSKIT.cpp 00084 List.set("fact: sparskit: lfil", (int)0); 00085 List.set("fact: sparskit: tol", (double)0.0); 00086 List.set("fact: sparskit: droptol", (double)0.0); 00087 List.set("fact: sparskit: permtol", (double)0.1); 00088 List.set("fact: sparskit: alph", (double)0.0); 00089 List.set("fact: sparskit: mbloc", (int)(-1)); 00090 List.set("fact: sparskit: type", ("ILUT")); 00091 00092 // Additive Schwarz preconditioner 00093 List.set("schwarz: compute condest", true); 00094 List.set("schwarz: combine mode", "Zero"); // use string mode for this 00095 List.set("schwarz: reordering type", "none"); 00096 List.set("schwarz: filter singletons", false); 00097 00098 // Ifpack_BlockRelaxation.h 00099 // List.set("relaxation: type", "Jacobi"); // already set 00100 // List.set("relaxation: sweeps", 1); // already set 00101 // List.get("relaxation: damping factor", 1.0); // already set 00102 // List.get("relaxation: zero starting solution", true); // already set 00103 List.set("partitioner: type", "greedy"); 00104 List.set("partitioner: local parts", (int)1); 00105 List.set("partitioner: overlap", (int)0); 00106 00107 // Ifpack_METISPartitioner.h 00108 List.set("partitioner: use symmetric graph", true); 00109 00110 return(List); 00111 } 00112
1.7.4