OpenVDB  8.1.0
Namespaces | Classes | Typedefs | Functions
openvdb::v8_1::math::pcg Namespace Reference

Namespaces

 internal
 

Classes

class  Vector
 Lightweight, variable-length vector. More...
 
class  SparseStencilMatrix
 Sparse, square matrix representing a 3D stencil operator of size STENCIL_SIZE. More...
 
class  Preconditioner
 Base class for conjugate gradient preconditioners. More...
 
class  JacobiPreconditioner
 Diagonal preconditioner. More...
 
class  IncompleteCholeskyPreconditioner
 Preconditioner using incomplete Cholesky factorization. More...
 
struct  State
 Information about the state of a conjugate gradient solution. More...
 

Typedefs

using SizeType = Index32
 
using SizeRange = tbb::blocked_range< SizeType >
 
using VectorS = Vector< float >
 
using VectorD = Vector< double >
 

Functions

template<typename ValueType >
State terminationDefaults ()
 Return default termination conditions for a conjugate gradient solver. More...
 
template<typename PositiveDefMatrix >
State solve (const PositiveDefMatrix &A, const Vector< typename PositiveDefMatrix::ValueType > &b, Vector< typename PositiveDefMatrix::ValueType > &x, Preconditioner< typename PositiveDefMatrix::ValueType > &preconditioner, const State &termination=terminationDefaults< typename PositiveDefMatrix::ValueType >())
 Solve Ax = b via the preconditioned conjugate gradient method. More...
 
template<typename PositiveDefMatrix , typename Interrupter >
State solve (const PositiveDefMatrix &A, const Vector< typename PositiveDefMatrix::ValueType > &b, Vector< typename PositiveDefMatrix::ValueType > &x, Preconditioner< typename PositiveDefMatrix::ValueType > &preconditioner, Interrupter &interrupter, const State &termination=terminationDefaults< typename PositiveDefMatrix::ValueType >())
 Solve Ax = b via the preconditioned conjugate gradient method. More...
 
std::ostream & operator<< (std::ostream &os, const State &state)
 

Typedef Documentation

◆ SizeRange

using SizeRange = tbb::blocked_range<SizeType>

◆ SizeType

using SizeType = Index32

◆ VectorD

using VectorD = Vector<double>

◆ VectorS

using VectorS = Vector<float>

Function Documentation

◆ operator<<()

std::ostream& openvdb::v8_1::math::pcg::operator<< ( std::ostream &  os,
const State state 
)
inline

◆ solve() [1/2]

State solve ( const PositiveDefMatrix &  A,
const Vector< typename PositiveDefMatrix::ValueType > &  b,
Vector< typename PositiveDefMatrix::ValueType > &  x,
Preconditioner< typename PositiveDefMatrix::ValueType > &  preconditioner,
const State termination = terminationDefaults<typename PositiveDefMatrix::ValueType>() 
)
inline

Solve Ax = b via the preconditioned conjugate gradient method.

Parameters
Aa symmetric, positive-definite, N x N matrix
ba vector of size N
xa vector of size N
preconditionera Preconditioner matrix
terminationtermination conditions given as a State object with the following fields:
success
ignored
iterations
the maximum number of iterations, with or without convergence
relativeError
the relative error ||bAx|| / ||b|| that denotes convergence
absoluteError

the absolute error ||bAx|| that denotes convergence

Exceptions
ArithmeticErrorif either x or b is not of the appropriate size.

◆ solve() [2/2]

State solve ( const PositiveDefMatrix &  A,
const Vector< typename PositiveDefMatrix::ValueType > &  b,
Vector< typename PositiveDefMatrix::ValueType > &  x,
Preconditioner< typename PositiveDefMatrix::ValueType > &  preconditioner,
Interrupter &  interrupter,
const State termination = terminationDefaults<typename PositiveDefMatrix::ValueType>() 
)
inline

Solve Ax = b via the preconditioned conjugate gradient method.

Parameters
Aa symmetric, positive-definite, N x N matrix
ba vector of size N
xa vector of size N
preconditionera Preconditioner matrix
terminationtermination conditions given as a State object with the following fields:
success
ignored
iterations
the maximum number of iterations, with or without convergence
relativeError
the relative error ||bAx|| / ||b|| that denotes convergence
absoluteError
the absolute error ||bAx|| that denotes convergence
interrupteran object adhering to the util::NullInterrupter interface with which computation can be interrupted
Exceptions
ArithmeticErrorif either x or b is not of the appropriate size.
RuntimeErrorif the computation is interrupted.

◆ terminationDefaults()

State openvdb::v8_1::math::pcg::terminationDefaults ( )
inline

Return default termination conditions for a conjugate gradient solver.