Preconditioned bi-conjugate gradient stabilised solver for asymmetric lduMatrices using a run-time selectable preconditioner. More...
Public Member Functions | |
TypeName ("PBiCGStab") | |
Runtime type information. More... | |
PBiCGStab (const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls) | |
Construct from matrix components and solver data stream. More... | |
PBiCGStab (const PBiCGStab &)=delete | |
Disallow default bitwise copy construction. More... | |
virtual | ~PBiCGStab () |
Destructor. More... | |
virtual solverPerformance | solve (scalarField &psi, const scalarField &source, const direction cmpt=0) const |
Solve the matrix with this solver. More... | |
void | operator= (const PBiCGStab &)=delete |
Disallow default bitwise assignment. More... | |
Public Member Functions inherited from lduMatrix::solver | |
virtual const word & | type () const =0 |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, solver, symMatrix,(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls),(fieldName, matrix, interfaceBouCoeffs, interfaceIntCoeffs, interfaces, solverControls)) | |
declareRunTimeSelectionTable (autoPtr, solver, asymMatrix,(const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls),(fieldName, matrix, interfaceBouCoeffs, interfaceIntCoeffs, interfaces, solverControls)) | |
solver (const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls) | |
virtual | ~solver () |
Destructor. More... | |
const word & | fieldName () const |
const lduMatrix & | matrix () const |
const FieldField< Field, scalar > & | interfaceBouCoeffs () const |
const FieldField< Field, scalar > & | interfaceIntCoeffs () const |
const lduInterfaceFieldPtrsList & | interfaces () const |
virtual void | read (const dictionary &) |
Read and reset the solver parameters from the given stream. More... | |
scalar | normFactor (const scalarField &psi, const scalarField &source, const scalarField &Apsi, scalarField &tmpField) const |
Return the matrix norm used to normalise the residual for the. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from lduMatrix::solver | |
static autoPtr< solver > | New (const word &fieldName, const lduMatrix &matrix, const FieldField< Field, scalar > &interfaceBouCoeffs, const FieldField< Field, scalar > &interfaceIntCoeffs, const lduInterfaceFieldPtrsList &interfaces, const dictionary &solverControls) |
Return a new solver. More... | |
Protected Member Functions inherited from lduMatrix::solver | |
virtual void | readControls () |
Read the control parameters from the controlDict_. More... | |
Protected Attributes inherited from lduMatrix::solver | |
word | fieldName_ |
const lduMatrix & | matrix_ |
const FieldField< Field, scalar > & | interfaceBouCoeffs_ |
const FieldField< Field, scalar > & | interfaceIntCoeffs_ |
lduInterfaceFieldPtrsList | interfaces_ |
dictionary | controlDict_ |
Dictionary of controls. More... | |
label | maxIter_ |
Maximum number of iterations in the solver. More... | |
label | minIter_ |
Minimum number of iterations in the solver. More... | |
scalar | tolerance_ |
Final convergence tolerance. More... | |
scalar | relTol_ |
Convergence tolerance relative to the initial. More... | |
Static Protected Attributes inherited from lduMatrix::solver | |
static const label | defaultMaxIter_ = 1000 |
Default maximum number of iterations in the solver. More... | |
Preconditioned bi-conjugate gradient stabilised solver for asymmetric lduMatrices using a run-time selectable preconditioner.
Van der Vorst, H. A. (1992). Bi-CGSTAB: A fast and smoothly converging variant of Bi-CG for the solution of nonsymmetric linear systems. SIAM Journal on scientific and Statistical Computing, 13(2), 631-644. Barrett, R., Berry, M. W., Chan, T. F., Demmel, J., Donato, J., Dongarra, J., Eijkhout, V., Pozo, R., Romine, C. & Van der Vorst, H. (1994). Templates for the solution of linear systems: building blocks for iterative methods (Vol. 43). Siam.
Definition at line 64 of file PBiCGStab.H.
PBiCGStab | ( | const word & | fieldName, |
const lduMatrix & | matrix, | ||
const FieldField< Field, scalar > & | interfaceBouCoeffs, | ||
const FieldField< Field, scalar > & | interfaceIntCoeffs, | ||
const lduInterfaceFieldPtrsList & | interfaces, | ||
const dictionary & | solverControls | ||
) |
Construct from matrix components and solver data stream.
Definition at line 45 of file PBiCGStab.C.
References PBiCGStab::solve().
|
inlinevirtual |
Destructor.
Definition at line 93 of file PBiCGStab.H.
References PBiCGStab::operator=(), psi, PBiCGStab::solve(), and source().
TypeName | ( | "PBiCGStab" | ) |
Runtime type information.
|
virtual |
Solve the matrix with this solver.
Implements lduMatrix::solver.
Definition at line 69 of file PBiCGStab.C.
References alpha(), UList< T >::begin(), SolverPerformance< Type >::checkConvergence(), SolverPerformance< Type >::checkSingularity(), Foam::endl(), SolverPerformance< Type >::finalResidual(), lduMatrix::preconditioner::getName(), Foam::gSumMag(), Foam::gSumProd(), Foam::gSumSqr(), Foam::Info, SolverPerformance< Type >::initialResidual(), Foam::mag(), lduMatrix::mesh(), lduMatrix::preconditioner::New(), SolverPerformance< Type >::nIterations(), and List< T >::size().
Referenced by PBiCGStab::PBiCGStab(), GAMGSolver::solve(), and PBiCGStab::~PBiCGStab().
|
delete |
Disallow default bitwise assignment.
Referenced by PBiCGStab::~PBiCGStab().