Ifpack2 Templated Preconditioning Package Version 1.0
Loading...
Searching...
No Matches
Ifpack2_Details_Filu_decl.hpp
1// @HEADER
2// *****************************************************************************
3// Ifpack2: Templated Object-Oriented Algebraic Preconditioner Package
4//
5// Copyright 2009 NTESS and the Ifpack2 contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
11
12#ifndef __IFPACK2_FILU_DECL_HPP__
13#define __IFPACK2_FILU_DECL_HPP__
14
15#include <Ifpack2_Details_FastILU_Base.hpp>
16
17//forward-declare the local preconditioner type
18template<typename LocalOrdinal, typename Scalar, typename execution_space, bool BlockCrsEnabled>
19class FastILUPrec;
20
21namespace Ifpack2
22{
23namespace Details
24{
25
28template<typename Scalar, typename LocalOrdinal, typename GlobalOrdinal, typename Node, bool BlockCrsEnabled>
29class Filu : public FastILU_Base<Scalar, LocalOrdinal, GlobalOrdinal, Node>
30{
31 public:
33 typedef typename Base::TRowMatrix TRowMatrix;
34 typedef typename Base::ImplScalar ImplScalar;
35 typedef typename Base::ImplScalarArray ImplScalarArray;
36 typedef FastILUPrec<LocalOrdinal, ImplScalar, typename Base::execution_space, BlockCrsEnabled> LocalFILU;
37
39 Filu(Teuchos::RCP<const TRowMatrix> mat_);
40
42 int getSweeps() const;
43
45 std::string getSpTrsvType() const;
46
48 int getNTrisol() const;
49
51 void checkLocalILU() const;
52
54 void checkLocalIC() const;
55
56 protected:
57 mutable Teuchos::RCP<LocalFILU> localPrec_;
58
59 void initLocalPrec();
60 //compute() takes A's local values
61 void computeLocalPrec();
62 void applyLocalPrec(ImplScalarArray x, ImplScalarArray y) const;
63 std::string getName() const;
64};
65
66} //namespace Details
67} //namespace Ifpack2
68
69#endif
70
Tpetra::MultiVector< Scalar, LocalOrdinal, GlobalOrdinal, Node >::impl_scalar_type ImplScalar
Kokkos scalar type.
Definition Ifpack2_Details_FastILU_Base_decl.hpp:48
Tpetra::RowMatrix< Scalar, LocalOrdinal, GlobalOrdinal, Node > TRowMatrix
Tpetra row matrix.
Definition Ifpack2_Details_FastILU_Base_decl.hpp:50
FastILU_Base(Teuchos::RCP< const TRowMatrix > mat_)
Constructor.
Definition Ifpack2_Details_FastILU_Base_def.hpp:31
Kokkos::View< ImplScalar *, execution_space > ImplScalarArray
Array of Scalar on device.
Definition Ifpack2_Details_FastILU_Base_decl.hpp:62
std::string getName() const
Get the name of the underlying preconditioner ("Filu", "Fildl" or "Fic").
Definition Ifpack2_Details_Filu_def.hpp:117
void checkLocalIC() const
Verify and print debug info about the internal IC preconditioner.
Definition Ifpack2_Details_Filu_def.hpp:61
int getNTrisol() const
Get the number of triangular solves ("nTrisol") from localPrec_.
Definition Ifpack2_Details_Filu_def.hpp:47
void initLocalPrec()
Construct the underlying preconditioner (localPrec_) using given params and then call localPrec_->ini...
Definition Ifpack2_Details_Filu_def.hpp:68
void computeLocalPrec()
Get values array from the matrix and then call compute() on the underlying preconditioner.
Definition Ifpack2_Details_Filu_def.hpp:97
int getSweeps() const
Get the sweeps ("nFact") from localPrec_.
Definition Ifpack2_Details_Filu_def.hpp:33
std::string getSpTrsvType() const
Get the name of triangular solve algorithm.
Definition Ifpack2_Details_Filu_def.hpp:40
void checkLocalILU() const
Verify and print debug info about the internal ILU preconditioner.
Definition Ifpack2_Details_Filu_def.hpp:54
Filu(Teuchos::RCP< const TRowMatrix > mat_)
Constructor.
Definition Ifpack2_Details_Filu_def.hpp:28
void applyLocalPrec(ImplScalarArray x, ImplScalarArray y) const
Apply the local preconditioner with 1-D views of the local parts of X and Y (one vector only).
Definition Ifpack2_Details_Filu_def.hpp:107
Preconditioners and smoothers for Tpetra sparse matrices.
Definition Ifpack2_AdditiveSchwarz_decl.hpp:41