ParMooN
 All Classes Functions Variables Friends Pages
Matrix2D.h
1 // =======================================================================
2 // @(#)Matrix2D.h 1.2 11/20/98
3 //
4 // Class: TMatrix2D
5 //
6 // Purpose: store a matrix (ansatz != test space)
7 //
8 // Author: Gunar Matthies
9 //
10 // History: 26.08.1998 start implementation
11 //
12 // =======================================================================
13 
14 #ifndef __MATRIX2D__
15 #define __MATRIX2D__
16 
17 #include <Structure2D.h>
18 #include <Matrix.h>
19 
20 class TMatrix2D : public TMatrix
21 {
22  protected:
25 
26  public:
29 
31  TMatrix2D();
32 
39 
41  ~TMatrix2D();
42 
43  TStructure2D *GetStructure() const
44  { return structure; }
45 
47  TMatrix2D& operator*=(double alpha);
48 
51  void resetNonActive();
52 
58  friend TMatrix2D& operator+(const TMatrix2D & A, const TMatrix2D & B);
64  friend TMatrix2D& operator-(const TMatrix2D & A, const TMatrix2D & B);
65 
71  friend TMatrix2D& operator*(const TMatrix2D & A, const double alpha);
76  friend TMatrix2D& operator*(const double alpha, const TMatrix2D & A);
77 
83  friend double* operator*(const TMatrix2D & A, const double* x);
84 };
85 
86 void AllocateMatricesNSE_2D(int mg_level,
87  TFESpace2D *velocity_space,
88  TFESpace2D *pressure_space,
89  TSquareStructure2D *&sqstructureA,
90  TSquareStructure2D *&sqstructureC,
91  TStructure2D *&structureB,
92  TStructure2D *&structureBT,
93  TSquareMatrix2D *&sqmatrixA,
94  TSquareMatrix2D *&sqmatrixA11,
95  TSquareMatrix2D *&sqmatrixA12,
96  TSquareMatrix2D *&sqmatrixA21,
97  TSquareMatrix2D *&sqmatrixA22,
98  TSquareMatrix2D *&sqmatrixC,
99  TMatrix2D *&matrixB1,
100  TMatrix2D *&matrixB2,
101  TMatrix2D *&matrixB1T,
102  TMatrix2D *&matrixB2T,
103  TSquareMatrix2D **MatricesA,
104  TSquareMatrix2D **MatricesA11,
105  TSquareMatrix2D **MatricesA12,
106  TSquareMatrix2D **MatricesA21,
107  TSquareMatrix2D **MatricesA22,
108  TSquareMatrix2D **MatricesC,
109  TMatrix2D **MatricesB1,
110  TMatrix2D **MatricesB2,
111  TMatrix2D **MatricesB1T,
112  TMatrix2D **MatricesB2T);
113 
114 
115 #endif // __MATRIX2D__
void resetNonActive()
set all Dirichlet rows to zero. That means all rows where the test space has nonactive degrees of fre...
Definition: Matrix2D.C:33
Definition: SquareMatrix2D.h:20
Definition: Structure2D.h:23
TMatrix2D & operator*=(double alpha)
scale all active rows
Definition: Matrix2D.C:42
Definition: Matrix.h:21
friend TMatrix2D & operator+(const TMatrix2D &A, const TMatrix2D &B)
add two matrices A and B
Definition: Matrix2D.C:61
Definition: FESpace2D.h:28
friend TMatrix2D & operator*(const TMatrix2D &A, const double alpha)
C = A*alpha.
Definition: Matrix2D.C:83
void SetStructure(TStructure2D *structure)
fill empty matrix,
TMatrix2D()
generate empty matrix
friend TMatrix2D & operator-(const TMatrix2D &A, const TMatrix2D &B)
substract matrices A and B, i.e. C = A - B
Definition: Matrix2D.h:20
TStructure2D * structure
Definition: Matrix2D.h:24
Definition: SquareStructure2D.h:20
~TMatrix2D()
Definition: Matrix2D.C:28