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-2021 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 ejection 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  vectorField& momentumToTransfer
139  ) = 0;
140 
141  //- Correct kinematic and thermodynamic transfers
142  virtual void correct
143  (
144  scalarField& availableMass,
145  scalarField& massToTransfer,
146  vectorField& momentumToTransfer,
147  scalarField& energyToTransfer
148  ) = 0;
149 
150  //- Return the total mass transferred
151  virtual scalar transferredMassTotal() const;
152 
153  //- Accumulate the total mass transferred for the patches into the
154  // scalarField provided
155  virtual void patchTransferredMassTotals(scalarField& patchMasses) const
156  {}
157 
158 
159  // Member Operators
160 
161  //- Disallow default bitwise assignment
162  void operator=(const transferModel&) = delete;
163 };
164 
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 } // End namespace surfaceFilmModels
169 } // End namespace regionModels
170 } // End namespace Foam
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 #endif
175 
176 // ************************************************************************* //
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:156
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.
Definition: transferModel.C:92
transferModel(surfaceFilmRegionModel &film)
Construct for film.
Definition: transferModel.C:53
A class for handling words, derived from string.
Definition: word.H:59
void addToTransferredMass(const scalar dMass)
Add to transferred mass.
Definition: transferModel.C:45
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 ejection 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.