OOFEM 3.0
Loading...
Searching...
No Matches
rowcol.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 rowcol_h
36#define rowcol_h
37
38#include "oofemenv.h"
39
40#include "vector"
41
42namespace oofem {
43class IntArray;
44class FloatArray;
45
68{
69protected:
70 int number;
71 int start;
72 std::vector<double> row;
73 std::vector<double> column;
74 double diag;
75
76public:
77 RowColumn(int n);
78 RowColumn(int n, int start);
79
80#ifdef DEBUG
81 double &atU(int);
82 double &atL(int);
83 double atU(int) const;
84 double atL(int) const;
85#else
86 double &atU(int i) { return column [ i - start ]; }
87 double &atL(int i) { return row [ i - start ]; }
88 double atU(int i) const { return column [ i - start ]; }
89 double atL(int i) const { return row [ i - start ]; }
90#endif
91 double &atDiag() { return diag; }
92 double atDiag() const { return diag; }
93 void checkBounds(int) const;
94 void checkSizeTowards(const IntArray &);
95 double dot(const FloatArray &, char, int, int) const;
96 int giveStart() const { return start; }
97 void growTo(int);
98 void zero();
99 void printYourself() const;
100 int giveSize() const { return 1 + 2 * ( number - start ); }
101};
102} // end namespace oofem
103#endif // rowcol_h
double dot(const Vector &a, const Vector &b)
Definition CSG.h:76
double diag
Definition rowcol.h:74
double & atDiag()
Definition rowcol.h:91
std::vector< double > row
Definition rowcol.h:72
double & atU(int i)
Definition rowcol.h:86
int giveStart() const
Definition rowcol.h:96
double atU(int i) const
Definition rowcol.h:88
int giveSize() const
Definition rowcol.h:100
double & atL(int i)
Definition rowcol.h:87
RowColumn(int n)
Definition rowcol.C:46
double atL(int i) const
Definition rowcol.h:89
double atDiag() const
Definition rowcol.h:92
std::vector< double > column
Definition rowcol.h:73
FloatMatrixF< N, M > zero()
Constructs a zero matrix (this is the default behavior when constructing a matrix,...
#define OOFEM_NO_EXPORT
Definition oofemcfg.h:8

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