BUGFIX: Illegal use of uninitialised value (backport)
[foam-extend-3.2.git] / applications / utilities / miscellaneous / foamFormatConvert / writeMeshObject.H
blobc992a98bed9658031fe12cebc7d893bcf7a0d4d6
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
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.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Global
26     writeMeshObject
28 Description
29     Write a mesh object in the format specified in controlDict.
31 \*---------------------------------------------------------------------------*/
33 #ifndef writeMeshObject_H
34 #define writeMeshObject_H
36 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
38 namespace Foam
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 template<class T>
44 inline bool writeMeshObject
46     const word& name,
47     const fileName& meshDir,
48     Time& runTime
51     IOobject io
52     (
53         name,
54         runTime.timeName(),
55         meshDir,
56         runTime,
57         IOobject::MUST_READ,
58         IOobject::NO_WRITE,
59         false
60     );
62     bool writeOk = false;
64     if (io.headerOk())
65     {
66         Info<< "        Reading " << io.headerClassName()
67             << " : " << name << endl;
69         // Switch off type checking (for reading e.g. faceZones as
70         // generic list of dictionaries).
71         const word oldTypeName = T::typeName;
72         const_cast<word&>(T::typeName) = word::null;
74         T meshObject(io);
76         const_cast<word&>(T::typeName) = oldTypeName;
77         // Fake type back to what was in field
78         const_cast<word&>(meshObject.type()) = io.headerClassName();
80         Info<< "        Writing " << name << endl;
81         writeOk = meshObject.regIOobject::write();
82     }
84     return writeOk;
88 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 } // End namespace Foam
92 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
94 #endif
96 // ************************************************************************* //