OpenVDB 12.1.0
Loading...
Searching...
No Matches
Preconditioner< T > Class Template Referenceabstract

Base class for conjugate gradient preconditioners. More...

#include <openvdb/math/ConjGradient.h>

Public Types

using ValueType = T
using Ptr = SharedPtr<Preconditioner>

Public Member Functions

template<SizeType STENCIL_SIZE>
 Preconditioner (const SparseStencilMatrix< T, STENCIL_SIZE > &)
virtual ~Preconditioner ()=default
virtual bool isValid () const
virtual void apply (const Vector< T > &r, Vector< T > &z)=0
 Apply this preconditioner to a residue vector: z = M−1r

Detailed Description

template<typename T>
class openvdb::v12_1::math::pcg::Preconditioner< T >

Base class for conjugate gradient preconditioners.

Member Typedef Documentation

◆ Ptr

template<typename T>
using Ptr = SharedPtr<Preconditioner>

◆ ValueType

template<typename T>
using ValueType = T

Constructor & Destructor Documentation

◆ Preconditioner()

template<typename T>
template<SizeType STENCIL_SIZE>
Preconditioner ( const SparseStencilMatrix< T, STENCIL_SIZE > & )
inline

◆ ~Preconditioner()

template<typename T>
virtual ~Preconditioner ( )
virtualdefault

Member Function Documentation

◆ apply()

template<typename T>
virtual void apply ( const Vector< T > & r,
Vector< T > & z )
pure virtual

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

Parameters
rresidue vector
[out]zpreconditioned residue vector

Implemented in IncompleteCholeskyPreconditioner< MatrixType >, and JacobiPreconditioner< MatrixType >.

◆ isValid()

template<typename T>
virtual bool isValid ( ) const
inlinevirtual