1 #ifndef PARALUTION_PRECONDITIONER_MULTICOLORED_ILU_HPP_
2 #define PARALUTION_PRECONDITIONER_MULTICOLORED_ILU_HPP_
4 #include "../solver.hpp"
7 #include "../../base/local_vector.hpp"
16 template <
class OperatorType,
class VectorType,
typename ValueType>
24 virtual void Print(
void)
const;
29 virtual void Set(
const int p);
34 virtual void Set(
const int p,
const int q,
const bool level=
true);
45 virtual void Solve_(
const VectorType &rhs,
58 #endif // PARALUTION_PRECONDITIONER_MULTICOLORED_ILU_HPP_
virtual void Set(const int p)
Initialize a multi-colored ILU(p,p+1) preconditioner.
Definition: preconditioner_multicolored_ilu.cpp:52
virtual void Print(void) const
Print information about the solver.
Definition: preconditioner_multicolored_ilu.cpp:41
virtual void Build_Analyser_(void)
Build the analyzing matrix.
Definition: preconditioner_multicolored_ilu.cpp:84
virtual void SolveR_(void)
Solve the upper-trianguler (right) matrix.
Definition: preconditioner_multicolored_ilu.cpp:215
int nnz_
Definition: preconditioner_multicolored_ilu.hpp:51
virtual void PostAnalyse_(void)
Post-analyzing if the preconditioner is not decomposed.
Definition: preconditioner_multicolored_ilu.cpp:112
int p_
Definition: preconditioner_multicolored_ilu.hpp:49
MultiColoredILU()
Definition: preconditioner_multicolored_ilu.cpp:18
virtual void SolveL_(void)
Solve the lower-triangular (left) matrix.
Definition: preconditioner_multicolored_ilu.cpp:192
virtual ~MultiColoredILU()
Definition: preconditioner_multicolored_ilu.cpp:31
virtual void Solve_(const VectorType &rhs, VectorType *x)
Solve directly without block decomposition.
Definition: preconditioner_multicolored_ilu.cpp:237
virtual void Factorize_(void)
Factorize (i.e. build the preconditioner)
Definition: preconditioner_multicolored_ilu.cpp:123
Definition: backend_manager.cpp:43
const IndexType const IndexType const IndexType const ValueType const ValueType const ValueType * x
Definition: cuda_kernels_coo.hpp:91
virtual void SolveD_(void)
Solve the diagonal part (only for SGS)
Definition: preconditioner_multicolored_ilu.cpp:211
virtual void ReBuildNumeric(void)
Rebuild only with numerical computation (no allocation or data structure computation) ...
Definition: preconditioner_multicolored_ilu.cpp:135
bool level_
Definition: preconditioner_multicolored_ilu.hpp:50
int q_
Definition: preconditioner_multicolored_ilu.hpp:48
ILU(p,q) preconditioner (see power(q)-pattern method, D. Lukarski "Parallel Sparse Linear Algebra fo...
Definition: preconditioner_multicolored_ilu.hpp:17
Definition: preconditioner_multicolored.hpp:13