OpenVDB 10.0.1
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
IncompleteCholeskyPreconditioner< MatrixType > Class Template Reference

Preconditioner using incomplete Cholesky factorization. More...

#include <openvdb/math/ConjGradient.h>

Inheritance diagram for IncompleteCholeskyPreconditioner< MatrixType >:
Preconditioner< MatrixType::ValueType >

Public Types

using ValueType = typename MatrixType::ValueType
 
using BaseType = Preconditioner< ValueType >
 
using VectorType = Vector< ValueType >
 
using Ptr = SharedPtr< IncompleteCholeskyPreconditioner >
 
using TriangularMatrix = SparseStencilMatrix< ValueType, 4 >
 
using TriangleConstRow = typename TriangularMatrix::ConstRow
 
using TriangleRowEditor = typename TriangularMatrix::RowEditor
 

Public Member Functions

 IncompleteCholeskyPreconditioner (const MatrixType &matrix)
 
 ~IncompleteCholeskyPreconditioner () override=default
 
bool isValid () const override
 
void apply (const Vector< ValueType > &rVec, Vector< ValueType > &zVec) override
 Apply this preconditioner to a residue vector: z = M−1r
 
const TriangularMatrixlowerMatrix () const
 
const TriangularMatrixupperMatrix () const
 

Detailed Description

template<typename MatrixType>
class openvdb::v10_0::math::pcg::IncompleteCholeskyPreconditioner< MatrixType >

Preconditioner using incomplete Cholesky factorization.

Member Typedef Documentation

◆ BaseType

template<typename MatrixType >
using BaseType = Preconditioner<ValueType>

◆ Ptr

template<typename MatrixType >
using Ptr = SharedPtr<IncompleteCholeskyPreconditioner>

◆ TriangleConstRow

template<typename MatrixType >
using TriangleConstRow = typename TriangularMatrix::ConstRow

◆ TriangleRowEditor

template<typename MatrixType >
using TriangleRowEditor = typename TriangularMatrix::RowEditor

◆ TriangularMatrix

template<typename MatrixType >
using TriangularMatrix = SparseStencilMatrix<ValueType, 4>

◆ ValueType

template<typename MatrixType >
using ValueType = typename MatrixType::ValueType

◆ VectorType

template<typename MatrixType >
using VectorType = Vector<ValueType>

Constructor & Destructor Documentation

◆ IncompleteCholeskyPreconditioner()

template<typename MatrixType >
IncompleteCholeskyPreconditioner ( const MatrixType &  matrix)
inline

◆ ~IncompleteCholeskyPreconditioner()

template<typename MatrixType >
~IncompleteCholeskyPreconditioner ( )
overridedefault

Member Function Documentation

◆ apply()

template<typename MatrixType >
void apply ( const Vector< ValueType > &  r,
Vector< ValueType > &  z 
)
inlineoverridevirtual

Apply this preconditioner to a residue vector: z = M−1r

Parameters
rresidue vector
[out]zpreconditioned residue vector

Implements Preconditioner< MatrixType::ValueType >.

◆ isValid()

template<typename MatrixType >
bool isValid ( ) const
inlineoverridevirtual

◆ lowerMatrix()

template<typename MatrixType >
const TriangularMatrix & lowerMatrix ( ) const
inline

◆ upperMatrix()

template<typename MatrixType >
const TriangularMatrix & upperMatrix ( ) const
inline