ViennaCL - The Vienna Computing Library  1.7.1
Free open-source GPU-accelerated linear algebra and solver library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ilu0.hpp File Reference

Implementations of incomplete factorization preconditioners with static nonzero pattern. More...

#include <vector>
#include <cmath>
#include <iostream>
#include "viennacl/forwards.h"
#include "viennacl/tools/tools.hpp"
#include "viennacl/linalg/detail/ilu/common.hpp"
#include "viennacl/compressed_matrix.hpp"
#include "viennacl/backend/memory.hpp"
#include "viennacl/linalg/host_based/common.hpp"
#include <map>

Go to the source code of this file.

Classes

class  viennacl::linalg::ilu0_tag
 A tag for incomplete LU factorization with static pattern (ILU0) More...
 
class  viennacl::linalg::ilu0_precond< MatrixT >
 ILU0 preconditioner class, can be supplied to solve()-routines. More...
 
class  viennacl::linalg::ilu0_precond< viennacl::compressed_matrix< NumericT, AlignmentV > >
 ILU0 preconditioner class, can be supplied to solve()-routines. More...
 

Namespaces

 viennacl
 Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
 
 viennacl::linalg
 Provides all linear algebra operations which are not covered by operator overloads.
 

Functions

template<typename NumericT >
void viennacl::linalg::precondition (viennacl::compressed_matrix< NumericT > &A, ilu0_tag const &)
 Implementation of a ILU-preconditioner with static pattern. Optimized version for CSR matrices. More...
 

Detailed Description

Implementations of incomplete factorization preconditioners with static nonzero pattern.

Contributed by Evan Bollig.

ILU0 (Incomplete LU with zero fill-in)

  • All preconditioner nonzeros exist at locations that were nonzero in the input matrix.
  • The number of nonzeros in the output preconditioner are exactly the same number as the input matrix

Evan Bollig 3/30/12

Adapted from viennacl/linalg/detail/ilut.hpp

Low-level reimplementation by Karl Rupp in Nov 2012, increasing performance substantially. Also added level-scheduling.

Definition in file ilu0.hpp.