Preconditioned bi-conjugate gradient stabilized 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... | |
| virtual | ~PBiCGStab ()=default |
| Destructor. More... | |
| virtual solverPerformance | scalarSolve (solveScalarField &psi, const solveScalarField &source, const direction cmpt=0) const |
| Solve the matrix with this solver. More... | |
| virtual solverPerformance | solve (scalarField &psi, const scalarField &source, const direction cmpt=0) const |
| Solve the matrix with this solver. 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) | |
| Construct solver for given field name, matrix etc. More... | |
| virtual | ~solver ()=default |
| Destructor. More... | |
| const word & | fieldName () const noexcept |
| const lduMatrix & | matrix () const noexcept |
| const FieldField< Field, scalar > & | interfaceBouCoeffs () const noexcept |
| const FieldField< Field, scalar > & | interfaceIntCoeffs () const noexcept |
| const lduInterfaceFieldPtrsList & | interfaces () const noexcept |
| virtual void | read (const dictionary &) |
| Read and reset the solver parameters from the given stream. More... | |
| solveScalarField::cmptType | normFactor (const solveScalarField &psi, const solveScalarField &source, const solveScalarField &Apsi, solveScalarField &tmpField, const lduMatrix::normTypes normType) const |
| Return the matrix norm using the specified norm method. More... | |
| solveScalarField::cmptType | normFactor (const solveScalarField &psi, const solveScalarField &source, const solveScalarField &Apsi, solveScalarField &tmpField) const |
| Return the matrix norm used to normalise the residual for the stopping criterion. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from lduMatrix::solver | |
| static autoPtr< solver > | New (const word &solverName, 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 of given type. More... | |
| 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 given dictionary. More... | |
Protected Member Functions inherited from lduMatrix::solver | |
| virtual void | readControls () |
| Read the control parameters from 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 solution controls. More... | |
| int | log_ |
| Verbosity level for solver output statements. More... | |
| label | minIter_ |
| Minimum number of iterations in the solver. More... | |
| label | maxIter_ |
| Maximum number of iterations in the solver. More... | |
| lduMatrix::normTypes | normType_ |
| The normalisation type. More... | |
| scalar | tolerance_ |
| Final convergence tolerance. More... | |
| scalar | relTol_ |
| Convergence tolerance relative to the initial. More... | |
| profilingTrigger | profiling_ |
| Profiling instrumentation. More... | |
Preconditioned bi-conjugate gradient stabilized 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 63 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 42 of file PBiCGStab.C.
|
virtualdefault |
Destructor.
| TypeName | ( | "PBiCGStab" | ) |
Runtime type information.
|
virtual |
Solve the matrix with this solver.
Reimplemented from lduMatrix::solver.
Definition at line 66 of file PBiCGStab.C.
References Foam::constant::atomic::alpha, UList< T >::begin(), beta(), SolverPerformance< Type >::checkConvergence(), SolverPerformance< Type >::checkSingularity(), Foam::ensightOutput::debug, Foam::endl(), SolverPerformance< Type >::finalResidual(), Foam::gSumMag(), Foam::gSumProd(), Foam::gSumSqr(), Foam::Info, SolverPerformance< Type >::initialResidual(), Foam::mag(), mesh, Foam::New(), SolverPerformance< Type >::nIterations(), psi, and lduMatrix::setResidualField().

|
virtual |
Solve the matrix with this solver.
Implements lduMatrix::solver.
Definition at line 279 of file PBiCGStab.C.
References refPtr< Container< Type > >::ref().

Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.