virtualMassModel.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) 2014-2025 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::virtualMassModel
26 
27 Description
28  Model for virtual mass between phases
29 
30 SourceFiles
31  virtualMassModel.C
32  virtualMassModelNew.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef virtualMassModel_H
37 #define virtualMassModel_H
38 
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 
41 #include "volFields.H"
42 #include "dictionary.H"
43 #include "runTimeSelectionTables.H"
45 
46 namespace Foam
47 {
48 
49 /*---------------------------------------------------------------------------*\
50  Class virtualMassModel Declaration
51 \*---------------------------------------------------------------------------*/
52 
53 class virtualMassModel
54 :
55  public regIOobject
56 {
57 public:
58 
59  //- Runtime type information
60  TypeName("virtualMassModel");
61 
62 
63  // Declare runtime construction
64 
66  (
67  autoPtr,
69  dictionary,
70  (
71  const dictionary& dict,
72  const phaseInterface& interface,
73  const bool registerObject
74  ),
75  (dict, interface, registerObject)
76  );
77 
78 
79  // Static Data Members
80 
81  //- Coefficient dimensions
82  static const dimensionSet dimK;
83 
84 
85  // Constructors
86 
87  //- Construct from a dictionary and an interface
89  (
90  const dictionary& dict,
91  const phaseInterface& interface,
92  const bool registerObject
93  );
94 
95 
96  //- Destructor
97  virtual ~virtualMassModel();
98 
99 
100  // Selectors
101 
103  (
104  const dictionary& dict,
105  const phaseInterface& interface,
106  const bool outer=true,
107  const bool registerObject=true
108  );
109 
110 
111  // Member Functions
112 
113  //- Return the virtual mass coefficient K
114  // used in the momentum equation
115  // ddt(alpha1*rho1*U1) + ... = ... K*(DU1_Dt - DU2_Dt)
116  // ddt(alpha2*rho2*U2) + ... = ... K*(DU1_Dt - DU2_Dt)
117  virtual tmp<volScalarField> K() const = 0;
118 
119  // Dummy write for regIOobject
120  bool writeData(Ostream& os) const;
121 };
122 
123 
124 /*---------------------------------------------------------------------------*\
125  Class blendedVirtualMassModel Declaration
126 \*---------------------------------------------------------------------------*/
127 
129 :
130  public BlendedInterfacialModel<virtualMassModel>
131 {
132 public:
133 
134  // Constructors
135 
136  //- Inherit base class constructors
137  using
140 
141 
142  // Selectors
143 
145  (
146  const dictionary& dict,
147  const phaseInterface& interface,
148  const dictionary& blendingDict
149  )
150  {
151  return
153  (
155  );
156  }
157 
158 
159  // Member Functions
160 
161  //- Return the virtual mass coefficient K
162  tmp<volScalarField> K() const;
163 };
164 
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 } // End namespace Foam
169 
170 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
171 
172 #endif
173 
174 // ************************************************************************* //
Wrapper class for interfacial models for which multiple instances of the model are used for different...
BlendedInterfacialModel(const dictionary &dict, const phaseInterface &interface, const dictionary &blendingDict, const Args &... args)
Construct from a dictionary, an interface and a blending dictionary.
const phaseInterface & interface() const
Access the interface.
bool & registerObject()
Register object created from this IOobject with registry if true.
Definition: IOobject.H:343
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
static autoPtr< blendedVirtualMassModel > New(const dictionary &dict, const phaseInterface &interface, const dictionary &blendingDict)
tmp< volScalarField > K() const
Return the virtual mass coefficient K.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Definition: dictionary.H:162
Dimension set for the base types.
Definition: dimensionSet.H:125
Class to represent an interface between phases. Derivations can further specify the configuration of ...
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Definition: regIOobject.H:55
A class for managing temporary objects.
Definition: tmp.H:55
Model for virtual mass between phases.
virtual ~virtualMassModel()
Destructor.
bool writeData(Ostream &os) const
Pure virtual writaData function.
declareRunTimeSelectionTable(autoPtr, virtualMassModel, dictionary,(const dictionary &dict, const phaseInterface &interface, const bool registerObject),(dict, interface, registerObject))
virtual tmp< volScalarField > K() const =0
Return the virtual mass coefficient K.
static autoPtr< virtualMassModel > New(const dictionary &dict, const phaseInterface &interface, const bool outer=true, const bool registerObject=true)
virtualMassModel(const dictionary &dict, const phaseInterface &interface, const bool registerObject)
Construct from a dictionary and an interface.
static const dimensionSet dimK
Coefficient dimensions.
TypeName("virtualMassModel")
Runtime type information.
Namespace for OpenFOAM.
void outer(LagrangianPatchField< typename outerProduct< Type1, Type2 >::type > &f, const LagrangianPatchField< Type1 > &f1, const LagrangianPatchField< Type2 > &f2)
const dictionary & blendingDict(const phaseSystem &fluid, const dictionary &dict)
Macros to ease declaration of run-time selection tables.
dictionary dict