Ifpack_ValidParameters.cpp

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 

Generated on Wed May 12 21:46:03 2010 for IFPACK by  doxygen 1.4.7