Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / postProcessing / postCalc / postCalc.C
blob54208cbb69aed92f6fa6d16442349bd6bb982466
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 Application
25     postCalc
27 Description
28     Generic wrapper for calculating a quantity at each time
30 \*---------------------------------------------------------------------------*/
32 #include "calc.H"
33 #include "timeSelector.H"
35 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37 namespace Foam
39     void tryCalc(const argList& args, const Time& runTime, const fvMesh& mesh)
40     {
41         FatalIOError.throwExceptions();
43         try
44         {
45             calc(args, runTime, mesh);
46         }
47         catch(IOerror& err)
48         {
49             Warning<< err << endl;
50         }
51     }
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 int main(int argc, char *argv[])
59     Foam::timeSelector::addOptions();
60     Foam::argList::validOptions.insert("noWrite", "");
61     Foam::argList::validOptions.insert("dict", "dictionary name");
63 #   include "setRootCase.H"
64 #   include "createTime.H"
65     Foam::instantList timeDirs = Foam::timeSelector::select0(runTime, args);
66 #   include "createMesh.H"
68     forAll(timeDirs, timeI)
69     {
70         runTime.setTime(timeDirs[timeI], timeI);
72         Foam::Info<< "Time = " << runTime.timeName() << Foam::endl;
74         mesh.readUpdate();
76         Foam::tryCalc(args, runTime, mesh);
78         Foam::Info<< Foam::endl;
79     }
81     return 0;
85 // ************************************************************************* //