OOFEM 3.0
Loading...
Searching...
No Matches
skyline.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#ifndef skyline_h
36#define skyline_h
37
38#include "sparsemtrx.h"
39
40#define _IFT_Skyline_Name "skyline"
41
42namespace oofem {
69{
70protected:
77
78public:
83 Skyline(int n=0);
84 Skyline(const Skyline &s);
87 virtual ~Skyline() {}
88
89 std::unique_ptr<SparseMtrx> clone() const override;
90
91 void times(const FloatArray &x, FloatArray &answer) const override;
92 void timesT(const FloatArray &x, FloatArray &answer) const override { this->times(x, answer); }
93 void times(double x) override;
94 void add(double x, SparseMtrx &m) override;
95 int buildInternalStructure(EngngModel *, int, const UnknownNumberingScheme &) override;
96
97 std::unique_ptr<SparseMtrx> giveSubMatrix(const IntArray &rows, const IntArray &cols) override;
102 int setInternalStructure(IntArray a);
103
104 int assemble(const IntArray &loc, const FloatMatrix &mat) override;
105 int assemble(const IntArray &rloc, const IntArray &cloc, const FloatMatrix &mat) override;
106
107 bool canBeFactorized() const override { return true; }
108 SparseMtrx *factorized() override;
109 FloatArray *backSubstitutionWith(FloatArray &) const override;
110 void zero() override;
123 void rbmodes(FloatMatrix &r, int &nse, IntArray &se, double limit, int tc);
133 void ldl_feti_sky(FloatArray &x, FloatArray &y, int nse, double limit, IntArray &se);
134
135 double &at(int, int) override;
136 double at(int i, int j) const override;
137 bool isAllocatedAt(int i, int j) const override;
138 int giveNumberOfNonZeros() const { return this->mtrx.giveSize(); }
139 void toFloatMatrix(FloatMatrix &answer) const override;
140 void printYourself() const override;
141 void writeToFile(const char *fname) const override;
142 int giveAllocatedSize() { return this->mtrx.giveSize(); }
143
144 SparseMtrxType giveType() const override { return SMT_Skyline; }
145 bool isAsymmetric() const override { return false; }
146
147 const char *giveClassName() const override { return "Skyline"; }
148};
149} // end namespace oofem
150#endif // skyline_h
Index giveSize() const
Returns the size of receiver.
Definition floatarray.h:261
SparseMtrxType giveType() const override
Sparse matrix type identification.
Definition skyline.h:144
bool isAsymmetric() const override
Returns true if asymmetric.
Definition skyline.h:145
const char * giveClassName() const override
Definition skyline.h:147
virtual ~Skyline()
Destructor.
Definition skyline.h:87
bool canBeFactorized() const override
Determines, whether receiver can be factorized.
Definition skyline.h:107
IntArray adr
Integer array holding addresses of diagonal members.
Definition skyline.h:74
Skyline(int n=0)
Definition skyline.C:62
void times(const FloatArray &x, FloatArray &answer) const override
Definition skyline.C:500
int giveNumberOfNonZeros() const
Definition skyline.h:138
void timesT(const FloatArray &x, FloatArray &answer) const override
Definition skyline.h:92
int giveAllocatedSize()
Definition skyline.h:142
FloatArray mtrx
Vector of stored coefficients.
Definition skyline.h:72
int isFactorized
Flag indicating whether factorized.
Definition skyline.h:76
SparseMtrx(int n=0, int m=0)
Definition sparsemtrx.h:89
FloatArrayF< N > assemble(const FloatArrayF< M > &x, int const (&c)[M])
Assemble components into zero matrix.
FloatMatrixF< N, M > zero()
Constructs a zero matrix (this is the default behavior when constructing a matrix,...
@ SMT_Skyline
Symmetric skyline.
#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