BiCGstab

This class is used to manage the Preconditioned Bi-Coniugate Gradient Stab. More…

#include "BiCGstab.h"

Inherits from LinSolver

Public Functions

Name
BiCGstab()
Constructs the BiCGstab object.
~BiCGstab()
Deletes the BiCGstab object.
virtual void Set_Solver(MatrixProd &restrict MAT, DDMat &restrict RHS, MatrixProd &restrict PREC)
Sets the solver for monolithic preconditoning.
virtual void Set_Solver(MatrixProd &restrict MAT, DDMat &restrict RHS, MatrixProd &restrict PREC_L, MatrixProd &restrict PREC_R)
Sets the solver for split preconditoning.
virtual void Solve(MatrixProd &restrict MAT, DDMat &restrict RHS, DDMat &restrict SOL, MatrixProd &restrict PREC, const string filename)
Solves the linear system with monolithic preconditoning.
virtual void Solve(MatrixProd &restrict MAT, DDMat &restrict RHS, DDMat &restrict SOL, MatrixProd &restrict PREC_L, MatrixProd &restrict PREC_R, const string filename)
Solves the linear system with split preconditoning.

Additional inherited members

Public Functions inherited from LinSolver

Name
virtual ~LinSolver() =0
Deletes the object.
void Set_rhs(MatrixProd &restrict MAT, DDMat &restrict RHS)
Sets the rhs array.
void Set_maxITER(const iReg input_maxITER)
Sets the maximum number of iterations.
void Set_exitTOL(const rExt input_exitTOL)
Sets the exit tolerance.
void Set_final_sol_1(const bool input_final_sol_1)
Sets the flag to have the final solution = 1.
void Set_initial_sol(const iReg input_initial_sol)
Sets the flag for initial solution.
void Set_printConvProfile(const bool input_printConvProfile)
Sets the flag for Convergence Profile printing.

Public Attributes inherited from LinSolver

Name
iReg maxITER
maximum number of iterations.
rExt exitTOL
exit tolerance.
bool final_sol_1
flag to set the final solution equal to one.
iReg initial_sol
flag to set the initial solution.
bool printConvProfile
flag for Convergence Profile printing.
DDMat RES
residual array.
DDMat SCR1
array for scratch 1.
iReg ITER
total number of iterations.
VEC< rExt > normRES0
euclidean norm of the initial residual.
VEC< rExt > normRES
euclidean norm of the final iterative residual.
VEC< rExt > normRESreal
euclidean norm of the final real residual.
VEC< rExt > normRHS
euclidean norm of the Right Hand Side.

Detailed Description

class BiCGstab;

This class is used to manage the Preconditioned Bi-Coniugate Gradient Stab.

class BiCGstab.

Public Functions Documentation

function BiCGstab

BiCGstab()

Constructs the BiCGstab object.

function ~BiCGstab

~BiCGstab()

Deletes the BiCGstab object.

function Set_Solver

virtual void Set_Solver(
    MatrixProd &__restrict__ MAT,
    DDMat &__restrict__ RHS,
    MatrixProd &__restrict__ PREC
)

Sets the solver for monolithic preconditoning.

Parameters:

  • MAT system matrix.
  • RHS Right Hand Side.
  • PREC preconditioner.

Reimplements: LinSolver::Set_Solver

function Set_Solver

virtual void Set_Solver(
    MatrixProd &__restrict__ MAT,
    DDMat &__restrict__ RHS,
    MatrixProd &__restrict__ PREC_L,
    MatrixProd &__restrict__ PREC_R
)

Sets the solver for split preconditoning.

Parameters:

  • MAT system matrix.
  • RHS Right Hand Side.
  • PREC_L LEFT preconditioner.
  • PREC_R RIGHT preconditioner.

Reimplements: LinSolver::Set_Solver

function Solve

virtual void Solve(
    MatrixProd &__restrict__ MAT,
    DDMat &__restrict__ RHS,
    DDMat &__restrict__ SOL,
    MatrixProd &__restrict__ PREC,
    const string filename
)

Solves the linear system with monolithic preconditoning.

Parameters:

  • MAT system matrix.
  • RHS system Right Hand Side.
  • SOL solution array.
  • PREC preconditioner.
  • filename file name where the convergence profile is printed.

Reimplements: LinSolver::Solve

function Solve

virtual void Solve(
    MatrixProd &__restrict__ MAT,
    DDMat &__restrict__ RHS,
    DDMat &__restrict__ SOL,
    MatrixProd &__restrict__ PREC_L,
    MatrixProd &__restrict__ PREC_R,
    const string filename
)

Solves the linear system with split preconditoning.

Parameters:

  • MAT system matrix.
  • RHS system Right Hand Side.
  • SOL solution array.
  • PREC_L LEFT preconditioner.
  • PREC_R RIGHT preconditioner.
  • filename file name where the convergence profile is printed.

Reimplements: LinSolver::Solve


Updated on 12 February 2021 at 11:59:50 CET