Forward compatibility: flex
[foam-extend-3.2.git] / applications / utilities / mesh / generation / cfMesh / preparePar / preparePar.C
blobb5d5f7fdb0e64429821c9f699e62b77673eeccb2
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     Prepares the case for a parallel mesh generation run
27 Description
28     - creates processor* directories which contain data for processors
30 \*---------------------------------------------------------------------------*/
32 #include "argList.H"
33 #include "objectRegistry.H"
34 #include "foamTime.H"
36 #include <sstream>
38 using namespace Foam;
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 // Main program:
44 int main(int argc, char *argv[])
46 #   include "setRootCase.H"
47 #   include "createTime.H"
49     IOdictionary meshDict
50     (
51         IOobject
52         (
53             "meshDict",
54             runTime.system(),
55             runTime,
56             IOobject::MUST_READ,
57             IOobject::NO_WRITE
58         )
59     );
61     IOdictionary decomposeParDict
62     (
63         IOobject
64         (
65             "decomposeParDict",
66             runTime.system(),
67             runTime,
68             IOobject::MUST_READ,
69             IOobject::NO_WRITE
70         )
71     );
73     const label nProcessors
74     (
75         readLabel(decomposeParDict.lookup("numberOfSubdomains"))
76     );
78     for(label procI=0;procI<nProcessors;++procI)
79     {
80         fileName file("processor");
81         std::ostringstream ss;
82         ss << procI;
83         file += ss.str();
84         Info << "Creating " << file << endl;
86         // create a directory for processor data
87         mkDir(runTime.path()/file);
89         // generate constant directories
90         mkDir(runTime.path()/"constant");
92         // copy the contents of the const directory into processor*
93         cp(runTime.path()/"constant", runTime.path()/file);
95         // generate 0 directories
96         mkDir(runTime.path()/file/"0");
97     }
99     Info << "End\n" << endl;
100     return 0;
104 // ************************************************************************* //