transferModelNew.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 | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2017 OpenFOAM Foundation
9  Copyright (C) 2019-2021 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 \*---------------------------------------------------------------------------*/
28 
29 #include "transferModel.H"
30 
31 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
32 
33 namespace Foam
34 {
35 namespace regionModels
36 {
37 namespace surfaceFilmModels
38 {
39 
40 // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
41 
43 (
45  const dictionary& dict,
46  const word& modelType
47 )
48 {
49  Info<< " " << modelType << endl;
50 
51  auto* ctorPtr = dictionaryConstructorTable(modelType);
52 
53  if (!ctorPtr)
54  {
56  (
57  dict,
58  "transferModel",
59  modelType,
60  *dictionaryConstructorTablePtr_
61  ) << exit(FatalIOError);
62  }
63 
64  return autoPtr<transferModel>(ctorPtr(model, dict));
65 }
66 
67 
68 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
69 
70 } // End namespace surfaceFilmModels
71 } // End namespace regionModels
72 } // End namespace Foam
73 
74 // ************************************************************************* //
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition: autoPtr.H:65
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:132
static autoPtr< transferModel > New(surfaceFilmRegionModel &film, const dictionary &dict, const word &modelType)
Return a reference to the selected injection model.
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:104
const word & modelType() const
Return const access to the sub-model type.
Definition: subModelBase.C:116
A class for handling words, derived from Foam::string.
Definition: word.H:66
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
Definition: error.H:637
Namespace for OpenFOAM.
errorManipArg< error, int > exit(error &err, const int errNo=1)
Definition: errorManip.H:125
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:529
messageStream Info
Information stream (stdout output on master, null elsewhere)
IOerror FatalIOError
Error stream (stdout output on all processes), with additional 'FOAM FATAL IO ERROR' header text and ...
dictionary dict