OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
spoolessolver.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 - 2013 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 #ifndef spoolessolver_h
35 #define spoolessolver_h
36 
37 #include "sparselinsystemnm.h"
38 #include "sparsemtrx.h"
39 #include "floatarray.h"
40 extern "C" {
41 #include <spooles/misc.h>
42 #include <spooles/FrontMtx.h>
43 #include <spooles/SymbFac.h>
44 };
45 
46 
48 
49 #define _IFT_SpoolesSolver_Name "spooles"
50 #define _IFT_SpoolesSolver_msglvl "msglvl"
51 #define _IFT_SpoolesSolver_msgfile "msgfile"
52 
53 
54 namespace oofem {
55 class Domain;
56 class EngngModel;
57 class FloatMatrix;
58 
63 class OOFEM_EXPORT SpoolesSolver : public SparseLinearSystemNM
64 {
65 private:
70  int msglvl;
71  FILE *msgFile;
73 
74  FrontMtx *frontmtx;
75  IV *oldToNewIV, *newToOldIV;
76  ETree *frontETree;
77  IVL *adjIVL, *symbfacIVL;
78  SubMtxManager *mtxmanager;
80 
81 public:
88 
90  virtual ~SpoolesSolver();
91 
95  virtual NM_Status solve(SparseMtrx &A, FloatArray &b, FloatArray &x);
96 
98  virtual IRResultType initializeFrom(InputRecord *ir);
99 
100  // identification
101  virtual const char *giveClassName() const { return "SpoolesSolver"; }
103  virtual SparseMtrxType giveRecommendedMatrix(bool symmetric) const { return SMT_SpoolesMtrx; }
104 };
105 } // end namespace oofem
106 #endif // spoolessolver_h
LinSystSolverType
The values of this type should be related not to specific solvers, but more to specific packages that...
Implements the solution of linear system of equation in the form using solvers from SPOOLES library...
Definition: spoolessolver.h:63
Class and object Domain.
Definition: domain.h:115
virtual const char * giveClassName() const
Spooles sparse mtrx representation.
Base class for all matrices stored in sparse format.
Definition: sparsemtrx.h:60
This base class is an abstraction for all numerical methods solving sparse linear system of equations...
unsigned long NM_Status
Mask defining NumMetod Status; which can be asked after finishing computation by Numerical Method...
Definition: nmstatus.h:44
SparseMtrx * Lhs
Last mapped LHS matrix.
Definition: spoolessolver.h:67
SparseMtrx::SparseMtrxVersionType lhsVersion
Last mapped matrix version.
Definition: spoolessolver.h:69
long SparseMtrxVersionType
Definition: sparsemtrx.h:63
SparseMtrxType
Enumerative type used to identify the sparse matrix type.
Class representing the special graph constructed from two polygons that is used to perform boolean op...
Definition: geotoolbox.h:191
Class representing vector of real numbers.
Definition: floatarray.h:82
virtual LinSystSolverType giveLinSystSolverType() const
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
Class representing the general Input Record.
Definition: inputrecord.h:101
Abstract base class representing the "problem" under consideration.
Definition: engngm.h:181
the oofem namespace is to define a context or scope in which all oofem names are defined.
SubMtxManager * mtxmanager
Definition: spoolessolver.h:78
virtual SparseMtrxType giveRecommendedMatrix(bool symmetric) const
Returns the recommended sparse matrix type for this solver.

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:31 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011