OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
iluprecond.h
Go to the documentation of this file.
1 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
2 /* ******** *** SparseLib++ */
3 /* ******* ** *** *** *** v. 1.5c */
4 /* ***** *** ******** ******** */
5 /* ***** *** ******** ******** R. Pozo */
6 /* ** ******* *** ** *** *** K. Remington */
7 /* ******** ******** A. Lumsdaine */
8 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
9 /* */
10 /* */
11 /* SparseLib++ : Sparse Matrix Library */
12 /* */
13 /* National Institute of Standards and Technology */
14 /* University of Notre Dame */
15 /* Authors: R. Pozo, K. Remington, A. Lumsdaine */
16 /* */
17 /* NOTICE */
18 /* */
19 /* Permission to use, copy, modify, and distribute this software and */
20 /* its documentation for any purpose and without fee is hereby granted */
21 /* provided that the above notice appear in all copies and supporting */
22 /* documentation. */
23 /* */
24 /* Neither the Institutions (National Institute of Standards and Technology, */
25 /* University of Notre Dame) nor the Authors make any representations about */
26 /* the suitability of this software for any purpose. This software is */
27 /* provided ``as is'' without expressed or implied warranty. */
28 /* */
29 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
30 
31 #ifndef iluprecond_h
32 #define iluprecond_h
33 
34 #include "floatarray.h"
35 #include "intarray.h"
36 #include "compcol.h"
37 #include "dyncompcol.h"
38 #include "precond.h"
39 
40 namespace oofem {
45 class OOFEM_EXPORT CompCol_ILUPreconditioner : public Preconditioner
46 {
47 private:
51  int l_nz_;
52 
56  int u_nz_;
57 
58  int dim_ [ 2 ];
59 
60 public:
62  CompCol_ILUPreconditioner(const SparseMtrx & A, InputRecord & attributes);
66  virtual ~CompCol_ILUPreconditioner(void) { }
67 
68  virtual void init(const SparseMtrx &);
69 
70  void initialize(const CompCol &A);
71  void initialize(const DynCompCol &A);
72 
73  void solve(const FloatArray &x, FloatArray &y) const;
74  void trans_solve(const FloatArray &x, FloatArray &y) const;
75 
76  virtual const char *giveClassName() const { return "ILU"; }
77  virtual IRResultType initializeFrom(InputRecord *ir);
78 
79 protected:
80  void qsortRow(IntArray &, FloatArray &, int l, int r);
81  int qsortRowPartition(IntArray &, FloatArray &, int l, int r);
82 };
83 } // end namespace oofem
84 #endif // iluprecond_h
Implemantation of ILU (Incomplete LU) Preconditioner.
Definition: iluprecond.h:45
Base class for all matrices stored in sparse format.
Definition: sparsemtrx.h:60
Class implementing an array of integers.
Definition: intarray.h:61
virtual ~CompCol_ILUPreconditioner(void)
Destructor.
Definition: iluprecond.h:66
Implementation of sparse matrix stored in compressed column storage.
Definition: dyncompcol.h:62
Class representing vector of real numbers.
Definition: floatarray.h:82
Abstract class for IML++ compatible preconditioner.
Definition: precond.h:53
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
Class representing the general Input Record.
Definition: inputrecord.h:101
CompCol_ILUPreconditioner()
Constructor. The user should call initializeFrom and init services in this given order to ensure cons...
Definition: iluprecond.h:64
virtual const char * giveClassName() const
Returns the preconditioner name.
Definition: iluprecond.h:76
the oofem namespace is to define a context or scope in which all oofem names are defined.

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:29 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011