CubbyFlow::FDMGaussSeidelSolver3 Class Referencefinal

3-D finite difference-type linear system solver using Gauss-Seidel method. More...

#include <Core/Solver/FDM/FDMGaussSeidelSolver3.hpp>

Inheritance diagram for CubbyFlow::FDMGaussSeidelSolver3:
CubbyFlow::FDMLinearSystemSolver3

Public Member Functions

 FDMGaussSeidelSolver3 (unsigned int maxNumberOfIterations, unsigned int residualCheckInterval, double tolerance, double sorFactor=1.0, bool useRedBlackOrdering=false)
 Constructs the solver with given parameters. More...
 
bool Solve (FDMLinearSystem3 *system) override
 Solves the given linear system. More...
 
bool SolveCompressed (FDMCompressedLinearSystem3 *system) override
 Solves the given compressed linear system. More...
 
unsigned int GetMaxNumberOfIterations () const
 Returns the max number of Gauss-Seidel iterations. More...
 
unsigned int GetLastNumberOfIterations () const
 Returns the last number of Gauss-Seidel iterations the solver made. More...
 
double GetTolerance () const
 Returns the max residual tolerance for the Gauss-Seidel method. More...
 
double GetLastResidual () const
 Returns the last residual after the Gauss-Seidel iterations. More...
 
double GetSORFactor () const
 Returns the SOR (Successive Over Relaxation) factor. More...
 
bool GetUseRedBlackOrdering () const
 Returns true if red-black ordering is enabled. More...
 
- Public Member Functions inherited from CubbyFlow::FDMLinearSystemSolver3
 FDMLinearSystemSolver3 ()=default
 Default constructor. More...
 
 FDMLinearSystemSolver3 (const FDMLinearSystemSolver3 &)=delete
 Deleted copy constructor. More...
 
 FDMLinearSystemSolver3 (FDMLinearSystemSolver3 &&) noexcept=delete
 Deleted move constructor. More...
 
virtual ~FDMLinearSystemSolver3 ()=default
 Default virtual destructor. More...
 
FDMLinearSystemSolver3operator= (const FDMLinearSystemSolver3 &)=delete
 Deleted copy assignment operator. More...
 
FDMLinearSystemSolver3operator= (FDMLinearSystemSolver3 &&) noexcept=delete
 Deleted move assignment operator. More...
 

Static Public Member Functions

static void Relax (const FDMMatrix3 &A, const FDMVector3 &b, double sorFactor, FDMVector3 *x)
 Performs single natural Gauss-Seidel relaxation step. More...
 
static void Relax (const MatrixCSRD &A, const VectorND &b, double sorFactor, VectorND *x)
 Performs single natural Gauss-Seidel relaxation step for compressed sys. More...
 
static void RelaxRedBlack (const FDMMatrix3 &A, const FDMVector3 &b, double sorFactor, FDMVector3 *x)
 Performs single Red-Black Gauss-Seidel relaxation step. More...
 

Detailed Description

3-D finite difference-type linear system solver using Gauss-Seidel method.

Constructor & Destructor Documentation

◆ FDMGaussSeidelSolver3()

CubbyFlow::FDMGaussSeidelSolver3::FDMGaussSeidelSolver3 ( unsigned int  maxNumberOfIterations,
unsigned int  residualCheckInterval,
double  tolerance,
double  sorFactor = 1.0,
bool  useRedBlackOrdering = false 
)

Constructs the solver with given parameters.

Member Function Documentation

◆ GetLastNumberOfIterations()

unsigned int CubbyFlow::FDMGaussSeidelSolver3::GetLastNumberOfIterations ( ) const

Returns the last number of Gauss-Seidel iterations the solver made.

◆ GetLastResidual()

double CubbyFlow::FDMGaussSeidelSolver3::GetLastResidual ( ) const

Returns the last residual after the Gauss-Seidel iterations.

◆ GetMaxNumberOfIterations()

unsigned int CubbyFlow::FDMGaussSeidelSolver3::GetMaxNumberOfIterations ( ) const

Returns the max number of Gauss-Seidel iterations.

◆ GetSORFactor()

double CubbyFlow::FDMGaussSeidelSolver3::GetSORFactor ( ) const

Returns the SOR (Successive Over Relaxation) factor.

◆ GetTolerance()

double CubbyFlow::FDMGaussSeidelSolver3::GetTolerance ( ) const

Returns the max residual tolerance for the Gauss-Seidel method.

◆ GetUseRedBlackOrdering()

bool CubbyFlow::FDMGaussSeidelSolver3::GetUseRedBlackOrdering ( ) const

Returns true if red-black ordering is enabled.

◆ Relax() [1/2]

static void CubbyFlow::FDMGaussSeidelSolver3::Relax ( const FDMMatrix3 A,
const FDMVector3 b,
double  sorFactor,
FDMVector3 x 
)
static

Performs single natural Gauss-Seidel relaxation step.

◆ Relax() [2/2]

static void CubbyFlow::FDMGaussSeidelSolver3::Relax ( const MatrixCSRD A,
const VectorND b,
double  sorFactor,
VectorND x 
)
static

Performs single natural Gauss-Seidel relaxation step for compressed sys.

◆ RelaxRedBlack()

static void CubbyFlow::FDMGaussSeidelSolver3::RelaxRedBlack ( const FDMMatrix3 A,
const FDMVector3 b,
double  sorFactor,
FDMVector3 x 
)
static

Performs single Red-Black Gauss-Seidel relaxation step.

◆ Solve()

bool CubbyFlow::FDMGaussSeidelSolver3::Solve ( FDMLinearSystem3 system)
overridevirtual

Solves the given linear system.

Implements CubbyFlow::FDMLinearSystemSolver3.

◆ SolveCompressed()

bool CubbyFlow::FDMGaussSeidelSolver3::SolveCompressed ( FDMCompressedLinearSystem3 system)
overridevirtual

Solves the given compressed linear system.

Reimplemented from CubbyFlow::FDMLinearSystemSolver3.


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