PARALUTION  1.0.0
PARALUTION
paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL > Class Template Reference

#include <ampe_sira.hpp>

Inheritance diagram for paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >:
paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH > paralution::ParalutionObj

Public Member Functions

 SIRA ()
 
virtual ~SIRA ()
 
virtual void Print (void) const
 Print information about the solver. More...
 
virtual void Build (void)
 Build the solver (data allocation, structure computation, numerical computation) More...
 
virtual void SetNumberOfEigenvalues (const int num)
 
virtual void Clear (void)
 Clear (free all local data) the solver. More...
 
virtual void Init (ValueTypeH abs_tol, int MaxOuterIter, int MaxInnerIter)
 Initialize the solver with abs_tol tolerance and number of maximum outer iteration. The maximum number of inner iteration would be default : MaxInnerIter = 0 dim*MaxInnerIter: 0 < MaxInnerIter <= 1 MaxInnerIter : 1 < MaxInnerIter. More...
 
virtual void SetInnerStoppingCriterion (const int n)
 Set the stopping criteria of inner linear solver where 0: constant tolerance 1: H.N. stopping criteria. More...
 
virtual void SetInnerPreconditioner (Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > &p)
 Set the inner solver's preocnditioner. More...
 
virtual void SetInnerPreconditioner (Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > &p1, Preconditioner< LocalMatrix< ValueTypeL >, LocalVector< ValueTypeL >, ValueTypeL > &p2)
 Set the inner solver's preocnditioner. More...
 
virtual void SetInnerPreconditioner (int a)
 Disable the preconditioner when a == 0. More...
 
virtual void Solve (const VectorTypeH &vec_start, VectorTypeH *vec_ans)
 Solve the eigenvalue with initial vector vec_start. More...
 
virtual void Solve (VectorTypeH *x)
 Solver the eigenvalue with random initial. 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...
 
void RecordResidualHistory (void)
 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...
 
template<>
void Clear (void)
 Clear (free all local data) the solver. More...
 
template<>
void Clear (void)
 Clear (free all local data) the solver. More...
 
template<>
void SetInnerStoppingCriterion (const int n)
 
template<>
void SetInnerStoppingCriterion (const int n)
 
void SetOperator (const OperatorTypeH &op)
 Set the Operator of the solver. More...
 
virtual void ResetOperator (const OperatorTypeH &op)
 Reset the operator; see ReBuildNumeric. More...
 
virtual void SolveZeroSol (const VectorTypeH &rhs, VectorTypeH *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 Inner ()
 Solve the inner linear solver. More...
 
virtual void MvOrthogonalize (OperatorTypeH *mat, VectorTypeH *vec, const int dim)
 Orthogonalize vector to a orthogonal matrix. More...
 
virtual void Locking ()
 Orthogonalize subspace to eigenspace. More...
 
virtual void Restart ()
 Perform Subspace restrating. More...
 
virtual void Givens (ValueTypeH &c, ValueTypeH &s, ValueTypeH &a, ValueTypeH &b)
 Givens rotation. More...
 
virtual void Eigpair (ValueTypeH &theta_k_)
 Solve the eigenpair of small dense matrix. More...
 
virtual void Init (const ValueTypeH abs_tol, const ValueTypeH rel_tol, const ValueTypeH div_tol, const int max_iter)
 
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 MoveToHostLocalData_ (void)
 Move all local data to the host. More...
 
virtual void MoveToAcceleratorLocalData_ (void)
 Move all local data to the accelerator. More...
 
virtual void Build_ (void)
 
template<>
void Build_ (void)
 
template<>
void Build_ (void)
 
template<>
void Inner ()
 
template<>
void Inner ()
 

Protected Attributes

Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > * p_inner_h_
 Preconditioner for inner linear solver. More...
 
Preconditioner< LocalMatrix< ValueTypeL >, LocalVector< ValueTypeL >, ValueTypeL > * p_inner_l_
 
FSAI< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > * p_fsai_h_
 
FSAI< LocalMatrix< ValueTypeL >, LocalVector< ValueTypeL >, ValueTypeL > * p_fsai_l_
 
CG< OperatorTypeH, VectorTypeH, ValueTypeH > * inner_cg_h_
 Inner linear solver. More...
 
CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH > * inner_cg_hn_h_
 
CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL > * inner_cg_hn_l_
 
IterationControl iter_ctrl_
 Iteration control (monitor) More...
 
const OperatorTypeH * op_
 Pointer to the operator. More...
 
Solver< OperatorTypeH, VectorTypeH, ValueTypeH > * 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

int dim_
 
int nnz_
 
int MaxSubDim_
 
int SubDim_
 
int DoubleFlag_
 
int StoppingCriterionFlag_
 
int target_num_
 
int solved_num_
 
int single_count_
 
int double_count_
 
int PrecondFlag_
 
int MaxInnerIter_
 
ValueTypeH target_
 
ValueTypeH theta_k_
 
ValueTypeH r_out_norm_
 
OperatorTypeH * op_h_
 
OperatorTypeL * op_l_
 
OperatorTypeH V_
 
OperatorTypeH AV_
 
OperatorTypeH VtAV_
 
OperatorTypeH EigVecs_
 
VectorTypeH tmpUpdateVector_
 
VectorTypeH s_out_
 
VectorTypeH Au_
 
VectorTypeH r_out_
 
VectorTypeL r_out_single_
 
VectorTypeH t_out_
 
VectorTypeL t_out_single_
 
VectorTypeH u_k_
 
VectorTypeL u_k_single_
 

Constructor & Destructor Documentation

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SIRA ( )
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::~SIRA ( )
virtual

Member Function Documentation

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Build ( void  )
virtual

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

Reimplemented from paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

Referenced by main().

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
virtual void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Build_ ( void  )
protectedvirtual
template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< float >, LocalVector< float >, float >::Build_ ( void  )
protected
template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< double >, LocalVector< double >, double >::Build_ ( void  )
protected
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
virtual void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Clear ( void  )
virtual

Clear (free all local data) the solver.

Reimplemented from paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

Referenced by main().

template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< float >, LocalVector< float >, float >::Clear ( void  )
virtual

Clear (free all local data) the solver.

Reimplemented from paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< double >, LocalVector< double >, double >::Clear ( void  )
virtual

Clear (free all local data) the solver.

Reimplemented from paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Eigpair ( ValueTypeH &  theta_k_)
protectedvirtual

Solve the eigenpair of small dense matrix.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
double paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::GetCurrentResidual ( void  )
virtual

Return the current residual.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::GetIterationCount ( void  )
virtual

Return the iteration count.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::GetSolverStatus ( void  )
virtual

Return the current status.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Givens ( ValueTypeH &  c,
ValueTypeH &  s,
ValueTypeH &  a,
ValueTypeH &  b 
)
protectedvirtual

Givens rotation.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Init ( ValueTypeH  abs_tol,
int  MaxOuterIter,
int  MaxInnerIter 
)
virtual

Initialize the solver with abs_tol tolerance and number of maximum outer iteration. The maximum number of inner iteration would be default : MaxInnerIter = 0 dim*MaxInnerIter: 0 < MaxInnerIter <= 1 MaxInnerIter : 1 < MaxInnerIter.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Init ( const ValueTypeH  abs_tol,
const ValueTypeH  rel_tol,
const ValueTypeH  div_tol,
const int  max_iter 
)
protectedvirtual
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
virtual void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Inner ( )
protectedvirtual

Solve the inner linear solver.

template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< float >, LocalVector< float >, float >::Inner ( )
protected
template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< double >, LocalVector< double >, double >::Inner ( )
protected
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Locking ( )
protectedvirtual

Orthogonalize subspace to eigenspace.

virtual void paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::MoveToAccelerator ( void  )
virtualinherited

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

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::MoveToAcceleratorLocalData_ ( void  )
protectedvirtual

Move all local data to the accelerator.

Implements paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

virtual void paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::MoveToHost ( void  )
virtualinherited

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

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::MoveToHostLocalData_ ( void  )
protectedvirtual

Move all local data to the host.

Implements paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::MvOrthogonalize ( OperatorTypeH *  mat,
VectorTypeH *  vec,
const int  dim 
)
protectedvirtual

Orthogonalize vector to a orthogonal matrix.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Print ( void  ) const
virtual

Print information about the solver.

Implements paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::PrintEnd_ ( void  ) const
protectedvirtual

Print ending msg of the solver.

Implements paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::PrintStart_ ( void  ) const
protectedvirtual

Print starting msg of the solver.

Implements paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

virtual void paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::ReBuildNumeric ( void  )
virtualinherited

Rebuild only with numerical computation (no allocation or data structure computation)

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::RecordResidualHistory ( void  )

Write the history to file.

virtual void paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::ResetOperator ( const OperatorTypeH &  op)
virtualinherited

Reset the operator; see ReBuildNumeric.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Restart ( )
protectedvirtual

Perform Subspace restrating.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SetInnerPreconditioner ( Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > &  p)
virtual

Set the inner solver's preocnditioner.

Referenced by main().

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SetInnerPreconditioner ( Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > &  p1,
Preconditioner< LocalMatrix< ValueTypeL >, LocalVector< ValueTypeL >, ValueTypeL > &  p2 
)
virtual

Set the inner solver's preocnditioner.

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SetInnerPreconditioner ( int  a)
virtual

Disable the preconditioner when a == 0.

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
virtual void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SetInnerStoppingCriterion ( const int  n)
virtual

Set the stopping criteria of inner linear solver where 0: constant tolerance 1: H.N. stopping criteria.

template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< float >, LocalVector< float >, float >::SetInnerStoppingCriterion ( const int  n)
template<>
void paralution::SIRA< LocalMatrix< double >, LocalVector< double >, double, LocalMatrix< double >, LocalVector< double >, double >::SetInnerStoppingCriterion ( const int  n)
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SetNumberOfEigenvalues ( const int  num)
virtual

Referenced by main().

void paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::SetOperator ( const OperatorTypeH &  op)
inherited

Set the Operator of the solver.

Referenced by main().

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Solve ( const VectorTypeH &  vec_start,
VectorTypeH *  vec_ans 
)
virtual

Solve the eigenvalue with initial vector vec_start.

Implements paralution::Solver< OperatorTypeH, VectorTypeH, ValueTypeH >.

Referenced by main().

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Solve ( VectorTypeH *  x)
virtual

Solver the eigenvalue with random initial.

virtual void paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::SolveZeroSol ( const VectorTypeH &  rhs,
VectorTypeH *  x 
)
virtualinherited

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

template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Verbose ( const int  verb = 1)
virtual

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< OperatorTypeH, VectorTypeH, ValueTypeH >.

Field Documentation

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Au_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
OperatorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::AV_
private
bool paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::build_
protectedinherited

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

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::dim_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::double_count_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::DoubleFlag_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
OperatorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::EigVecs_
private
size_t paralution::ParalutionObj::global_obj_id
protectedinherited
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
CG<OperatorTypeH, VectorTypeH, ValueTypeH >* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::inner_cg_h_
protected

Inner linear solver.

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
CG_HN<OperatorTypeH, VectorTypeH, ValueTypeH >* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::inner_cg_hn_h_
protected
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
CG_HN<OperatorTypeL, VectorTypeL, ValueTypeL >* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::inner_cg_hn_l_
protected
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
IterationControl paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::iter_ctrl_
protected

Iteration control (monitor)

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::MaxInnerIter_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::MaxSubDim_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::nnz_
private
const OperatorTypeH * paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::op_
protectedinherited

Pointer to the operator.

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
OperatorTypeH* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::op_h_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
OperatorTypeL* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::op_l_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
FSAI<LocalMatrix<ValueTypeH>, LocalVector<ValueTypeH>, ValueTypeH >* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::p_fsai_h_
protected
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
FSAI<LocalMatrix<ValueTypeL>, LocalVector<ValueTypeL>, ValueTypeL >* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::p_fsai_l_
protected
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
Preconditioner<LocalMatrix<ValueTypeH>, LocalVector<ValueTypeH>, ValueTypeH >* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::p_inner_h_
protected

Preconditioner for inner linear solver.

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
Preconditioner<LocalMatrix<ValueTypeL>, LocalVector<ValueTypeL>, ValueTypeL >* paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::p_inner_l_
protected
LocalVector<int> paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::permutation_
protectedinherited

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

Solver<OperatorTypeH , VectorTypeH , ValueTypeH >* paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::precond_
protectedinherited

Pointer to the defined preconditioner.

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::PrecondFlag_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::r_out_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
ValueTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::r_out_norm_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeL paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::r_out_single_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::s_out_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::single_count_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::solved_num_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::StoppingCriterionFlag_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SubDim_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::t_out_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeL paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::t_out_single_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
ValueTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::target_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
int paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::target_num_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
ValueTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::theta_k_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::tmpUpdateVector_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::u_k_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
VectorTypeL paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::u_k_single_
private
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
OperatorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::V_
private
int paralution::Solver< OperatorTypeH , VectorTypeH , ValueTypeH >::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;.

template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
OperatorTypeH paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::VtAV_
private

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