PARALUTION  1.0.0
PARALUTION
paralution::AMG< OperatorType, VectorType, ValueType > Class Template Reference

#include <amg.hpp>

Inheritance diagram for paralution::AMG< OperatorType, VectorType, ValueType >:
paralution::BaseAMG< OperatorType, VectorType, ValueType > paralution::BaseMultiGrid< OperatorType, VectorType, ValueType > paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType > paralution::Solver< OperatorType, VectorType, ValueType > paralution::ParalutionObj

Public Member Functions

 AMG ()
 
virtual ~AMG ()
 
virtual void Print (void) const
 Print information about the solver. More...
 
virtual void BuildSmoothers (void)
 Build AMG smoothers. More...
 
virtual void SetCouplingStrength (const ValueType eps)
 Sets coupling strength. More...
 
virtual void SetInterpolation (_interp interpType)
 Sets the interpolation type. More...
 
virtual void SetInterpRelax (const ValueType relax)
 Sets the relaxation parameter for smoothed aggregation. More...
 
virtual void SetOverInterp (const ValueType overInterp)
 Sets over-interpolation parameter for aggregation. More...
 
virtual void Build (void)
 Build the solver (data allocation, structure computation, numerical computation) More...
 
virtual void Clear (void)
 Clear (free all local data) the solver. More...
 
virtual void ClearLocal (void)
 
virtual void BuildHierarchy (void)
 Creates AMG hierarchy. More...
 
virtual void SetCoarsestLevel (const int coarseSize)
 Sets coarsest level for hierarchy creation. More...
 
virtual void SetManualSmoothers (const bool sm_manual)
 Sets flag to pass smoothers manually for each level. More...
 
virtual void SetManualSolver (const bool s_manual)
 Sets flag to pass coarse grid solver manually. More...
 
virtual void SetDefaultSmootherFormat (const unsigned int op_format)
 Sets the smoother operator format. More...
 
virtual void SetOperatorFormat (const unsigned int op_format)
 Sets the operator format. More...
 
virtual int GetNumLevels ()
 Returns the number of levels in hierarchy. More...
 
virtual void SetRestrictOperator (OperatorType **op)
 disabled function More...
 
virtual void SetProlongOperator (OperatorType **op)
 disabled function More...
 
virtual void SetOperatorHierarchy (OperatorType **op)
 disabled function More...
 
virtual void SetPreconditioner (Solver< OperatorType, VectorType, ValueType > &precond)
 disabled function More...
 
virtual void SetSolver (Solver< OperatorType, VectorType, ValueType > &solver)
 Set the smoother for each level. More...
 
virtual void SetSmoother (IterativeLinearSolver< OperatorType, VectorType, ValueType > **smoother)
 Set the smoother for each level. More...
 
virtual void SetSmootherPreIter (const int iter)
 Set the number of pre-smoothing steps. More...
 
virtual void SetSmootherPostIter (const int iter)
 Set the number of post-smoothing steps. More...
 
virtual void SetScaling (const bool scaling)
 Enable/disable scaling of intergrid transfers. More...
 
virtual void SetCycle (const _cycle cycle)
 Set the MultiGrid Cycle (default: Vcycle) More...
 
virtual void SetKcycleFull (const bool kcycle_full)
 Set the MultiGrid Kcycle on all levels or only on finest level. More...
 
virtual void InitLevels (const int levels)
 Set the depth of the multigrid solver. More...
 
virtual void Solve (const VectorType &rhs, VectorType *x)
 Called by default the V-cycle. More...
 
void Init (const double abs_tol, const double rel_tol, const double div_tol, const int max_iter)
 Initialize the solver with absolute/relative/divergence tolerance and maximum number of iterations. More...
 
void Init (const double abs_tol, const double rel_tol, const double div_tol, const int min_iter, const int max_iter)
 Initialize the solver with absolute/relative/divergence tolerance and minimum/maximum number of iterations. More...
 
void InitMinIter (const int min_iter)
 Set the minimum number of iterations. More...
 
void InitMaxIter (const int max_iter)
 Set the maximum number of iterations. More...
 
void InitTol (const double abs, const double rel, const double div)
 Set the absolute/relative/divergence tolerance. More...
 
void SetResidualNorm (const int resnorm)
 Set the residual norm to L1, L2 or Inf norm resnorm == 1 L1 Norm resnorm == 2 L2 Norm (default) resnorm == 3 Inf Norm. More...
 
void RecordResidualHistory (void)
 Record the residual history. More...
 
void RecordHistory (const std::string filename) const
 Write the history to file. More...
 
virtual void Verbose (const int verb=1)
 Provide verbose output of the solver: verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;. More...
 
virtual int GetIterationCount (void)
 Return the iteration count. More...
 
virtual double GetCurrentResidual (void)
 Return the current residual. More...
 
virtual int GetSolverStatus (void)
 Return the current status. More...
 
virtual int GetAmaxResidualIndex (void)
 Return absolute maximum index of residual vector when using Linf norm. More...
 
void SetOperator (const OperatorType &op)
 Set the Operator of the solver. More...
 
virtual void ResetOperator (const OperatorType &op)
 Reset the operator; see ReBuildNumeric. More...
 
virtual void SolveZeroSol (const VectorType &rhs, VectorType *x)
 Solve Operator x = rhs; but set first the init x = 0. More...
 
virtual void ReBuildNumeric (void)
 Rebuild only with numerical computation (no allocation or data structure computation) More...
 
virtual void MoveToHost (void)
 Move all the data (i.e. move the solver) to the host. More...
 
virtual void MoveToAccelerator (void)
 Move all the data (i.e. move the solver) to the accelerator. More...
 

Protected Member Functions

virtual void Aggregate (const OperatorType &op, Operator< ValueType > *pro, Operator< ValueType > *res, OperatorType *coarse)
 Constructs the prolongation, restriction and coarse operator. More...
 
virtual void PrintStart_ (void) const
 Print starting msg of the solver. More...
 
virtual void PrintEnd_ (void) const
 Print ending msg of the solver. More...
 
virtual void Restrict_ (const VectorType &fine, VectorType *coarse, const int level)
 
virtual void Prolong_ (const VectorType &coarse, VectorType *fine, const int level)
 
void Vcycle_ (const VectorType &rhs, VectorType *x)
 
void Wcycle_ (const VectorType &rhs, VectorType *x)
 
void Fcycle_ (const VectorType &rhs, VectorType *x)
 
void Kcycle_ (const VectorType &rhs, VectorType *x)
 
virtual void SolveNonPrecond_ (const VectorType &rhs, VectorType *x)
 disabled function More...
 
virtual void SolvePrecond_ (const VectorType &rhs, VectorType *x)
 disabled function More...
 
virtual void MoveToHostLocalData_ (void)
 Move all local data to the host. More...
 
virtual void MoveToAcceleratorLocalData_ (void)
 Move all local data to the accelerator. More...
 
ValueType Norm (const VectorType &vec)
 Computes the vector norm. More...
 

Protected Attributes

int coarse_size_
 maximal coarse grid size More...
 
bool set_sm_
 manual smoother or not More...
 
Solver< OperatorType, VectorType, ValueType > ** sm_default_
 
bool set_s_
 manual coarse grid solver or not More...
 
bool hierarchy_
 true if hierarchy is built More...
 
unsigned int sm_format_
 smoother operator format More...
 
unsigned int op_format_
 operator format More...
 
int levels_
 
int current_level_
 
bool scaling_
 
int iter_pre_smooth_
 
int iter_post_smooth_
 
int cycle_
 
bool kcycle_full_
 
double res_norm_
 
OperatorType ** op_level_
 
Operator< ValueType > ** restrict_op_level_
 
Operator< ValueType > ** prolong_op_level_
 
VectorType ** d_level_
 
VectorType ** r_level_
 
VectorType ** t_level_
 
VectorType ** s_level_
 
VectorType ** p_level_
 
VectorType ** q_level_
 
VectorType ** k_level_
 
VectorType ** l_level_
 
Solver< OperatorType, VectorType, ValueType > * solver_coarse_
 
IterativeLinearSolver< OperatorType, VectorType, ValueType > ** smoother_level_
 
IterationControl iter_ctrl_
 Iteration control (monitor) More...
 
int index_
 Absolute maximum index of residual vector when using Linf norm. More...
 
const OperatorType * op_
 Pointer to the operator. More...
 
Solver< OperatorType, VectorType, ValueType > * precond_
 Pointer to the defined preconditioner. More...
 
bool build_
 Flag == true after building the solver (e.g. Build()) More...
 
LocalVector< intpermutation_
 Permutation vector (used if the solver performs permutation/re-ordering techniques) More...
 
int verb_
 Verbose flag verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;. More...
 
size_t global_obj_id
 

Private Attributes

ValueType eps_
 Coupling strength. More...
 
ValueType relax_
 Relaxation parameter for smoothed aggregation. More...
 
ValueType over_interp_
 Over-interpolation parameter for aggregation. More...
 
_interp interp_type_
 interpolation type for grid transfer operators More...
 

Constructor & Destructor Documentation

template<class OperatorType , class VectorType , typename ValueType >
paralution::AMG< OperatorType, VectorType, ValueType >::AMG ( )
template<class OperatorType , class VectorType , typename ValueType >
paralution::AMG< OperatorType, VectorType, ValueType >::~AMG ( )
virtual

Member Function Documentation

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::Aggregate ( const OperatorType &  op,
Operator< ValueType > *  pro,
Operator< ValueType > *  res,
OperatorType *  coarse 
)
protectedvirtual

Constructs the prolongation, restriction and coarse operator.

Implements paralution::BaseAMG< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::Build ( void  )
virtualinherited

Build the solver (data allocation, structure computation, numerical computation)

Reimplemented from paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::BuildHierarchy ( void  )
virtualinherited

Creates AMG hierarchy.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::BuildSmoothers ( void  )
virtual
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::Clear ( void  )
virtualinherited

Clear (free all local data) the solver.

Reimplemented from paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::ClearLocal ( void  )
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::Fcycle_ ( const VectorType &  rhs,
VectorType *  x 
)
protectedinherited
template<class OperatorType , class VectorType , typename ValueType >
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetAmaxResidualIndex ( void  )
virtualinherited

Return absolute maximum index of residual vector when using Linf norm.

template<class OperatorType , class VectorType , typename ValueType >
double paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetCurrentResidual ( void  )
virtualinherited

Return the current residual.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetIterationCount ( void  )
virtualinherited

Return the iteration count.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
int paralution::BaseAMG< OperatorType, VectorType, ValueType >::GetNumLevels ( )
virtualinherited

Returns the number of levels in hierarchy.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetSolverStatus ( void  )
virtualinherited

Return the current status.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Init ( const double  abs_tol,
const double  rel_tol,
const double  div_tol,
const int  max_iter 
)
inherited

Initialize the solver with absolute/relative/divergence tolerance and maximum number of iterations.

Referenced by paralution::BaseAMG< OperatorType, VectorType, ValueType >::Build(), main(), mexFunction(), paralution_fortran_solve(), and paralution_solve().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Init ( const double  abs_tol,
const double  rel_tol,
const double  div_tol,
const int  min_iter,
const int  max_iter 
)
inherited

Initialize the solver with absolute/relative/divergence tolerance and minimum/maximum number of iterations.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::InitLevels ( const int  levels)
virtualinherited

Set the depth of the multigrid solver.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::InitMaxIter ( const int  max_iter)
inherited

Set the maximum number of iterations.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::InitMinIter ( const int  min_iter)
inherited

Set the minimum number of iterations.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::InitTol ( const double  abs,
const double  rel,
const double  div 
)
inherited

Set the absolute/relative/divergence tolerance.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::Kcycle_ ( const VectorType &  rhs,
VectorType *  x 
)
protectedinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::MoveToAccelerator ( void  )
virtualinherited

Move all the data (i.e. move the solver) to the accelerator.

Referenced by main(), mexFunction(), and paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::MoveToAcceleratorLocalData_ ( void  )
protectedvirtualinherited

Move all local data to the accelerator.

Implements paralution::Solver< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::MoveToHost ( void  )
virtualinherited

Move all the data (i.e. move the solver) to the host.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::MoveToHostLocalData_ ( void  )
protectedvirtualinherited

Move all local data to the host.

Implements paralution::Solver< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType, typename ValueType >
ValueType paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Norm ( const VectorType &  vec)
protectedinherited

Computes the vector norm.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::Print ( void  ) const
virtual

Print information about the solver.

Reimplemented from paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::PrintEnd_ ( void  ) const
protectedvirtual

Print ending msg of the solver.

Reimplemented from paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::PrintStart_ ( void  ) const
protectedvirtual

Print starting msg of the solver.

Reimplemented from paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::Prolong_ ( const VectorType &  coarse,
VectorType *  fine,
const int  level 
)
protectedvirtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::ReBuildNumeric ( void  )
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::RecordHistory ( const std::string  filename) const
inherited

Write the history to file.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::RecordResidualHistory ( void  )
inherited

Record the residual history.

template<class OperatorType, class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::ResetOperator ( const OperatorType &  op)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::Restrict_ ( const VectorType &  fine,
VectorType *  coarse,
const int  level 
)
protectedvirtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetCoarsestLevel ( const int  coarseSize)
virtualinherited

Sets coarsest level for hierarchy creation.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::SetCouplingStrength ( const ValueType  eps)
virtual

Sets coupling strength.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetCycle ( const _cycle  cycle)
virtualinherited

Set the MultiGrid Cycle (default: Vcycle)

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetDefaultSmootherFormat ( const unsigned int  op_format)
virtualinherited

Sets the smoother operator format.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::SetInterpolation ( _interp  interpType)
virtual

Sets the interpolation type.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::SetInterpRelax ( const ValueType  relax)
virtual

Sets the relaxation parameter for smoothed aggregation.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetKcycleFull ( const bool  kcycle_full)
virtualinherited

Set the MultiGrid Kcycle on all levels or only on finest level.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetManualSmoothers ( const bool  sm_manual)
virtualinherited

Sets flag to pass smoothers manually for each level.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetManualSolver ( const bool  s_manual)
virtualinherited

Sets flag to pass coarse grid solver manually.

Referenced by main().

template<class OperatorType, class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::SetOperator ( const OperatorType &  op)
inherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetOperatorFormat ( const unsigned int  op_format)
virtualinherited

Sets the operator format.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetOperatorHierarchy ( OperatorType **  op)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::AMG< OperatorType, VectorType, ValueType >::SetOverInterp ( const ValueType  overInterp)
virtual

Sets over-interpolation parameter for aggregation.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetPreconditioner ( Solver< OperatorType, VectorType, ValueType > &  precond)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetProlongOperator ( OperatorType **  op)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::SetResidualNorm ( const int  resnorm)
inherited

Set the residual norm to L1, L2 or Inf norm resnorm == 1 L1 Norm resnorm == 2 L2 Norm (default) resnorm == 3 Inf Norm.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseAMG< OperatorType, VectorType, ValueType >::SetRestrictOperator ( OperatorType **  op)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetScaling ( const bool  scaling)
virtualinherited

Enable/disable scaling of intergrid transfers.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetSmoother ( IterativeLinearSolver< OperatorType, VectorType, ValueType > **  smoother)
virtualinherited

Set the smoother for each level.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetSmootherPostIter ( const int  iter)
virtualinherited

Set the number of post-smoothing steps.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetSmootherPreIter ( const int  iter)
virtualinherited

Set the number of pre-smoothing steps.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SetSolver ( Solver< OperatorType, VectorType, ValueType > &  solver)
virtualinherited

Set the smoother for each level.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::Solve ( const VectorType &  rhs,
VectorType *  x 
)
virtualinherited

Called by default the V-cycle.

Reimplemented from paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SolveNonPrecond_ ( const VectorType &  rhs,
VectorType *  x 
)
protectedvirtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::SolvePrecond_ ( const VectorType &  rhs,
VectorType *  x 
)
protectedvirtualinherited
template<class OperatorType , class VectorType, typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::SolveZeroSol ( const VectorType &  rhs,
VectorType *  x 
)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::Vcycle_ ( const VectorType &  rhs,
VectorType *  x 
)
protectedinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Verbose ( const int  verb = 1)
virtualinherited

Provide verbose output of the solver: verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;.

Reimplemented from paralution::Solver< OperatorType, VectorType, ValueType >.

Referenced by paralution::BaseAMG< OperatorType, VectorType, ValueType >::Build(), paralution::AMG< OperatorType, VectorType, ValueType >::BuildSmoothers(), paralution::BaseAMG< OperatorType, VectorType, ValueType >::BuildSmoothers(), main(), mexFunction(), and paralution_solve().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::Wcycle_ ( const VectorType &  rhs,
VectorType *  x 
)
protectedinherited

Field Documentation

template<class OperatorType, class VectorType, typename ValueType>
bool paralution::Solver< OperatorType, VectorType, ValueType >::build_
protectedinherited

Flag == true after building the solver (e.g. Build())

template<class OperatorType, class VectorType, typename ValueType>
int paralution::BaseAMG< OperatorType, VectorType, ValueType >::coarse_size_
protectedinherited

maximal coarse grid size

template<class OperatorType, class VectorType, typename ValueType>
int paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::current_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
int paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::cycle_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::d_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
ValueType paralution::AMG< OperatorType, VectorType, ValueType >::eps_
private

Coupling strength.

size_t paralution::ParalutionObj::global_obj_id
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
bool paralution::BaseAMG< OperatorType, VectorType, ValueType >::hierarchy_
protectedinherited

true if hierarchy is built

template<class OperatorType, class VectorType, typename ValueType>
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::index_
protectedinherited

Absolute maximum index of residual vector when using Linf norm.

template<class OperatorType, class VectorType, typename ValueType>
_interp paralution::AMG< OperatorType, VectorType, ValueType >::interp_type_
private

interpolation type for grid transfer operators

template<class OperatorType, class VectorType, typename ValueType>
IterationControl paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::iter_ctrl_
protectedinherited

Iteration control (monitor)

template<class OperatorType, class VectorType, typename ValueType>
int paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::iter_post_smooth_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
int paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::iter_pre_smooth_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::k_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
bool paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::kcycle_full_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::l_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
int paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::levels_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
const OperatorType* paralution::Solver< OperatorType, VectorType, ValueType >::op_
protectedinherited

Pointer to the operator.

template<class OperatorType, class VectorType, typename ValueType>
unsigned int paralution::BaseAMG< OperatorType, VectorType, ValueType >::op_format_
protectedinherited

operator format

template<class OperatorType, class VectorType, typename ValueType>
OperatorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::op_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
ValueType paralution::AMG< OperatorType, VectorType, ValueType >::over_interp_
private

Over-interpolation parameter for aggregation.

template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::p_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
LocalVector<int> paralution::Solver< OperatorType, VectorType, ValueType >::permutation_
protectedinherited

Permutation vector (used if the solver performs permutation/re-ordering techniques)

template<class OperatorType, class VectorType, typename ValueType>
Solver<OperatorType, VectorType, ValueType>* paralution::Solver< OperatorType, VectorType, ValueType >::precond_
protectedinherited

Pointer to the defined preconditioner.

template<class OperatorType, class VectorType, typename ValueType>
Operator<ValueType>** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::prolong_op_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::q_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::r_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
ValueType paralution::AMG< OperatorType, VectorType, ValueType >::relax_
private

Relaxation parameter for smoothed aggregation.

template<class OperatorType, class VectorType, typename ValueType>
double paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::res_norm_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
Operator<ValueType>** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::restrict_op_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::s_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
bool paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::scaling_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
bool paralution::BaseAMG< OperatorType, VectorType, ValueType >::set_s_
protectedinherited

manual coarse grid solver or not

template<class OperatorType, class VectorType, typename ValueType>
bool paralution::BaseAMG< OperatorType, VectorType, ValueType >::set_sm_
protectedinherited

manual smoother or not

template<class OperatorType, class VectorType, typename ValueType>
Solver<OperatorType, VectorType, ValueType>** paralution::BaseAMG< OperatorType, VectorType, ValueType >::sm_default_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
unsigned int paralution::BaseAMG< OperatorType, VectorType, ValueType >::sm_format_
protectedinherited

smoother operator format

template<class OperatorType, class VectorType, typename ValueType>
IterativeLinearSolver<OperatorType, VectorType, ValueType>** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::smoother_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
Solver<OperatorType, VectorType, ValueType>* paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::solver_coarse_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
VectorType** paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >::t_level_
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
int paralution::Solver< OperatorType, VectorType, ValueType >::verb_
protectedinherited

Verbose flag verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;.


The documentation for this class was generated from the following files: