Preconditioned pipelined conjugate gradient solver for symmetric lduMatrices using a run-time selectable preconditioner. More...
Protected Member Functions | |
| solverPerformance | scalarSolveCG (solveScalarField &psi, const solveScalarField &source, const direction cmpt, const bool cgMode) const |
Protected Member Functions inherited from lduMatrix::solver | |
| virtual void | readControls () |
| Read the control parameters from the controlDict_. 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 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... | |
| profilingTrigger | profiling_ |
Static Protected Attributes inherited from lduMatrix::solver | |
| static const label | defaultMaxIter_ = 1000 |
| Default maximum number of iterations in the solver. More... | |
Preconditioned pipelined conjugate gradient solver for symmetric lduMatrices using a run-time selectable preconditioner.
P. Ghysels, W. Vanroose.
"Hiding global synchronization latency in the
preconditioned Conjugate Gradient algorithm"
and implementation details from
Paul Eller, William Gropp
"Scalable Non-blocking Preconditioned Conjugate Gradient Methods"
| PPCG | ( | const word & | fieldName, |
| const lduMatrix & | matrix, | ||
| const FieldField< Field, scalar > & | interfaceBouCoeffs, | ||
| const FieldField< Field, scalar > & | interfaceIntCoeffs, | ||
| const lduInterfaceFieldPtrsList & | interfaces, | ||
| const dictionary & | solverControls | ||
| ) |
|
virtualdefault |
Destructor.
|
protected |
CG solver. Operates either in conjugate-gradient mode or conjugate residual
Definition at line 82 of file PPCG.C.
References Foam::constant::atomic::alpha, beta(), SolverPerformance< Type >::checkConvergence(), Foam::expressions::patchExpr::debug, delta, Foam::endl(), SolverPerformance< Type >::finalResidual(), gamma, lduMatrix::preconditioner::getName(), Foam::Info, SolverPerformance< Type >::initialResidual(), n, lduMatrix::preconditioner::New(), SolverPerformance< Type >::nIterations(), p, UPstream::parRun(), lduMatrix::preconditioner::precondition(), psi, s, Foam::type(), and UPstream::waitRequest().
| TypeName | ( | "PPCG" | ) |
Runtime type information.
|
virtual |
Solve the matrix with this solver.
Implements lduMatrix::solver.
Reimplemented in PPCR.
Definition at line 283 of file PPCG.C.
References PrecisionAdaptor< Type, InputType, Container >::ref().