OpenVDB 12.0.0
 
Loading...
Searching...
No Matches
JacobiPreconditioner< MatrixType > Class Template Reference

Diagonal preconditioner. More...

#include <openvdb/math/ConjGradient.h>

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

Public Types

using ValueType = typename MatrixType::ValueType
 
using BaseType = Preconditioner<ValueType>
 
using VectorType = Vector<ValueType>
 
using Ptr = SharedPtr<JacobiPreconditioner>
 

Public Member Functions

 JacobiPreconditioner (const MatrixType &A)
 
 ~JacobiPreconditioner () override=default
 
void apply (const Vector< ValueType > &r, Vector< ValueType > &z) override
 Apply this preconditioner to a residue vector: z = M−1r
 
bool isFinite () const
 Return true if all values along the diagonal are finite.
 
virtual bool isValid () const
 

Detailed Description

template<typename MatrixType>
class openvdb::v12_0::math::pcg::JacobiPreconditioner< MatrixType >

Diagonal preconditioner.

Member Typedef Documentation

◆ BaseType

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

◆ Ptr

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

◆ ValueType

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

◆ VectorType

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

Constructor & Destructor Documentation

◆ JacobiPreconditioner()

template<typename MatrixType>
JacobiPreconditioner ( const MatrixType & A)
inline

◆ ~JacobiPreconditioner()

template<typename MatrixType>
~JacobiPreconditioner ( )
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 >.

◆ isFinite()

template<typename MatrixType>
bool isFinite ( ) const
inline

Return true if all values along the diagonal are finite.

◆ isValid()

virtual bool isValid ( ) const
inlinevirtualinherited