transferModel.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2017-2019 OpenFOAM Foundation
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 Class
25  Foam::regionModels::surfaceFilmModels::transferModel
26 
27 Description
28  Base class for film transfer models, handling mass transfer between the
29  film and the continuous phase.
30 
31 SourceFiles
32  transferModel.C
33  transferModelNew.C
34 
35 \*---------------------------------------------------------------------------*/
36 
37 #ifndef transferModel_H
38 #define transferModel_H
39 
40 #include "filmSubModelBase.H"
41 #include "runTimeSelectionTables.H"
42 #include "scalarField.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 namespace regionModels
49 {
50 namespace surfaceFilmModels
51 {
52 
53 /*---------------------------------------------------------------------------*\
54  Class transferModel Declaration
55 \*---------------------------------------------------------------------------*/
56 
57 class transferModel
58 :
59  public filmSubModelBase
60 {
61  // Private Data
62 
63  //- Transferred mass
64  scalar transferredMass_;
65 
66 
67 protected:
68 
69  // Protected Member Functions
70 
71  //- Add to transferred mass
72  void addToTransferredMass(const scalar dMass);
73 
74  //- Correct
75  void correct();
76 
77 
78 public:
79 
80  //- Runtime type information
81  TypeName("transferModel");
82 
83 
84  // Declare runtime constructor selection table
85 
87  (
88  autoPtr,
90  dictionary,
91  (
93  const dictionary& dict
94  ),
95  (film, dict)
96  );
97 
98 
99  // Constructors
100 
101  //- Construct for film
103 
104  //- Construct from type name, dictionary and surface film model
106  (
107  const word& modelType,
109  const dictionary& dict
110  );
111 
112  //- Disallow default bitwise copy construction
113  transferModel(const transferModel&) = delete;
114 
115 
116  // Selectors
117 
118  //- Return a reference to the selected injection model
120  (
122  const dictionary& dict,
123  const word& modelType
124  );
125 
126 
127  //- Destructor
128  virtual ~transferModel();
129 
130 
131  // Member Functions
132 
133  //- Correct kinematic transfers
134  virtual void correct
135  (
136  scalarField& availableMass,
137  scalarField& massToTransfer
138  ) = 0;
139 
140  //- Correct kinematic and thermodynamic transfers
141  virtual void correct
142  (
143  scalarField& availableMass,
144  scalarField& massToTransfer,
145  scalarField& energyToTransfer
146  );
147 
148  //- Return the total mass transferred
149  virtual scalar transferredMassTotal() const;
150 
151  //- Accumulate the total mass transferred for the patches into the
152  // scalarField provided
153  virtual void patchTransferredMassTotals(scalarField& patchMasses) const
154  {}
155 
156 
157  // Member Operators
158 
159  //- Disallow default bitwise assignment
160  void operator=(const transferModel&) = delete;
161 };
162 
163 
164 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165 
166 } // End namespace surfaceFilmModels
167 } // End namespace regionModels
168 } // End namespace Foam
169 
170 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
171 
172 #endif
173 
174 // ************************************************************************* //
declareRunTimeSelectionTable(autoPtr, transferModel, dictionary,(surfaceFilmRegionModel &film, const dictionary &dict),(film, dict))
Base class for surface film sub-models.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
Base class for film transfer models, handling mass transfer between the film and the continuous phase...
Definition: transferModel.H:56
TypeName("transferModel")
Runtime type information.
const dictionary & dict() const
Return const access to the cloud dictionary.
Definition: subModelBase.C:110
const surfaceFilmRegionModel & film() const
Return const access to the film surface film model.
virtual scalar transferredMassTotal() const
Return the total mass transferred.
transferModel(surfaceFilmRegionModel &film)
Construct for film.
Definition: transferModel.C:52
A class for handling words, derived from string.
Definition: word.H:59
void addToTransferredMass(const scalar dMass)
Add to transferred mass.
Definition: transferModel.C:44
virtual void patchTransferredMassTotals(scalarField &patchMasses) const
Accumulate the total mass transferred for the patches into the.
const word & modelType() const
Return const access to the sub-model type.
Definition: subModelBase.C:122
void operator=(const transferModel &)=delete
Disallow default bitwise assignment.
static autoPtr< transferModel > New(surfaceFilmRegionModel &film, const dictionary &dict, const word &modelType)
Return a reference to the selected injection model.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: PtrList.H:52
Macros to ease declaration of run-time selection tables.
Namespace for OpenFOAM.