|
| UT_SparseMatrixELLT () |
|
| UT_SparseMatrixELLT (inttype rows, int nzeros) |
|
void | init (inttype rows, int nzeros) |
|
void | zero () |
|
exint | getNumRows () const |
|
int | getNonZerosPerRow () const |
|
const UT_ValArray< T > & | getRowValues () const |
|
UT_ValArray< T > & | getRowValues () |
|
const UT_ValArray< inttype > & | getColumns () const |
|
UT_ValArray< inttype > & | getColumns () |
|
exint | index (inttype row, int nz) const |
|
bool | appendRowElement (inttype row, inttype col, T val, int &rowidx) |
|
| THREADED_METHOD (UT_SparseMatrixELLT, shouldMultiThread(), sortRows) void sortRowsPartial(const UT_JobInfo &info) |
|
void | removeEffectOfRows (const UT_ExintArray &rows) |
|
bool | shouldMultiThread () const |
|
void | copyToSparse (UT_SparseMatrixT< T, false > &A) const |
| Copy to the supplied SparseMatrix. More...
|
|
| THREADED_METHOD1_CONST (UT_SparseMatrixELLT, shouldMultiThread(), getDiagonalInv, UT_VectorT< T > &, out) void getDiagonalInvPartial(UT_VectorT< T > &out |
|
| THREADED_METHOD2_CONST (UT_SparseMatrixELLT, shouldMultiThread(), multVec, const UT_VectorT< T > &, v, UT_VectorT< T > &, result) void multVecPartial(const UT_VectorT< T > &v |
|
void | multVecAndDot (const UT_VectorT< T > &v, UT_VectorT< T > &result, fpreal64 *dotpq) const |
|
void | multVecAndDotUpTo (const UT_VectorT< T > &v, UT_VectorT< T > &result, fpreal64 *dotpq, exint solverbase) const |
|
float | solveConjugateGradient (UT_VectorT< T > &x, const UT_VectorT< T > &b, const UT_SparseMatrixRowT< T > *GT, T tol2=1e-5, int max_iters=-1, int *iterout=NULL) const |
|
void | printSparseMatlab (std::ostream &os, const UT_String &varname) const |
|
void | printSparseMatrixMarket (std::ostream &os) const |
|
template<typename T, bool colmajor, bool exint>
class UT_SparseMatrixELLT< T, colmajor, exint >
This is another highly specialized varient of the SparseMatrix which allows multithreaded addition of elements to individual rows and supports a conjugate gradient solve. This can be useful for solvers which need to create and solve large linear systems in parallel. It uses the ELL format which is appropriate for matrices with a limited but fairly consistent numer of non-zeros per row, for example the result of discretizations across regular grids.
Definition at line 25 of file GAS_ProjectNonDivergentVariational.h.