NGSolve
4.9
|
A sparse cholesky factorization. More...
#include <sparsecholesky.hpp>
Public Types | |
typedef TV_COL | TV |
typedef TV_ROW | TVX |
typedef mat_traits< TV_ROW >::TSCAL | TSCAL_VEC |
typedef mat_traits< TM >::TSCAL | TSCAL_MAT |
Public Member Functions | |
SparseCholesky (const SparseMatrix< TM, TV_ROW, TV_COL > &a, const BitArray *ainner=NULL, const Array< int > *acluster=NULL, bool allow_refactor=0) | |
int | VHeight () const |
virtual function must be overloaded | |
int | VWidth () const |
virtual function must be overloaded | |
void | Allocate (const Array< int > &aorder, const Array< MDOVertex > &vertices, const int *blocknr) |
void | Factor () |
void | FactorNew (const SparseMatrix< TM, TV_ROW, TV_COL > &a) |
virtual void | Mult (const BaseVector &x, BaseVector &y) const |
y = matrix * x. Multadd should be implemented, instead | |
virtual void | MultAdd (TSCAL_VEC s, const BaseVector &x, BaseVector &y) const |
virtual ostream & | Print (ostream &ost) const |
A = L+D+L^T y = f - (L+D)^T u w = C^{-1} (y - L u) u += w y -= (L+D)^T w. | |
virtual void | MemoryUsage (Array< MemoryUsageStruct * > &mu) const |
void | Set (int i, int j, const TM &val) |
const TM & | Get (int i, int j) const |
void | SetOrig (int i, int j, const TM &val) |
virtual BaseVector * | CreateVector () const |
creates a matching vector (for square matrices) |
A sparse cholesky factorization.
The unknowns are reordered by the minimum degree ordering algorithm