NGSolve
4.9
|
The base for all matrices in the linalg. More...
#include <basematrix.hpp>
Public Member Functions | |
BaseMatrix (ParallelDofs *aparalleldofs) | |
virtual int | VHeight () const |
virtual function must be overloaded | |
virtual int | VWidth () const |
virtual function must be overloaded | |
int | Height () const |
inline function VHeight | |
int | Width () const |
inline function VWidth | |
BaseMatrix & | operator= (double s) |
scalar assignment | |
virtual BaseVector & | AsVector () |
linear access of matrix memory | |
virtual const BaseVector & | AsVector () const |
linear access of matrix memory | |
virtual ostream & | Print (ostream &ost) const |
virtual void | MemoryUsage (Array< MemoryUsageStruct * > &mu) const |
virtual BaseMatrix * | CreateMatrix () const |
creates matrix of same type | |
virtual BaseVector * | CreateRowVector () const |
creates matrix of same type | |
virtual BaseVector * | CreateColVector () const |
creates a matching vector, size = height | |
virtual BaseVector * | CreateVector () const |
creates a matching vector (for square matrices) | |
virtual void | Mult (const BaseVector &x, BaseVector &y) const |
y = matrix * x. Multadd should be implemented, instead | |
virtual void | MultAdd (double s, const BaseVector &x, BaseVector &y) const |
y += s matrix * x | |
virtual void | MultAdd (Complex s, const BaseVector &x, BaseVector &y) const |
y += s matrix * x | |
virtual void | MultTransAdd (double s, const BaseVector &x, BaseVector &y) const |
y += s Trans(matrix) * x | |
virtual void | MultTransAdd (Complex s, const BaseVector &x, BaseVector &y) const |
y += s Trans(matrix) * x | |
virtual void | MultAdd1 (double s, const BaseVector &x, BaseVector &y, const BitArray *ainner=NULL, const Array< int > *acluster=NULL) const |
to split mat x vec for symmetric matrices only rows with inner or cluster true need by added (but more can be ...) | |
virtual void | MultAdd2 (double s, const BaseVector &x, BaseVector &y, const BitArray *ainner=NULL, const Array< int > *acluster=NULL) const |
only cols with inner or cluster true need by added (but more can be ...) | |
void | SetParallelDofs (const ParallelDofs *pardofs) |
const ParallelDofs * | GetParallelDofs () const |
virtual BaseMatrix * | InverseMatrix (const BitArray *subset=0) const |
virtual BaseMatrix * | InverseMatrix (const Array< int > *clusters) const |
virtual INVERSETYPE | SetInverseType (INVERSETYPE ainversetype) const |
virtual INVERSETYPE | SetInverseType (string ainversetype) const |
virtual INVERSETYPE | GetInverseType () const |
Protected Attributes | |
const ParallelDofs * | paralleldofs |
The base for all matrices in the linalg.
virtual BaseVector* ngla::BaseMatrix::CreateRowVector | ( | ) | const [virtual] |
creates matrix of same type
creates a matching vector, size = width