ENH: linear solvers: add variable-specific debug flags
Introduces a new optional keyword of label type 'log' to linear-solver dictionaries to enable variable-specific debug statements. For example, in fvOptions file: solvers { p { solver GAMG; ... log 2; } U { ... log 0; } } The meanings of values of 'log' are: log 0; <!-- no output log 1; <!-- standard output log 2; <!-- debug output // values higher than 2 are expected to have no effect This keyword does not directly affect the operations of various DebugSwitches and backward compatibility has been ensured in exchange of code cleanness. The related DebugSwitches are: DebugSwitches { SolverPerformance 0; GAMG 0; PCG 0; PBiCG 0; smoothSolver 0; }
This commit is contained in:
parent
d9b200af28
commit
6dedfe078a
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -134,6 +134,9 @@ public:
|
||||
//- Minimum number of iterations in the solver
|
||||
label minIter_;
|
||||
|
||||
//- Level of verbosity in the solver output statements
|
||||
label log_;
|
||||
|
||||
//- Final convergence tolerance
|
||||
Type tolerance_;
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -131,6 +131,7 @@ Foam::LduMatrix<Type, DType, LUType>::solver::solver
|
||||
|
||||
maxIter_(defaultMaxIter_),
|
||||
minIter_(0),
|
||||
log_(1),
|
||||
tolerance_(1e-6*pTraits<Type>::one),
|
||||
relTol_(Zero)
|
||||
{
|
||||
@ -145,6 +146,7 @@ void Foam::LduMatrix<Type, DType, LUType>::solver::readControls()
|
||||
{
|
||||
readControl(controlDict_, maxIter_, "maxIter");
|
||||
readControl(controlDict_, minIter_, "minIter");
|
||||
readControl(controlDict_, log_, "log");
|
||||
readControl(controlDict_, tolerance_, "tolerance");
|
||||
readControl(controlDict_, relTol_, "relTol");
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -62,10 +63,11 @@ template<class Type>
|
||||
bool Foam::SolverPerformance<Type>::checkConvergence
|
||||
(
|
||||
const Type& Tolerance,
|
||||
const Type& RelTolerance
|
||||
const Type& RelTolerance,
|
||||
const label log
|
||||
)
|
||||
{
|
||||
if (debug >= 2)
|
||||
if ((log >= 2) || (debug >= 2))
|
||||
{
|
||||
Info<< solverName_
|
||||
<< ": Iteration " << nIterations_
|
||||
|
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2012-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -218,7 +219,8 @@ public:
|
||||
bool checkConvergence
|
||||
(
|
||||
const Type& tolerance,
|
||||
const Type& relTolerance
|
||||
const Type& relTolerance,
|
||||
const label log
|
||||
);
|
||||
|
||||
//- Singularity test
|
||||
|
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -98,7 +99,7 @@ Foam::PBiCCCG<Type, DType, LUType>::solve
|
||||
// --- Calculate normalisation factor
|
||||
Type normFactor = this->normFactor(psi, wA, pA);
|
||||
|
||||
if (LduMatrix<Type, DType, LUType>::debug >= 2)
|
||||
if ((this->log_ >= 2) || (LduMatrix<Type, DType, LUType>::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -111,7 +112,12 @@ Foam::PBiCCCG<Type, DType, LUType>::solve
|
||||
if
|
||||
(
|
||||
this->minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
|
||||
|| !solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
)
|
||||
{
|
||||
// --- Select and construct the preconditioner
|
||||
@ -192,7 +198,12 @@ Foam::PBiCCCG<Type, DType, LUType>::solve
|
||||
(
|
||||
(
|
||||
nIter++ < this->maxIter_
|
||||
&& !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
|
||||
&& !solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
)
|
||||
|| nIter < this->minIter_
|
||||
);
|
||||
|
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -95,7 +96,7 @@ Foam::PBiCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
// --- Calculate normalisation factor
|
||||
Type normFactor = this->normFactor(psi, wA, pA);
|
||||
|
||||
if (LduMatrix<Type, DType, LUType>::debug >= 2)
|
||||
if ((this->log_ >= 2) || (LduMatrix<Type, DType, LUType>::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -105,7 +106,15 @@ Foam::PBiCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
solverPerf.finalResidual() = solverPerf.initialResidual();
|
||||
|
||||
// --- Check convergence, solve if not converged
|
||||
if (!solverPerf.checkConvergence(this->tolerance_, this->relTol_))
|
||||
if
|
||||
(
|
||||
!solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
)
|
||||
{
|
||||
// --- Select and construct the preconditioner
|
||||
autoPtr<typename LduMatrix<Type, DType, LUType>::preconditioner>
|
||||
@ -192,7 +201,12 @@ Foam::PBiCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
} while
|
||||
(
|
||||
nIter++ < this->maxIter_
|
||||
&& !(solverPerf.checkConvergence(this->tolerance_, this->relTol_))
|
||||
&& !solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -86,7 +87,7 @@ Foam::PCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
// --- Calculate normalisation factor
|
||||
Type normFactor = this->normFactor(psi, wA, pA);
|
||||
|
||||
if (LduMatrix<Type, DType, LUType>::debug >= 2)
|
||||
if ((this->log_ >= 2) || (LduMatrix<Type, DType, LUType>::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -99,7 +100,12 @@ Foam::PCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
if
|
||||
(
|
||||
this->minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
|
||||
|| !solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
)
|
||||
{
|
||||
// --- Select and construct the preconditioner
|
||||
@ -184,7 +190,12 @@ Foam::PCICG<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
(
|
||||
(
|
||||
nIter++ < this->maxIter_
|
||||
&& !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
|
||||
&& !solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
)
|
||||
|| nIter < this->minIter_
|
||||
);
|
||||
|
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -110,7 +111,7 @@ Foam::SmoothSolver<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
solverPerf.finalResidual() = solverPerf.initialResidual();
|
||||
}
|
||||
|
||||
if (LduMatrix<Type, DType, LUType>::debug >= 2)
|
||||
if ((this->log_ >= 2) || (LduMatrix<Type, DType, LUType>::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -120,7 +121,12 @@ Foam::SmoothSolver<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
if
|
||||
(
|
||||
this->minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
|
||||
|| !solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
)
|
||||
{
|
||||
autoPtr<typename LduMatrix<Type, DType, LUType>::smoother>
|
||||
@ -150,7 +156,12 @@ Foam::SmoothSolver<Type, DType, LUType>::solve(Field<Type>& psi) const
|
||||
(
|
||||
(
|
||||
(nIter += nSweeps_) < this->maxIter_
|
||||
&& !solverPerf.checkConvergence(this->tolerance_, this->relTol_)
|
||||
&& !solverPerf.checkConvergence
|
||||
(
|
||||
this->tolerance_,
|
||||
this->relTol_,
|
||||
this->log_
|
||||
)
|
||||
)
|
||||
|| nIter < this->minIter_
|
||||
);
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -120,6 +120,9 @@ public:
|
||||
//- Minimum number of iterations in the solver
|
||||
label minIter_;
|
||||
|
||||
//- Level of verbosity in the solver output statements
|
||||
label log_;
|
||||
|
||||
//- Final convergence tolerance
|
||||
scalar tolerance_;
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -164,6 +164,7 @@ void Foam::lduMatrix::solver::readControls()
|
||||
{
|
||||
maxIter_ = controlDict_.getOrDefault<label>("maxIter", defaultMaxIter_);
|
||||
minIter_ = controlDict_.getOrDefault<label>("minIter", 0);
|
||||
log_ = controlDict_.getOrDefault<label>("log", 1);
|
||||
tolerance_ = controlDict_.getOrDefault<scalar>("tolerance", 1e-6);
|
||||
relTol_ = controlDict_.getOrDefault<scalar>("relTol", 0);
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -208,8 +209,7 @@ Foam::GAMGSolver::GAMGSolver
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (debug & 2)
|
||||
if ((log_ >= 2) || (debug & 2))
|
||||
{
|
||||
for
|
||||
(
|
||||
@ -368,7 +368,7 @@ void Foam::GAMGSolver::readControls()
|
||||
controlDict_.readIfPresent("scaleCorrection", scaleCorrection_);
|
||||
controlDict_.readIfPresent("directSolveCoarsest", directSolveCoarsest_);
|
||||
|
||||
if (debug)
|
||||
if ((log_ >= 2) || debug)
|
||||
{
|
||||
Info<< "GAMGSolver settings :"
|
||||
<< " cacheAgglomeration:" << cacheAgglomeration_
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2016-2019 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -59,7 +59,7 @@ Foam::solverPerformance Foam::GAMGSolver::solve
|
||||
solveScalar normFactor =
|
||||
this->normFactor(psi, tsource(), Apsi, finestCorrection);
|
||||
|
||||
if (debug >= 2)
|
||||
if ((log_ >= 2) || (debug >= 2))
|
||||
{
|
||||
Pout<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -87,7 +87,7 @@ Foam::solverPerformance Foam::GAMGSolver::solve
|
||||
if
|
||||
(
|
||||
minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
{
|
||||
// Create coarse grid correction fields
|
||||
@ -144,7 +144,7 @@ Foam::solverPerformance Foam::GAMGSolver::solve
|
||||
matrix().mesh().comm()
|
||||
)/normFactor;
|
||||
|
||||
if (debug >= 2)
|
||||
if ((log_ >= 2) || (debug >= 2))
|
||||
{
|
||||
solverPerf.print(Info.masterStream(matrix().mesh().comm()));
|
||||
}
|
||||
@ -152,7 +152,7 @@ Foam::solverPerformance Foam::GAMGSolver::solve
|
||||
(
|
||||
(
|
||||
++solverPerf.nIterations() < maxIter_
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
|| solverPerf.nIterations() < minIter_
|
||||
);
|
||||
@ -193,7 +193,7 @@ void Foam::GAMGSolver::Vcycle
|
||||
// Restrict finest grid residual for the next level up.
|
||||
agglomeration_.restrictField(coarseSources[0], finestResidual, 0, true);
|
||||
|
||||
if (debug >= 2 && nPreSweeps_)
|
||||
if (nPreSweeps_ && ((log_ >= 2) || (debug >= 2)))
|
||||
{
|
||||
Pout<< "Pre-smoothing scaling factors: ";
|
||||
}
|
||||
@ -274,7 +274,7 @@ void Foam::GAMGSolver::Vcycle
|
||||
}
|
||||
}
|
||||
|
||||
if (debug >= 2 && nPreSweeps_)
|
||||
if (nPreSweeps_ && ((log_ >= 2) || (debug >= 2)))
|
||||
{
|
||||
Pout<< endl;
|
||||
}
|
||||
@ -290,7 +290,7 @@ void Foam::GAMGSolver::Vcycle
|
||||
);
|
||||
}
|
||||
|
||||
if (debug >= 2)
|
||||
if ((log_ >= 2) || (debug >= 2))
|
||||
{
|
||||
Pout<< "Post-smoothing scaling factors: ";
|
||||
}
|
||||
@ -703,7 +703,7 @@ void Foam::GAMGSolver::solveCoarsestLevel
|
||||
)
|
||||
);
|
||||
|
||||
if (debug)
|
||||
if ((log_ >= 2) || debug)
|
||||
{
|
||||
coarseSolverPerf.print(Info.masterStream(coarseComm));
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -111,7 +111,7 @@ Foam::solverPerformance Foam::PBiCG::solve
|
||||
// --- Calculate normalisation factor
|
||||
const solveScalar normFactor = this->normFactor(psi, tsource(), wA, pA);
|
||||
|
||||
if (lduMatrix::debug >= 2)
|
||||
if ((log_ >= 2) || (lduMatrix::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -126,7 +126,7 @@ Foam::solverPerformance Foam::PBiCG::solve
|
||||
if
|
||||
(
|
||||
minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
{
|
||||
solveScalarField pT(nCells, 0);
|
||||
@ -217,7 +217,7 @@ Foam::solverPerformance Foam::PBiCG::solve
|
||||
(
|
||||
(
|
||||
++solverPerf.nIterations() < maxIter_
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
|| solverPerf.nIterations() < minIter_
|
||||
);
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2016-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -110,7 +110,7 @@ Foam::solverPerformance Foam::PBiCGStab::scalarSolve
|
||||
// --- Calculate normalisation factor
|
||||
const solveScalar normFactor = this->normFactor(psi, source, yA, pA);
|
||||
|
||||
if (lduMatrix::debug >= 2)
|
||||
if ((log_ >= 2) || (lduMatrix::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -125,7 +125,7 @@ Foam::solverPerformance Foam::PBiCGStab::scalarSolve
|
||||
if
|
||||
(
|
||||
minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
{
|
||||
solveScalarField AyA(nCells);
|
||||
@ -219,7 +219,7 @@ Foam::solverPerformance Foam::PBiCGStab::scalarSolve
|
||||
if
|
||||
(
|
||||
solverPerf.nIterations() >= minIter_
|
||||
&& solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
&& solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
{
|
||||
for (label cell=0; cell<nCells; cell++)
|
||||
@ -258,7 +258,7 @@ Foam::solverPerformance Foam::PBiCGStab::scalarSolve
|
||||
(
|
||||
(
|
||||
++solverPerf.nIterations() < maxIter_
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
|| solverPerf.nIterations() < minIter_
|
||||
);
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2017 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -110,7 +110,7 @@ Foam::solverPerformance Foam::PCG::scalarSolve
|
||||
// --- Calculate normalisation factor
|
||||
solveScalar normFactor = this->normFactor(psi, source, wA, pA);
|
||||
|
||||
if (lduMatrix::debug >= 2)
|
||||
if ((log_ >= 2) || (lduMatrix::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -125,7 +125,7 @@ Foam::solverPerformance Foam::PCG::scalarSolve
|
||||
if
|
||||
(
|
||||
minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
{
|
||||
// --- Select and construct the preconditioner
|
||||
@ -193,7 +193,7 @@ Foam::solverPerformance Foam::PCG::scalarSolve
|
||||
(
|
||||
(
|
||||
++solverPerf.nIterations() < maxIter_
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
|| solverPerf.nIterations() < minIter_
|
||||
);
|
||||
|
@ -107,7 +107,7 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG
|
||||
solveScalarField p(nCells);
|
||||
const solveScalar normFactor = this->normFactor(psi, source, w, p);
|
||||
|
||||
if (lduMatrix::debug >= 2)
|
||||
if ((log_ >= 2) || (lduMatrix::debug >= 2))
|
||||
{
|
||||
Info<< " Normalisation factor = " << normFactor << endl;
|
||||
}
|
||||
@ -190,7 +190,7 @@ Foam::solverPerformance Foam::PPCG::scalarSolveCG
|
||||
if
|
||||
(
|
||||
(minIter_ <= 0 || solverPerf.nIterations() >= minIter_)
|
||||
&& solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
&& solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
{
|
||||
break;
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2014 OpenFOAM Foundation
|
||||
Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -149,7 +149,7 @@ Foam::solverPerformance Foam::smoothSolver::solve
|
||||
solverPerf.finalResidual() = solverPerf.initialResidual();
|
||||
}
|
||||
|
||||
if (lduMatrix::debug >= 2)
|
||||
if ((log_ >= 2) || (lduMatrix::debug >= 2))
|
||||
{
|
||||
Info.masterStream(matrix().mesh().comm())
|
||||
<< " Normalisation factor = " << normFactor << endl;
|
||||
@ -160,7 +160,7 @@ Foam::solverPerformance Foam::smoothSolver::solve
|
||||
if
|
||||
(
|
||||
minIter_ > 0
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
|| !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
{
|
||||
addProfiling(solve, "lduMatrix::smoother." + fieldName_);
|
||||
@ -203,7 +203,7 @@ Foam::solverPerformance Foam::smoothSolver::solve
|
||||
(
|
||||
(
|
||||
(solverPerf.nIterations() += nSweeps_) < maxIter_
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_)
|
||||
&& !solverPerf.checkConvergence(tolerance_, relTol_, log_)
|
||||
)
|
||||
|| solverPerf.nIterations() < minIter_
|
||||
);
|
||||
|
@ -6,7 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2016 OpenFOAM Foundation
|
||||
Copyright (C) 2016-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2016-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -222,7 +222,14 @@ Foam::SolverPerformance<Type> Foam::fvMatrix<Type>::solveSegregated
|
||||
solverControls
|
||||
)->solve(psiCmpt, sourceCmpt, cmpt);
|
||||
|
||||
if (SolverPerformance<Type>::debug)
|
||||
const label log =
|
||||
solverControls.getOrDefault<label>
|
||||
(
|
||||
"log",
|
||||
SolverPerformance<Type>::debug
|
||||
);
|
||||
|
||||
if (log)
|
||||
{
|
||||
solverPerf.print(Info.masterStream(this->mesh().comm()));
|
||||
}
|
||||
@ -289,7 +296,14 @@ Foam::SolverPerformance<Type> Foam::fvMatrix<Type>::solveCoupled
|
||||
coupledMatrixSolver->solve(psi)
|
||||
);
|
||||
|
||||
if (SolverPerformance<Type>::debug)
|
||||
const label log =
|
||||
solverControls.getOrDefault<label>
|
||||
(
|
||||
"log",
|
||||
SolverPerformance<Type>::debug
|
||||
);
|
||||
|
||||
if (log)
|
||||
{
|
||||
solverPerf.print(Info.masterStream(this->mesh().comm()));
|
||||
}
|
||||
|
@ -137,7 +137,10 @@ Foam::solverPerformance Foam::fvMatrix<Foam::scalar>::fvSolver::solve
|
||||
totalSource
|
||||
);
|
||||
|
||||
if (solverPerformance::debug)
|
||||
const label log =
|
||||
solverControls.getOrDefault<label>("log", solverPerformance::debug);
|
||||
|
||||
if (log)
|
||||
{
|
||||
solverPerf.print(Info.masterStream(fvMat_.mesh().comm()));
|
||||
}
|
||||
@ -264,7 +267,10 @@ Foam::solverPerformance Foam::fvMatrix<Foam::scalar>::solveSegregated
|
||||
}
|
||||
}
|
||||
|
||||
if (solverPerformance::debug)
|
||||
const label log =
|
||||
solverControls.getOrDefault<label>("log", solverPerformance::debug);
|
||||
|
||||
if (log)
|
||||
{
|
||||
solverPerf.print(Info.masterStream(mesh().comm()));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user