FreeFOAM The Cross-Platform CFD Toolkit
foamUpgradeFvSolution.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Application
25  foamUpgradeFvSolution
26 
27 Description
28  Simple tool to upgrade the syntax of system/fvSolution::solvers
29 
30 Usage
31 
32  - foamUpgradeFvSolution [OPTION]
33 
34  @param -test \n
35  Suppress writing the updated fvSolution file
36 
37  @param -case <dir> \n
38  Specify the case directory
39 
40  @param -help \n
41  Display short usage message
42 
43  @param -doc \n
44  Display Doxygen documentation page
45 
46  @param -srcDoc \n
47  Display source code
48 
49 \*---------------------------------------------------------------------------*/
50 
51 #include <OpenFOAM/argList.H>
52 #include <OpenFOAM/Time.H>
53 #include <OpenFOAM/IOdictionary.H>
54 #include <OpenFOAM/solution.H>
55 
56 using namespace Foam;
57 
58 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
59 // Main program:
60 
61 int main(int argc, char *argv[])
62 {
64  argList::validOptions.insert("test", "");
65 
66 # include <OpenFOAM/setRootCase.H>
67 # include <OpenFOAM/createTime.H>
68 
70  (
71  IOobject
72  (
73  "fvSolution",
74  runTime.system(),
75  runTime,
78  false
79  )
80  );
81 
82  label nChanged = 0;
83  entry* e = solutionDict.lookupEntryPtr("solvers", false, false);
84  if (e && e->isDict())
85  {
86  nChanged = solution::upgradeSolverDict(e->dict(), true);
87  }
88 
89  Info<< nChanged << " solver settings changed" << nl << endl;
90  if (nChanged)
91  {
92  if (args.optionFound("test"))
93  {
94  Info<< "-test option: no changes made" << nl << endl;
95  }
96  else
97  {
98  mv
99  (
101  solutionDict.objectPath() + ".old"
102  );
103 
105  (
109  );
110 
111  Info<< "Backup to " << (solutionDict.objectPath() + ".old") << nl
112  << "Write to " << solutionDict.objectPath() << nl << endl;
113  }
114  }
115 
116  return 0;
117 }
118 
119 
120 // ************************ vim: set sw=4 sts=4 et: ************************ //