1 #ifndef PARALUTION_BASE_AMG_HPP_
2 #define PARALUTION_BASE_AMG_HPP_
4 #include "../solver.hpp"
11 template <
class OperatorType,
class VectorType,
typename ValueType>
19 virtual void Build(
void);
20 virtual void Clear(
void);
55 virtual void Aggregate(
const OperatorType &op,
58 OperatorType *coarse) = 0;
84 #endif // PARALUTION_BASE_AMG_HPP_
virtual void SetOperatorFormat(const unsigned int op_format)
Sets the operator format.
Definition: base_amg.cpp:101
virtual void BuildHierarchy(void)
Creates AMG hierarchy.
Definition: base_amg.cpp:256
int coarse_size_
maximal coarse grid size
Definition: base_amg.hpp:62
virtual void SetManualSolver(const bool s_manual)
Sets flag to pass coarse grid solver manually.
Definition: base_amg.cpp:77
bool set_s_
manual coarse grid solver or not
Definition: base_amg.hpp:69
unsigned int sm_format_
smoother operator format
Definition: base_amg.hpp:75
virtual void Aggregate(const OperatorType &op, Operator< ValueType > *pro, Operator< ValueType > *res, OperatorType *coarse)=0
Constructs the prolongation, restriction and coarse operator.
virtual void SetDefaultSmootherFormat(const unsigned int op_format)
Sets the smoother operator format.
Definition: base_amg.cpp:89
bool hierarchy_
true if hierarchy is built
Definition: base_amg.hpp:72
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: base_amg.cpp:120
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: base_amg.cpp:377
Definition: base_amg.hpp:12
virtual void SetProlongOperator(OperatorType **op)
disabled function
Definition: base_amg.cpp:472
virtual void SetOperatorHierarchy(OperatorType **op)
disabled function
Definition: base_amg.cpp:480
BaseAMG()
Definition: base_amg.cpp:17
Operator class defines the generic interface for applying an operator (e.g. matrix, stencil) from/to global and local vectors.
Definition: operator.hpp:19
Definition: backend_manager.cpp:43
virtual void BuildSmoothers(void)
Creates AMG smoothers.
Definition: base_amg.cpp:345
virtual void SetManualSmoothers(const bool sm_manual)
Sets flag to pass smoothers manually for each level.
Definition: base_amg.cpp:65
bool set_sm_
manual smoother or not
Definition: base_amg.hpp:65
The base class for all solvers and preconditioners.
Definition: solver.hpp:12
virtual ~BaseAMG()
Definition: base_amg.cpp:42
Definition: base_multigrid.hpp:17
virtual int GetNumLevels()
Returns the number of levels in hierarchy.
Definition: base_amg.cpp:111
unsigned int op_format_
operator format
Definition: base_amg.hpp:77
virtual void ClearLocal(void)
Definition: base_amg.cpp:460
Solver< OperatorType, VectorType, ValueType > ** sm_default_
Definition: base_amg.hpp:66
virtual void SetRestrictOperator(OperatorType **op)
disabled function
Definition: base_amg.cpp:464
virtual void SetCoarsestLevel(const int coarseSize)
Sets coarsest level for hierarchy creation.
Definition: base_amg.cpp:52