Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / regionModels / thermoBaffleModels / thermoBaffleModel / thermoBaffleModelNew.C
blob976b478e331810869994907b124eb88ebc85fb63
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011-2011 OpenCFD Ltd.
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "thermoBaffleModel.H"
28 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
30 namespace Foam
32 namespace regionModels
34 namespace thermoBaffleModels
37 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
39 autoPtr<thermoBaffleModel> thermoBaffleModel::New(const fvMesh& mesh)
42     word modelType;
43     {
44         IOdictionary thermoBafflePropertiesDict
45         (
46             IOobject
47             (
48                 "thermoBaffleProperties",
49                 mesh.time().constant(),
50                 mesh,
51                 IOobject::MUST_READ_IF_MODIFIED,
52                 IOobject::NO_WRITE,
53                 false
54             )
55         );
57         thermoBafflePropertiesDict.lookup("thermoBaffleModel") >> modelType;
58     }
59     Info<< "Selecting baffle model " << modelType << endl;
61     meshConstructorTable::iterator cstrIter =
62         meshConstructorTablePtr_->find(modelType);
64     if (cstrIter == meshConstructorTablePtr_->end())
65     {
67         FatalErrorIn("thermoBaffleModel::New(const fvMesh&)")
68             << "Unknown thermoBaffleModel type " << modelType
69             << nl << nl
70             <<  "Valid thermoBaffleModel types are:" << nl
71             << meshConstructorTablePtr_->sortedToc()
72             << exit(FatalError);
73     }
75     return autoPtr<thermoBaffleModel>(cstrIter()(modelType, mesh));
79 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
81 } // End namespace thermoBaffleModels
82 } // End namespace regionModels
83 } // End namespace Foam
85 // ************************************************************************* //