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

ILU preconditioner based on levels. More...

#include <preconditioner.hpp>

Inheritance diagram for paralution::ILU< OperatorType, VectorType, ValueType >:
paralution::Preconditioner< OperatorType, VectorType, ValueType > paralution::Solver< OperatorType, VectorType, ValueType > paralution::ParalutionObj

Public Member Functions

 ILU ()
 
virtual ~ILU ()
 
virtual void Print (void) const
 Print information about the solver. More...
 
virtual void Solve (const VectorType &rhs, VectorType *x)
 Solve Operator x = rhs. More...
 
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 Sparse Linear Algebra for Multi-core and Many-core Platforms - Parallel Solvers and Preconditioners", PhD Thesis, 2012, KIT) level==true build the structure based on levels; level==false build the structure only based on the power(p+1) 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 SolveZeroSol (const VectorType &rhs, VectorType *x)
 Solve Operator x = rhs; but set first the init x = 0. 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 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...
 
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...
 

Protected Member Functions

virtual void MoveToHostLocalData_ (void)
 Move all local data to the host. More...
 
virtual void MoveToAcceleratorLocalData_ (void)
 Move all local data to the accelerator. 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...
 

Protected Attributes

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

OperatorType ILU_
 
int p_
 
bool level_
 

Detailed Description

template<class OperatorType, class VectorType, typename ValueType>
class paralution::ILU< OperatorType, VectorType, ValueType >

ILU preconditioner based on levels.

Constructor & Destructor Documentation

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

Member Function Documentation

template<class OperatorType , class VectorType , typename ValueType >
void paralution::ILU< OperatorType, VectorType, ValueType >::Build ( void  )
virtual

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

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

template<class OperatorType , class VectorType , typename ValueType >
void paralution::ILU< OperatorType, VectorType, ValueType >::Clear ( void  )
virtual

Clear (free all local data) the solver.

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

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::ILU< OperatorType, VectorType, ValueType >::MoveToAcceleratorLocalData_ ( void  )
protectedvirtual

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::ILU< OperatorType, VectorType, ValueType >::MoveToHostLocalData_ ( void  )
protectedvirtual

Move all local data to the host.

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

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

Print information about the solver.

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

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

Print ending msg of the solver.

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

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

Print starting msg of the solver.

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

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::Solver< OperatorType, VectorType, ValueType >::ResetOperator ( const OperatorType &  op)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::ILU< OperatorType, VectorType, ValueType >::Set ( const int  p,
const bool  level = true 
)
virtual

Initialize ILU(p) factorization based on power (see power(q)-pattern method, D. Lukarski "Parallel Sparse Linear Algebra for Multi-core and Many-core Platforms - Parallel Solvers and Preconditioners", PhD Thesis, 2012, KIT) level==true build the structure based on levels; level==false build the structure only based on the power(p+1)

Referenced by paralution_fortran_solve().

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::ILU< OperatorType, VectorType, ValueType >::Solve ( const VectorType &  rhs,
VectorType *  x 
)
virtual
template<class OperatorType , class VectorType, typename ValueType >
void paralution::Preconditioner< OperatorType, VectorType, ValueType >::SolveZeroSol ( const VectorType &  rhs,
VectorType *  x 
)
virtualinherited

Solve Operator x = rhs; but set first the init x = 0.

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

template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::Verbose ( const int  verb = 1)
virtualinherited

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())

size_t paralution::ParalutionObj::global_obj_id
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
OperatorType paralution::ILU< OperatorType, VectorType, ValueType >::ILU_
private
template<class OperatorType, class VectorType, typename ValueType>
bool paralution::ILU< OperatorType, VectorType, ValueType >::level_
private
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>
int paralution::ILU< OperatorType, VectorType, ValueType >::p_
private
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>
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: