IBSimu 1.0.4
Public Member Functions | Static Public Member Functions

GSSolver Class Reference

Gauss-Seidel based solver implementation. More...

#include <gs_solver.hpp>

Inheritance diagram for GSSolver:
Solver

List of all members.

Public Member Functions

 GSSolver (double w=1.66, double eps=1.0e-6, uint32_t imax=10000, double newton_Reps=1.0e-5, double newton_dXeps=1.0e-6, uint32_t newton_imax=10)
 Constructor.
 ~GSSolver ()
 Destructor.
virtual void solve (const Problem &p, Vector &X)
 Solve problem p defined in geometry g. Initial guess and solution are in vector X.
virtual void reset (void)
 Reset solver.
void set_newton_imax (uint32_t newton_imax)
 Sets maximum iteration count for Newton-Raphson steps.
void set_newton_residual_eps (double newton_Reps)
 Sets the accuracy request for Newton-Raphson residual.
void set_newton_step_eps (double newton_dXeps)
 Sets the accuracy request for Newton-Raphson step size.

Static Public Member Functions

static bool gauss_seidel (const CRowMatrix &mat, const Vector &rhs, Vector &sol, uint32_t &imax, double &eps, double w)
 Direct interface to gauss_seidel matrix solver.

Detailed Description

Gauss-Seidel based solver implementation.

An implementation of virtual class Solver using Gauss-Seidel/Successive over relaxation method for solving matrix equation. Linear and nonlinear solvers. Nonlinear solver not implemented.

The Gauss-Seidel solver has special limitations for the problem type because of convergence issues. The problem has to have first order neumann edges and the edge smoothing must be switched off.


Constructor & Destructor Documentation

GSSolver::GSSolver ( double  w = 1.66,
double  eps = 1.0e-6,
uint32_t  imax = 10000,
double  newton_Reps = 1.0e-5,
double  newton_dXeps = 1.0e-6,
uint32_t  newton_imax = 10 
)

Constructor.

GSSolver::~GSSolver ( ) [inline]

Destructor.


Member Function Documentation

static bool GSSolver::gauss_seidel ( const CRowMatrix mat,
const Vector rhs,
Vector sol,
uint32_t &  imax,
double &  eps,
double  w 
) [static]

Direct interface to gauss_seidel matrix solver.

Solves matrix problem mat * sol = rhs. The matrix is sorted to be on the ascending order as required by the GAUSS_SEIDEL library.

virtual void GSSolver::reset ( void  ) [virtual]

Reset solver.

This is a signal from the problem that the problem has changed and internal caches (if they exist) in the solver should be resetted.

Implements Solver.

void GSSolver::set_newton_imax ( uint32_t  newton_imax) [inline]

Sets maximum iteration count for Newton-Raphson steps.

void GSSolver::set_newton_residual_eps ( double  newton_Reps) [inline]

Sets the accuracy request for Newton-Raphson residual.

void GSSolver::set_newton_step_eps ( double  newton_dXeps) [inline]

Sets the accuracy request for Newton-Raphson step size.

virtual void GSSolver::solve ( const Problem p,
Vector X 
) [virtual]

Solve problem p defined in geometry g. Initial guess and solution are in vector X.


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