iMSTK
Interactive Medical Simulation Toolkit
Public Member Functions | List of all members
imstk::SOR Class Reference

Successive Over Relaxation (SOR) sparse linear solver. More...

#include <imstkSOR.h>

Inheritance diagram for imstk::SOR:
Inheritance graph
[legend]
Collaboration diagram for imstk::SOR:
Collaboration graph
[legend]

Public Member Functions

 SOR (const double relaxationFactor=0.5)
 
 SOR (const SparseMatrixd &A, const Vectord &rhs)
 
 SOR (const SOR &)=delete
 Dissallow copy & move.
 
 SOR (const SOR &&)=delete
 
SORoperator= (const SOR &)=delete
 
SORoperator= (const SOR &&)=delete
 
void SORSolve (Vectord &x)
 Do one iteration of the method. More...
 
void solve (Vectord &x) override
 Solve the system of equations.
 
void solve (Vectord &x, const double tolerance)
 Solve the linear system using Gauss-Seidel iterations to a specified tolerance.
 
double getResidual (const Vectord &x) override
 Return the error calculated by the solver.
 
void setSystem (std::shared_ptr< LinearSystemType > newSystem) override
 Sets the system. System of linear equations.
 
void setMaxNumIterations (const size_t maxIter) override
 set/get the maximum number of iterations for the iterative solver.
 
void setTolerance (const double tolerance)
 Set solver tolerance.
 
void print () const override
 Print solver information.
 
double getRelaxationFactor () const
 Return the relaxation factor.
 
void setLinearProjectors (std::vector< LinearProjectionConstraint > *f)
 Get the vector denoting the filter.
 
std::vector< LinearProjectionConstraint > & getLinearProjectors ()
 Get the vector denoting the filter.
 
void setDynamicLinearProjectors (std::vector< LinearProjectionConstraint > *f)
 Get the vector denoting the filter.
 
std::vector< LinearProjectionConstraint > & getDynamicLinearProjectors ()
 Get the vector denoting the filter.
 
- Public Member Functions inherited from imstk::IterativeLinearSolver
virtual size_t getMaxNumIterations () const
 
virtual const Vectord & getResidualVector ()
 Return residual vector.
 
virtual const Vectord & getResidualVector (const Vectord &x)
 
bool isIterative () const override
 Returns true if the solver is iterative.
 
- Public Member Functions inherited from imstk::LinearSolver< SparseMatrixd >
 LinearSolver ()
 Default constructor/destructor.
 
virtual void setSystem (std::shared_ptr< LinearSystemType > newSystem)
 Set/get the system. Replaces/Returns the stored linear system of equations.
 
std::shared_ptr< LinearSystemTypegetSystem () const
 
void setTolerance (const double tolerance)
 Set solver tolerance.
 
double getTolerance () const
 Get solver tolerance.
 
Type getType ()
 Return the type of the solver.
 

Additional Inherited Members

- Public Types inherited from imstk::LinearSolver< SparseMatrixd >
enum  Type
 
using MatrixType = SparseMatrixd
 
using LinearSystemType = LinearSystem< MatrixType >
 
- Protected Attributes inherited from imstk::IterativeLinearSolver
size_t m_maxIterations = 100
 Maximum number of iterations to be performed.
 
Vectord m_residual
 Storage for residual vector.
 
- Protected Attributes inherited from imstk::LinearSolver< SparseMatrixd >
Type m_type
 Type of the scene object.
 
double m_tolerance
 default tolerance
 
std::shared_ptr< LinearSystemTypem_linearSystem
 Linear system of equations.
 

Detailed Description

Successive Over Relaxation (SOR) sparse linear solver.

Definition at line 23 of file imstkSOR.h.

Member Function Documentation

◆ SORSolve()

void imstk::SOR::SORSolve ( Vectord &  x)

Do one iteration of the method.

Gauss-Seidel solver

Definition at line 45 of file imstkSOR.cpp.


The documentation for this class was generated from the following files: