diffusiveMassTransferModel.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) 2015-2022 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::diffusiveMassTransferModel
26 
27 Description
28  Model for diffusive mass transfer coefficients between two phases
29 
30 SourceFiles
31  diffusiveMassTransferModel.C
32 
33 \*---------------------------------------------------------------------------*/
34 
35 #ifndef diffusiveMassTransferModel_H
36 #define diffusiveMassTransferModel_H
37 
38 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
39 
40 #include "volFields.H"
41 #include "dictionary.H"
42 #include "runTimeSelectionTables.H"
44 #include "SidedInterfacialModel.H"
45 
46 namespace Foam
47 {
48 
49 class phaseSystem;
50 
51 /*---------------------------------------------------------------------------*\
52  Class diffusiveMassTransferModel Declaration
53 \*---------------------------------------------------------------------------*/
54 
56 {
57 public:
58 
59  //- Runtime type information
60  TypeName("diffusiveMassTransferModel");
61 
62 
63  // Declare runtime construction
64 
66  (
67  autoPtr,
69  dictionary,
70  (
71  const dictionary& dict,
72  const phaseInterface& interface
73  ),
74  (dict, interface)
75  );
76 
77 
78  // Static Data Members
79 
80  //- Coefficient dimensions
81  static const dimensionSet dimK;
82 
83  //- Does this model require correcting on fixed flux boundaries?
84  static const bool correctFixedFluxBCs = false;
85 
86 
87  // Constructors
88 
89  //- Construct from a dictionary and an interface
91  (
92  const dictionary& dict,
93  const phaseInterface& interface
94  );
95 
96 
97  //- Destructor
99 
100 
101  // Selectors
102 
104  (
105  const dictionary& dict,
106  const phaseInterface& interface
107  );
108 
109 
110  // Member Functions
111 
112  //- The implicit mass transfer coefficient
113  // Note: this has had the species mass diffusivity factored out
114  virtual tmp<volScalarField> K() const = 0;
115 };
116 
117 
118 /*---------------------------------------------------------------------------*\
119  Class blendedDiffusiveMassTransferModel Declaration
120 \*---------------------------------------------------------------------------*/
123 :
124  public BlendedInterfacialModel<diffusiveMassTransferModel>
125 {
126 public:
127 
128  // Constructors
129 
130  //- Inherit base class constructors
131  using
133  BlendedInterfacialModel;
134 
135 
136  // Selectors
137 
139  (
140  const dictionary& dict,
141  const phaseInterface& interface
142  );
143 
144 
145  // Member Functions
146 
147  //- Return the heatTransfer coefficient K
148  tmp<volScalarField> K() const;
149 };
150 
151 
152 
153 /*---------------------------------------------------------------------------*\
154  Class sidedBlendedDiffusiveMassTransferModel Declaration
155 \*---------------------------------------------------------------------------*/
158 :
159  public SidedInterfacialModel<blendedDiffusiveMassTransferModel>
160 {
161 public:
162 
163  // Constructors
164 
165  //- Inherit base class constructors
166  using
168  SidedInterfacialModel;
169 
170 
171  // Selectors
172 
174  (
175  const dictionary& dict,
176  const phaseInterface& interface
177  );
178 };
179 
180 
181 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 
183 } // End namespace Foam
184 
185 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 
187 #endif
188 
189 // ************************************************************************* //
dictionary dict
static const bool correctFixedFluxBCs
Does this model require correcting on fixed flux boundaries?
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:156
virtual tmp< volScalarField > K() const =0
The implicit mass transfer coefficient.
virtual ~diffusiveMassTransferModel()
Destructor.
Model for diffusive mass transfer coefficients between two phases.
Class to represent an interface between phases. Derivations can further specify the configuration of ...
Dimension set for the base types.
Definition: dimensionSet.H:121
TypeName("diffusiveMassTransferModel")
Runtime type information.
static const dimensionSet dimK
Coefficient dimensions.
diffusiveMassTransferModel(const dictionary &dict, const phaseInterface &interface)
Construct from a dictionary and an interface.
declareRunTimeSelectionTable(autoPtr, diffusiveMassTransferModel, dictionary,(const dictionary &dict, const phaseInterface &interface),(dict, interface))
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.
A class for managing temporary objects.
Definition: PtrList.H:53
Namespace for OpenFOAM.
static autoPtr< diffusiveMassTransferModel > New(const dictionary &dict, const phaseInterface &interface)