* only a pointer is stored.
*/
MGMatrix (MGLevelObject<MATRIX>* = 0);
-
+
/**
* Set the matrix object to be
* used. The matrix object must
* only a pointer is stored.
*/
void set_matrix (MGLevelObject<MATRIX>* M);
-
+
/**
* Matrix-vector-multiplication on
* a certain level.
virtual void vmult (const unsigned int level,
VECTOR& dst,
const VECTOR& src) const;
-
+
/**
* Adding matrix-vector-multiplication on
* a certain level.
virtual void Tvmult_add (const unsigned int level,
VECTOR& dst,
const VECTOR& src) const;
-
+
/**
* Memory used by this object.
*/
unsigned int memory_consumption () const;
-
+
private:
/**
* Pointer to the matrix objects on each level.
*/
- SmartPointer<MGLevelObject<MATRIX>,MGMAtrix<MATRIX,VECTOR> > matrix;
+ SmartPointer<MGLevelObject<MATRIX>,MGMatrix<MATRIX,VECTOR> > matrix;
};
* only a pointer is stored.
*/
void set_matrix (MGLevelObject<MATRIX>* M);
-
+
/**
* Select the block for
* multiplication.
*/
void select_block (const unsigned int row,
const unsigned int col);
-
+
/**
* Matrix-vector-multiplication on
* a certain level.
virtual void vmult (const unsigned int level,
Vector<number>& dst,
const Vector<number>& src) const;
-
+
/**
* Adding matrix-vector-multiplication on
* a certain level.
*/
virtual void Tvmult_add (const unsigned int level,
Vector<number>& dst,
- const Vector<number>& src) const;
+ const Vector<number>& src) const;
private:
/**
* Pointer to the matrix objects on each level.
*/
- SmartPointer<MGLevelObject<MATRIX>,MGMAtrixSelect<MATRIX,number> > matrix;
+ SmartPointer<MGLevelObject<MATRIX>,MGMatrixSelect<MATRIX,number> > matrix;
/**
* Row coordinate of selected block.
*/
* Column coordinate of selected block.
*/
unsigned int col;
-
+
};
/*@}*/
const VECTOR& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].vmult(dst, src);
}
const VECTOR& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].vmult_add(dst, src);
}
const VECTOR& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].Tvmult(dst, src);
}
const VECTOR& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].Tvmult_add(dst, src);
}
const Vector<number>& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].block(row, col).vmult(dst, src);
}
const Vector<number>& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].block(row, col).vmult_add(dst, src);
}
const Vector<number>& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].block(row, col).Tvmult(dst, src);
}
const Vector<number>& src) const
{
Assert(matrix != 0, ExcNotInitialized());
-
+
const MGLevelObject<MATRIX>& m = *matrix;
m[level].block(row, col).Tvmult_add(dst, src);
}