Ifpack Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
Ifpack_CrsIlut.h
Go to the documentation of this file.
1/*@HEADER
2// ***********************************************************************
3//
4// Ifpack: Object-Oriented Algebraic Preconditioner Package
5// Copyright (2002) Sandia Corporation
6//
7// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8// license for use of this work by or on behalf of the U.S. Government.
9//
10// Redistribution and use in source and binary forms, with or without
11// modification, are permitted provided that the following conditions are
12// met:
13//
14// 1. Redistributions of source code must retain the above copyright
15// notice, this list of conditions and the following disclaimer.
16//
17// 2. Redistributions in binary form must reproduce the above copyright
18// notice, this list of conditions and the following disclaimer in the
19// documentation and/or other materials provided with the distribution.
20//
21// 3. Neither the name of the Corporation nor the names of the
22// contributors may be used to endorse or promote products derived from
23// this software without specific prior written permission.
24//
25// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36//
37// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38//
39// ***********************************************************************
40//@HEADER
41*/
42
43#ifndef IFPACK_CRSILUT_H
44#define IFPACK_CRSILUT_H
45
46#include "Ifpack_ConfigDefs.h"
47#include "Ifpack_ScalingType.h"
48#include "Ifpack_OverlapGraph.h"
51#include "Epetra_CompObject.h"
52#include "Epetra_CrsMatrix.h"
53#include "Epetra_Object.h"
54class Epetra_Comm;
55class Epetra_Map;
57class Epetra_Vector;
59
61
62
63
65
66 public:
68
70
76 Ifpack_CrsIlut(const Ifpack_OverlapGraph * OverlapGraph, double DropTol = 1.0E-4,
77 double FillTol = 1.0);
78
80
87 Ifpack_CrsIlut(const Epetra_RowMatrix * UserMatrix, double DropTol = 1.0E-4,
88 double FillTol = 1.0);
89
91 Ifpack_CrsIlut(const Ifpack_CrsIlut & Source);
92
94 virtual ~Ifpack_CrsIlut();
96
98
100 int SetDropTol(double DropTol) {DropTol_ = DropTol; return(0);};
101
103 int SetFillTol(double FillTol) {FillTol_ = FillTol; return(0);};
104
106 /* This method is only available if the Teuchos package is enabled.
107 This method recognizes two parameter names: drop_tolerance and
108 fill_tolerance. These names are case insensitive. For both, the
109 ParameterEntry must have type double.
110 */
111 int SetParameters(const Teuchos::ParameterList& parameterlist,
112 bool cerr_warning_if_unused=false);
114
116
118 double DropTol() const {return(DropTol_);};
119
121 double FillTol() const {return(FillTol_);};
123
124 protected:
126
130 int DerivedFactor();
132
133 private:
134
135 double DropTol_;
136 double FillTol_;
137
138};
139
140#endif /* IFPACK_CRSILUT_H */
Ifpack_ScalingType enumerable type.
Ifpack_CrsIlut: ILUT preconditioner of a given Epetra_RowMatrix.
int SetFillTol(double FillTol)
Set fill tolerance value as defined by the ILUT algorithm.
int ProcessOverlapMatrix(const Epetra_RowMatrix &A)
Processes the overlapped user matrix for computing the ILUT preconditioner.
double FillTol() const
Set fill tolerance value as defined by the ILUT algorithm.
double DropTol() const
Set Drop tolerance value as defined by the ILUT algorithm.
int SetParameters(const Teuchos::ParameterList &parameterlist, bool cerr_warning_if_unused=false)
Set parameters using a Teuchos::ParameterList object.
int SetDropTol(double DropTol)
Set Drop tolerance value as defined by the ILUT algorithm.
virtual ~Ifpack_CrsIlut()
Ifpack_CrsIlut Destructor.
int DerivedFactor()
Compute ILUT factors L and U: WARNING: THIS ROUTINE IS NOT USER CALLABLE, CALL Factor().
Ifpack_OverlapFactorObject: Supports functionality common to Ifpack overlap factorization classes.
Ifpack_OverlapGraph: Constructs a graph for use with Ifpack preconditioners.
Ifpack_OverlapSolveObject: Provides Overlapped Forward/back solve services for Ifpack.