OOFEM 3.0
Loading...
Searching...
No Matches
ilucomprowprecond.h
Go to the documentation of this file.
1/*
2 *
3 * ##### ##### ###### ###### ### ###
4 * ## ## ## ## ## ## ## ### ##
5 * ## ## ## ## #### #### ## # ##
6 * ## ## ## ## ## ## ## ##
7 * ## ## ## ## ## ## ## ##
8 * ##### ##### ## ###### ## ##
9 *
10 *
11 * OOFEM : Object Oriented Finite Element Code
12 *
13 * Copyright (C) 1993 - 2025 Borek Patzak
14 *
15 *
16 *
17 * Czech Technical University, Faculty of Civil Engineering,
18 * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19 *
20 * This library is free software; you can redistribute it and/or
21 * modify it under the terms of the GNU Lesser General Public
22 * License as published by the Free Software Foundation; either
23 * version 2.1 of the License, or (at your option) any later version.
24 *
25 * This program is distributed in the hope that it will be useful,
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28 * Lesser General Public License for more details.
29 *
30 * You should have received a copy of the GNU Lesser General Public
31 * License along with this library; if not, write to the Free Software
32 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33 */
34
35
36#ifndef ilucomprowprecond_h
37#define ilucomprowprecond_h
38
39#include "floatarray.h"
40#include "intarray.h"
41#include "dyncomprow.h"
42#include "precond.h"
43
45
46#define _IFT_CompRow_ILUPrecond_droptol "droptol"
47#define _IFT_CompRow_ILUPrecond_partfill "partfill"
49
50namespace oofem {
56{
57private:
59
60 double drop_tol;
62
63public:
70
71 void init(const SparseMtrx &a) override;
72
73 //void initialize (const CompCol &A);
74 void initialize(const DynCompRow &A);
75
76 void solve(const FloatArray &x, FloatArray &y) const override;
77 void trans_solve(const FloatArray &x, FloatArray &y) const override;
78
79 const char *giveClassName() const override { return "ILUT"; }
80 void initializeFrom(InputRecord &ir) override;
81
82protected:
83 void qsortCol(IntArray &, FloatArray &, int l, int r);
84 int qsortColPartition(IntArray &, FloatArray &, int l, int r);
85};
86} // end namespace oofem
87#endif // ilucomprowprecond_h
void solve(const FloatArray &x, FloatArray &y) const override
void qsortCol(IntArray &, FloatArray &, int l, int r)
void trans_solve(const FloatArray &x, FloatArray &y) const override
CompRow_ILUPreconditioner(const SparseMtrx &A, InputRecord &attributes)
Constructor. Initializes the the receiver (constructs the precontioning matrix M) of given matrix.
virtual ~CompRow_ILUPreconditioner(void)
Destructor.
int qsortColPartition(IntArray &, FloatArray &, int l, int r)
const char * giveClassName() const override
Returns the preconditioner name.
void initialize(const DynCompRow &A)
CompRow_ILUPreconditioner()
Constructor. The user should call initializeFrom and init services in this given order to ensure cons...
Preconditioner(const SparseMtrx &a, InputRecord &attributes)
Definition precond.C:38
#define OOFEM_EXPORT
Definition oofemcfg.h:7

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011