1 #ifndef PARALUTION_PRECONDITIONER_HPP_
2 #define PARALUTION_PRECONDITIONER_HPP_
4 #include "../solver.hpp"
9 template <
class OperatorType,
class VectorType,
typename ValueType>
29 template <
class OperatorType,
class VectorType,
typename ValueType>
37 virtual void Print(
void)
const;
38 virtual void Solve(
const VectorType &rhs,
40 virtual void Build(
void);
41 virtual void Clear(
void);
58 template <
class OperatorType,
class VectorType,
typename ValueType>
66 virtual void Print(
void)
const;
67 virtual void Solve(
const VectorType &rhs,
69 virtual void Build(
void);
70 virtual void Clear(
void);
87 template <
class OperatorType,
class VectorType,
typename ValueType>
95 virtual void Print(
void)
const;
96 virtual void Solve(
const VectorType &rhs,
98 virtual void Build(
void);
99 virtual void Clear(
void);
119 template <
class OperatorType,
class VectorType,
typename ValueType>
127 virtual void Print(
void)
const;
128 virtual void Solve(
const VectorType &rhs,
136 virtual void Set(
const int p,
const bool level=
true);
137 virtual void Build(
void);
138 virtual void Clear(
void);
157 template <
class OperatorType,
class VectorType,
typename ValueType>
165 virtual void Print(
void)
const;
166 virtual void Solve(
const VectorType &rhs,
170 virtual void Set(
const double t);
173 virtual void Set(
const double t,
const int maxrow);
175 virtual void Build(
void);
176 virtual void Clear(
void);
194 template <
class OperatorType,
class VectorType,
typename ValueType>
202 virtual void Print(
void)
const;
203 virtual void Solve(
const VectorType &rhs,
205 virtual void Build(
void);
206 virtual void Clear(
void);
225 #endif // PARALUTION_PRECONDITIONER_HPP_
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: preconditioner.cpp:79
OperatorType ILU_
Definition: preconditioner.hpp:149
virtual ~SGS()
Definition: preconditioner.cpp:317
virtual void Print(void) const
Print information about the solver.
Definition: preconditioner.cpp:199
virtual void Print(void) const
Print information about the solver.
Definition: preconditioner.cpp:485
virtual ~GS()
Definition: preconditioner.cpp:189
OperatorType SGS_
Definition: preconditioner.hpp:111
virtual void Solve(const VectorType &rhs, VectorType *x)
Solve Operator x = rhs.
Definition: preconditioner.cpp:839
virtual void Print(void) const
Print information about the solver.
Definition: preconditioner.cpp:762
VectorType inv_diag_entries_
Definition: preconditioner.hpp:53
Incomplete Cholesky with no fill-ins IC0.
Definition: preconditioner.hpp:195
virtual ~Jacobi()
Definition: preconditioner.cpp:62
virtual void MoveToAcceleratorLocalData_(void)
Move all local data to the accelerator.
Definition: preconditioner.cpp:708
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: preconditioner.cpp:391
Definition: preconditioner.hpp:30
Jacobi()
Definition: preconditioner.cpp:54
virtual ~IC()
Definition: preconditioner.cpp:752
VectorType diag_entries_
Definition: preconditioner.hpp:113
virtual void SolveZeroSol(const VectorType &rhs, VectorType *x)
Solve Operator x = rhs; but set first the init x = 0.
Definition: preconditioner.cpp:42
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: preconditioner.cpp:774
virtual void MoveToHostLocalData_(void)
Move all local data to the host.
Definition: preconditioner.cpp:698
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: preconditioner.cpp:206
Preconditioner()
Definition: preconditioner.cpp:16
virtual void ResetOperator(const OperatorType &op)
Reset the operator; see ReBuildNumeric.
Definition: preconditioner.cpp:232
virtual void MoveToHostLocalData_(void)
Move all local data to the host.
Definition: preconditioner.cpp:816
double t_
Definition: preconditioner.hpp:188
OperatorType IC_
Definition: preconditioner.hpp:217
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: preconditioner.cpp:512
virtual void MoveToAcceleratorLocalData_(void)
Move all local data to the accelerator.
Definition: preconditioner.cpp:167
virtual void Print(void) const
Print information about the solver.
Definition: preconditioner.cpp:619
ILUT(t,m) preconditioner based on threshold and maximum number of elements per row.
Definition: preconditioner.hpp:158
int p_
Definition: preconditioner.hpp:150
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: preconditioner.cpp:119
virtual ~ILUT()
Definition: preconditioner.cpp:609
virtual void MoveToAcceleratorLocalData_(void)
Move all local data to the accelerator.
Definition: preconditioner.cpp:562
virtual void ResetOperator(const OperatorType &op)
Reset the operator; see ReBuildNumeric.
Definition: preconditioner.cpp:104
GS()
Definition: preconditioner.cpp:181
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: preconditioner.cpp:660
virtual void PrintStart_(void) const
Print starting msg of the solver.
Definition: preconditioner.cpp:32
virtual void MoveToHostLocalData_(void)
Move all local data to the host.
Definition: preconditioner.cpp:551
virtual void Solve(const VectorType &rhs, VectorType *x)
Solve Operator x = rhs.
Definition: preconditioner.cpp:574
virtual ~Preconditioner()
Definition: preconditioner.cpp:24
virtual void Solve(const VectorType &rhs, VectorType *x)
Solve Operator x = rhs.
Definition: preconditioner.cpp:719
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: preconditioner.cpp:334
virtual void Solve(const VectorType &rhs, VectorType *x)
Solve Operator x = rhs.
Definition: preconditioner.cpp:408
bool level_
Definition: preconditioner.hpp:151
Base preconditioner class.
Definition: preconditioner.hpp:10
virtual void MoveToAcceleratorLocalData_(void)
Move all local data to the accelerator.
Definition: preconditioner.cpp:443
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: preconditioner.cpp:803
virtual void PrintEnd_(void) const
Print ending msg of the solver.
Definition: preconditioner.cpp:37
SGS()
Definition: preconditioner.cpp:309
virtual void Solve(const VectorType &rhs, VectorType *x)
Solve Operator x = rhs.
Definition: preconditioner.cpp:130
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: preconditioner.cpp:539
Gauss-Seidel (GS) preconditioner.
Definition: preconditioner.hpp:59
virtual void MoveToAcceleratorLocalData_(void)
Move all local data to the accelerator.
Definition: preconditioner.cpp:827
virtual void Print(void) const
Print information about the solver.
Definition: preconditioner.cpp:327
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: preconditioner.cpp:686
VectorType v_
Definition: preconditioner.hpp:114
IC()
Definition: preconditioner.cpp:744
Definition: backend_manager.cpp:43
ILU()
Definition: preconditioner.cpp:464
virtual ~ILU()
Definition: preconditioner.cpp:475
const IndexType const IndexType const IndexType const ValueType const ValueType const ValueType * x
Definition: cuda_kernels_coo.hpp:91
OperatorType ILUT_
Definition: preconditioner.hpp:187
virtual void MoveToHostLocalData_(void)
Move all local data to the host.
Definition: preconditioner.cpp:280
OperatorType GS_
Definition: preconditioner.hpp:82
The base class for all solvers and preconditioners.
Definition: solver.hpp:12
virtual void MoveToHostLocalData_(void)
Move all local data to the host.
Definition: preconditioner.cpp:157
Symmetric Gauss-Seidel (SGS) preconditioner.
Definition: preconditioner.hpp:88
virtual void Set(const int p, const bool level=true)
Initialize ILU(p) factorization based on power (see power(q)-pattern method, D. Lukarski "Parallel Sp...
Definition: preconditioner.cpp:496
ILUT()
Definition: preconditioner.cpp:597
virtual void Set(const double t)
ILUT with threshold.
Definition: preconditioner.cpp:630
ILU preconditioner based on levels.
Definition: preconditioner.hpp:120
virtual void ResetOperator(const OperatorType &op)
Reset the operator; see ReBuildNumeric.
Definition: preconditioner.cpp:366
VectorType inv_diag_entries_
Definition: preconditioner.hpp:218
virtual void Solve(const VectorType &rhs, VectorType *x)
Solve Operator x = rhs.
Definition: preconditioner.cpp:262
int max_row_
Definition: preconditioner.hpp:189
virtual void MoveToAcceleratorLocalData_(void)
Move all local data to the accelerator.
Definition: preconditioner.cpp:292
virtual void MoveToHostLocalData_(void)
Move all local data to the host.
Definition: preconditioner.cpp:428
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: preconditioner.cpp:248
virtual void Print(void) const
Print information about the solver.
Definition: preconditioner.cpp:72