Formatting
[foam-extend-3.2.git] / src / coupledMatrix / coupledLduSolver / coupledSolverPerformance / coupledSolverPerformance.C
blob6ab60d9bc3346f4abad7e40bc91878494473b075
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Description
26 \*---------------------------------------------------------------------------*/
28 #include "coupledSolverPerformance.H"
30 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
32 bool Foam::coupledSolverPerformance::checkConvergence
34     const scalar Tolerance,
35     const scalar RelTolerance
38     if (coupledLduMatrix::debug >= 2)
39     {
40         Info<< solverName_
41             << ":  Iteration " << nIterations_
42             << " residual = " << finalResidual_
43             << endl;
44     }
46     if
47     (
48         mag(finalResidual_) < Tolerance
49      || (
50             RelTolerance > SMALL
51          && mag(finalResidual_) <= RelTolerance*mag(initialResidual_)
52         )
53     )
54     {
55         converged_ = true;
56     }
57     else
58     {
59         converged_ = false;
60     }
62     return converged_;
66 bool Foam::coupledSolverPerformance::checkSingularity
68     const scalar& residual
71     if (mag(residual) > VSMALL)
72     {
73         singular_ = false;
74     }
75     else
76     {
77         singular_ = true;
78     }
80     return singular_;
84 void Foam::coupledSolverPerformance::print() const
86     if (coupledLduMatrix::debug)
87     {
88         Info<< solverName_ << ":  Solving for " << fieldName_;
90         if (singular())
91         {
92             Info<< ":  solution singularity" << endl;
93         }
94         else
95         {
96             Info<< ", Initial residual = " << initialResidual_
97                 << ", Final residual = " << finalResidual_
98                 << ", No Iterations " << nIterations_
99                 << endl;
100         }
101     }
105 // ************************************************************************* //