Ifpack Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
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
"
49
#include "
Ifpack_OverlapFactorObject.h
"
50
#include "
Ifpack_OverlapSolveObject.h
"
51
#include "
Epetra_CompObject.h
"
52
#include "
Epetra_CrsMatrix.h
"
53
#include "
Epetra_Object.h
"
54
class
Epetra_Comm
;
55
class
Epetra_Map
;
56
class
Epetra_RowMatrix
;
57
class
Epetra_Vector
;
58
class
Epetra_MultiVector
;
59
61
62
63
64
class
Ifpack_CrsIlut
:
public
Epetra_Object
,
public
Epetra_CompObject
,
public
Ifpack_OverlapFactorObject
,
public
Ifpack_OverlapSolveObject
{
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
128
int
ProcessOverlapMatrix
(
const
Epetra_RowMatrix
&A);
130
int
DerivedFactor
();
132
133
private
:
134
135
double
DropTol_
;
136
double
FillTol_
;
137
138
};
139
140
#endif
/* IFPACK_CRSILUT_H */
Epetra_CompObject.h
Epetra_CrsMatrix.h
Epetra_Object.h
Ifpack_ConfigDefs.h
Ifpack_OverlapFactorObject.h
Ifpack_OverlapGraph.h
Ifpack_OverlapSolveObject.h
Ifpack_ScalingType.h
Ifpack_ScalingType enumerable type.
Epetra_Comm
Epetra_CompObject::Epetra_CompObject
Epetra_CompObject()
Epetra_Map
Epetra_MultiVector
Epetra_Object::Epetra_Object
Epetra_Object(int TracebackModeIn=-1, bool set_label=true)
Epetra_RowMatrix
Epetra_Vector
Ifpack_CrsIlut::FillTol_
double FillTol_
Definition
Ifpack_CrsIlut.h:136
Ifpack_CrsIlut::SetFillTol
int SetFillTol(double FillTol)
Set fill tolerance value as defined by the ILUT algorithm.
Definition
Ifpack_CrsIlut.h:103
Ifpack_CrsIlut::ProcessOverlapMatrix
int ProcessOverlapMatrix(const Epetra_RowMatrix &A)
Processes the overlapped user matrix for computing the ILUT preconditioner.
Definition
Ifpack_CrsIlut.cpp:106
Ifpack_CrsIlut::FillTol
double FillTol() const
Set fill tolerance value as defined by the ILUT algorithm.
Definition
Ifpack_CrsIlut.h:121
Ifpack_CrsIlut::DropTol
double DropTol() const
Set Drop tolerance value as defined by the ILUT algorithm.
Definition
Ifpack_CrsIlut.h:118
Ifpack_CrsIlut::DropTol_
double DropTol_
Definition
Ifpack_CrsIlut.h:135
Ifpack_CrsIlut::Ifpack_CrsIlut
Ifpack_CrsIlut(const Ifpack_OverlapGraph *OverlapGraph, double DropTol=1.0E-4, double FillTol=1.0)
Constructor using Ifpack_OverlapGraph.
Definition
Ifpack_CrsIlut.cpp:57
Ifpack_CrsIlut::SetParameters
int SetParameters(const Teuchos::ParameterList ¶meterlist, bool cerr_warning_if_unused=false)
Set parameters using a Teuchos::ParameterList object.
Definition
Ifpack_CrsIlut.cpp:90
Ifpack_CrsIlut::SetDropTol
int SetDropTol(double DropTol)
Set Drop tolerance value as defined by the ILUT algorithm.
Definition
Ifpack_CrsIlut.h:100
Ifpack_CrsIlut::~Ifpack_CrsIlut
virtual ~Ifpack_CrsIlut()
Ifpack_CrsIlut Destructor.
Ifpack_CrsIlut::DerivedFactor
int DerivedFactor()
Compute ILUT factors L and U: WARNING: THIS ROUTINE IS NOT USER CALLABLE, CALL Factor().
Definition
Ifpack_CrsIlut.cpp:112
Ifpack_OverlapFactorObject::Ifpack_OverlapFactorObject
Ifpack_OverlapFactorObject(const Ifpack_OverlapGraph *OverlapGraph)
Constructor using Ifpack_OverlapGraph.
Ifpack_OverlapGraph
Ifpack_OverlapGraph: Constructs a graph for use with Ifpack preconditioners.
Definition
Ifpack_OverlapGraph.h:62
Ifpack_OverlapSolveObject::Ifpack_OverlapSolveObject
Ifpack_OverlapSolveObject(char *Label, const Epetra_Comm &Comm)
Constructor.
Definition
Ifpack_OverlapSolveObject.cpp:53
Generated by
1.17.0