Ifpack Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Ifpack_CrsIlut.cpp
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
#include "
Ifpack_CrsIlut.h
"
44
#include "
Epetra_Comm.h
"
45
#include "
Epetra_Map.h
"
46
#include "
Epetra_CrsGraph.h
"
47
#include "
Epetra_CrsMatrix.h
"
48
#include "
Epetra_VbrMatrix.h
"
49
#include "
Epetra_RowMatrix.h
"
50
#include "
Epetra_Vector.h
"
51
#include "
Epetra_MultiVector.h
"
52
53
#include <Teuchos_ParameterList.hpp>
54
#include <
ifp_parameters.h
>
55
56
//==============================================================================
57
Ifpack_CrsIlut::Ifpack_CrsIlut
(
const
Ifpack_OverlapGraph
* OverlapGraph,
double
DropTol
,
58
double
FillTol
)
59
:
Epetra_Object
(
"Ifpack::CrsIlut"
),
60
Epetra_CompObject
(),
61
Ifpack_OverlapFactorObject
(OverlapGraph),
62
Ifpack_OverlapSolveObject
(
Epetra_Object
::
Label
(), OverlapGraph->OverlapGraph().
Comm
()),
63
DropTol_
(
DropTol
),
64
FillTol_
(
FillTol
)
65
{
66
}
67
//==============================================================================
68
Ifpack_CrsIlut::Ifpack_CrsIlut
(
const
Epetra_RowMatrix
* UserMatrix,
double
DropTol
,
69
double
FillTol
)
70
:
Epetra_Object
(
"Ifpack::CrsIlut"
),
71
Epetra_CompObject
(),
72
Ifpack_OverlapFactorObject
(UserMatrix),
73
Ifpack_OverlapSolveObject
(
Epetra_Object
::
Label
(), UserMatrix->
Comm
()),
74
DropTol_
(
DropTol
),
75
FillTol_
(
FillTol
)
76
{
77
}
78
//==============================================================================
79
Ifpack_CrsIlut::Ifpack_CrsIlut
(
const
Ifpack_CrsIlut
& Source)
80
:
Epetra_Object
(Source),
81
Epetra_CompObject
(Source),
82
Ifpack_OverlapFactorObject
(Source),
83
Ifpack_OverlapSolveObject
(Source),
84
DropTol_
(Source.
DropTol_
),
85
FillTol_
(Source.
FillTol_
)
86
{
87
}
88
89
//==========================================================================
90
int
Ifpack_CrsIlut::SetParameters
(
const
Teuchos::ParameterList& parameterlist,
91
bool
cerr_warning_if_unused)
92
{
93
Ifpack::param_struct
params;
94
params.
double_params
[Ifpack::fill_tolerance] =
FillTol_
;
95
params.
double_params
[Ifpack::drop_tolerance] =
DropTol_
;
96
97
Ifpack::set_parameters
(parameterlist, params, cerr_warning_if_unused);
98
99
FillTol_
= params.
double_params
[Ifpack::fill_tolerance];
100
Droptol_ = params.
double_params
[Ifpack::drop_tolerance];
101
102
return
(0);
103
}
104
105
//==============================================================================
106
int
Ifpack_CrsIlut::ProcessOverlapMatrix
(
const
Epetra_RowMatrix
&A)
107
{
108
109
return
(0);
110
}
111
//==============================================================================
112
int
Ifpack_CrsIlut::DerivedFactor
()
113
{
114
115
return
(0);
116
}
Epetra_Comm.h
Epetra_CrsGraph.h
Epetra_CrsMatrix.h
Epetra_Map.h
Epetra_MultiVector.h
Epetra_RowMatrix.h
Epetra_VbrMatrix.h
Epetra_Vector.h
Ifpack_CrsIlut.h
Epetra_CompObject::Epetra_CompObject
Epetra_CompObject()
Epetra_Object::Label
virtual const char * Label() const
Epetra_Object::Epetra_Object
Epetra_Object(int TracebackModeIn=-1, bool set_label=true)
Epetra_RowMatrix
Ifpack_CrsIlut::FillTol_
double FillTol_
Definition
Ifpack_CrsIlut.h:136
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::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
Ifpack_OverlapSolveObject::Comm
const Epetra_Comm & Comm() const
Returns the Epetra_BlockMap object associated with the range of this matrix operator.
Definition
Ifpack_OverlapSolveObject.h:215
ifp_parameters.h
Ifpack::set_parameters
void set_parameters(const Teuchos::ParameterList ¶meterlist, param_struct ¶ms, bool cerr_warning_if_unused)
Definition
ifp_parameters.cpp:99
Ifpack::param_struct
Definition
ifp_parameters.h:82
Ifpack::param_struct::double_params
double double_params[FIRST_INT_PARAM]
Definition
ifp_parameters.h:84
Generated by
1.17.0