HDK
|
#include <GAS_ProjectNonDivergentVariational.h>
Public Attributes | |
const UT_JobInfo &info | const |
UT_VectorT< T > & | result |
UT_VectorT< T > const UT_JobInfo &info | const |
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.
UT_SparseMatrixELLT< T, colmajor, exint >::UT_SparseMatrixELLT | ( | ) |
UT_SparseMatrixELLT< T, colmajor, exint >::UT_SparseMatrixELLT | ( | inttype | rows, |
int | nzeros | ||
) |
|
inline |
Definition at line 543 of file UT_SparseMatrix.h.
void UT_SparseMatrixELLT< T, colmajor, exint >::copyToSparse | ( | UT_SparseMatrixT< T, false > & | A | ) | const |
Copy to the supplied SparseMatrix.
|
inline |
Definition at line 533 of file UT_SparseMatrix.h.
|
inline |
Definition at line 534 of file UT_SparseMatrix.h.
|
inline |
Definition at line 528 of file UT_SparseMatrix.h.
|
inline |
Definition at line 526 of file UT_SparseMatrix.h.
|
inline |
Definition at line 530 of file UT_SparseMatrix.h.
|
inline |
Definition at line 531 of file UT_SparseMatrix.h.
|
inline |
Definition at line 536 of file UT_SparseMatrix.h.
void UT_SparseMatrixELLT< T, colmajor, exint >::init | ( | inttype | rows, |
int | nzeros | ||
) |
void UT_SparseMatrixELLT< T, colmajor, exint >::multVecAndDot | ( | const UT_VectorT< T > & | v, |
UT_VectorT< T > & | result, | ||
fpreal64 * | dotpq | ||
) | const |
void UT_SparseMatrixELLT< T, colmajor, exint >::multVecAndDotUpTo | ( | const UT_VectorT< T > & | v, |
UT_VectorT< T > & | result, | ||
fpreal64 * | dotpq, | ||
exint | solverbase | ||
) | const |
void UT_SparseMatrixELLT< T, colmajor, exint >::printSparseMatlab | ( | std::ostream & | os, |
const UT_String & | varname | ||
) | const |
void UT_SparseMatrixELLT< T, colmajor, exint >::printSparseMatrixMarket | ( | std::ostream & | os | ) | const |
void UT_SparseMatrixELLT< T, colmajor, exint >::removeEffectOfRows | ( | const UT_ExintArray & | rows | ) |
Every reference to given rows is removed from the diagonal. Because searching the whole matrix is expensive, assumes it is a standard fluid matrix, so for each specified row, it looks at all columns that are not itself and removes those.
|
inline |
Definition at line 564 of file UT_SparseMatrix.h.
float UT_SparseMatrixELLT< T, colmajor, exint >::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 |
Solves conjugate gradient using our specialized functions. These allow us to perform some normal and dot operations while the cache is still hot. This matrix is the matrix to solve. The provided GT matrix is the upper triangular result of cholesky factoriziation. Norm is hardcoded to 2. If the GT matrix is null, no preconditioner will be used.
UT_SparseMatrixELLT< T, colmajor, exint >::THREADED_METHOD | ( | UT_SparseMatrixELLT< T, colmajor, exint > | , |
shouldMultiThread() | , | ||
sortRows | |||
) | const |
UT_SparseMatrixELLT< T, colmajor, exint >::THREADED_METHOD1_CONST | ( | UT_SparseMatrixELLT< T, colmajor, exint > | , |
shouldMultiThread() | , | ||
getDiagonalInv | , | ||
UT_VectorT< T > & | , | ||
out | |||
) |
Get the inverse of the diagonal. Required for the conjugate gradient solve when using Jacobi pre-conditioning.
UT_SparseMatrixELLT< T, colmajor, exint >::THREADED_METHOD2_CONST | ( | UT_SparseMatrixELLT< T, colmajor, exint > | , |
shouldMultiThread() | , | ||
multVec | , | ||
const UT_VectorT< T > & | , | ||
v | , | ||
UT_VectorT< T > & | , | ||
result | |||
) | const |
void UT_SparseMatrixELLT< T, colmajor, exint >::zero | ( | ) |
const UT_JobInfo& info UT_SparseMatrixELLT< T, colmajor, exint >::const |
Definition at line 579 of file UT_SparseMatrix.h.
UT_VectorT<T> const UT_JobInfo& info UT_SparseMatrixELLT< T, colmajor, exint >::const |
Definition at line 586 of file UT_SparseMatrix.h.
UT_VectorT< T > & UT_SparseMatrixELLT< T, colmajor, exint >::result |
Definition at line 586 of file UT_SparseMatrix.h.