|
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
1.7.6.1