Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
sparse_ilu.h
1 // ---------------------------------------------------------------------
2 // @f$Id: sparse_ilu.h 30036 2013-07-18 16:55:32Z maier @f$
3 //
4 // Copyright (C) 1999 - 2013 by the deal.II authors
5 //
6 // This file is part of the deal.II library.
7 //
8 // The deal.II library is free software; you can use it, redistribute
9 // it, and/or modify it under the terms of the GNU Lesser General
10 // Public License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 // The full text of the license can be found in the file LICENSE at
13 // the top level of the deal.II distribution.
14 //
15 // ---------------------------------------------------------------------
16 
17 
18 #ifndef __deal2__sparse_ilu_h
19 #define __deal2__sparse_ilu_h
20 
21 
22 #include <deal.II/base/config.h>
23 #include <deal.II/lac/sparse_matrix.h>
24 #include <deal.II/lac/sparse_decomposition.h>
25 #include <deal.II/lac/exceptions.h>
26 
28 
58 template <typename number>
59 class SparseILU : public SparseLUDecomposition<number>
60 {
61 public:
66 
74  SparseILU ();
75 
85 
92  typedef
95 
127  template <typename somenumber>
128  void initialize (const SparseMatrix<somenumber> &matrix,
129  const AdditionalData &parameters = AdditionalData());
130 
135  template <typename somenumber>
136  void decompose (const SparseMatrix<somenumber> &matrix,
137  const double strengthen_diagonal=0.) DEAL_II_DEPRECATED;
138 
145  template <typename somenumber>
146  void apply_decomposition (Vector<somenumber> &dst,
147  const Vector<somenumber> &src) const DEAL_II_DEPRECATED;
148 
157  template <typename somenumber>
158  void vmult (Vector<somenumber> &dst,
159  const Vector<somenumber> &src) const;
160 
161 
171  template <typename somenumber>
172  void Tvmult (Vector<somenumber> &dst,
173  const Vector<somenumber> &src) const;
174 
175 
181  std::size_t memory_consumption () const;
182 
189  DeclException1 (ExcInvalidStrengthening,
190  double,
191  << "The strengthening parameter " << arg1
192  << " is not greater or equal than zero!");
194 };
195 
197 //---------------------------------------------------------------------------
198 
199 template <typename number>
200 template <typename somenumber>
201 inline
202 void
203 SparseILU<number>::apply_decomposition (Vector<somenumber> &dst,
204  const Vector<somenumber> &src) const
205 {
206  vmult (dst, src);
207 }
208 
209 
210 
211 
212 DEAL_II_NAMESPACE_CLOSE
213 
214 #endif // __deal2__sparse_ilu_h
void initialize(const SparseMatrix< somenumber > &matrix, const AdditionalData &parameters=AdditionalData())
types::global_dof_index size_type
Definition: sparse_ilu.h:65
STL namespace.
void vmult(Vector< somenumber > &dst, const Vector< somenumber > &src) const
void Tvmult(Vector< somenumber > &dst, const Vector< somenumber > &src) const
unsigned int global_dof_index
Definition: types.h:100
std::size_t memory_consumption() const
DeclException1(ExcInvalidStrengthening, double,<< "The strengthening parameter "<< arg1<< " is not greater or equal than zero!")
SparseLUDecomposition< number >::AdditionalData AdditionalData
Definition: sparse_ilu.h:94
BlockCompressedSparsityPattern CompressedBlockSparsityPattern DEAL_II_DEPRECATED
void apply_decomposition(Vector< somenumber > &dst, const Vector< somenumber > &src) const DEAL_II_DEPRECATED
Definition: sparse_ilu.h:203
void decompose(const SparseMatrix< somenumber > &matrix, const double strengthen_diagonal=0.) DEAL_II_DEPRECATED