if (initialised_) { if (criteriaSatisfied()) //满足收敛条件,局部残差,总体残差 { Info<< nl << algorithmName_ << " solution converged in " << time.timeName() << " iterations" << nl << endl;
// Set to finalise calculation time.writeAndEnd(); //Write the objects now (not at end of iteration) and end the run } else { storePrevIterFields(); //把当前迭代步的场存储 } } else { initialised_ = true; storePrevIterFields(); }
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class Foam::solutionControl Description Base class for solution control classes \*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*\ Class solutionControl Declaration \*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*\ Class simpleControl Declaration \*---------------------------------------------------------------------------*/
classsimpleControl : public solutionControl {
protected:
// Protected Data
//- Initialised flag bool initialised_;
// Protected Member Functions
//- Read controls from fvSolution dictionary voidread();
//- Return true if all convergence checks are satisfied boolcriteriaSatisfied();
/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenFOAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. \*---------------------------------------------------------------------------*/