wallLubricationModel.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-2023 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::wallLubricationModel
26 
27 Description
28  Model for the wall lubrication force between two phases
29 
30 SourceFiles
31  wallLubricationModel.C
32  wallLubricationModelNew.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef wallLubricationModel_H
37 #define wallLubricationModel_H
38 
39 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
40 
41 #include "wallDependentModel.H"
42 #include "volFields.H"
43 #include "dictionary.H"
44 #include "runTimeSelectionTables.H"
46 
47 namespace Foam
48 {
49 
50 /*---------------------------------------------------------------------------*\
51  Class wallLubricationModel Declaration
52 \*---------------------------------------------------------------------------*/
53 
55 :
56  public wallDependentModel
57 {
58 protected:
59 
60  // Protected member functions
61 
62  //- Zero-gradient wall-lubrication force at walls
64 
65 
66 public:
67 
68  //- Runtime type information
69  TypeName("wallLubricationModel");
70 
71 
72  // Declare runtime construction
73 
75  (
76  autoPtr,
78  dictionary,
79  (
80  const dictionary& dict,
81  const phaseInterface& interface
82  ),
83  (dict, interface)
84  );
85 
86 
87  // Static Data Members
88 
89  //- Coefficient dimensions
90  static const dimensionSet dimF;
91 
92  //- Does this model require correcting on fixed flux boundaries?
93  static const bool correctFixedFluxBCs = true;
94 
95 
96  // Constructors
97 
98  //- Construct from a dictionary and an interface
100  (
101  const dictionary& dict,
102  const phaseInterface& interface
103  );
104 
105 
106  //- Destructor
107  virtual ~wallLubricationModel();
108 
109 
110  // Selectors
111 
113  (
114  const dictionary& dict,
115  const phaseInterface& interface,
116  const bool outer=true
117  );
118 
119 
120  // Member Functions
121 
122  //- Return wall lubrication force
123  virtual tmp<volVectorField> F() const = 0;
124 
125  //- Return face wall lubrication force
126  virtual tmp<surfaceScalarField> Ff() const = 0;
127 };
128 
129 
130 /*---------------------------------------------------------------------------*\
131  Class blendedWallLubricationModel Declaration
132 \*---------------------------------------------------------------------------*/
133 
135 :
136  public BlendedInterfacialModel<wallLubricationModel>
137 {
138 public:
139 
140  // Constructors
141 
142  //- Inherit base class constructors
143  using
146 
147 
148  // Selectors
149 
151  (
152  const dictionary& dict,
154  );
155 
156 
157  // Member Functions
158 
159  //- Return wall lubrication force
160  tmp<volVectorField> F() const;
161 
162  //- Return face wall lubrication force
163  tmp<surfaceScalarField> Ff() const;
164 };
165 
166 
167 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 
169 } // End namespace Foam
170 
171 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 
173 #endif
174 
175 // ************************************************************************* //
const phaseInterface & interface() const
Access the interface.
BlendedInterfacialModel(const dictionary &dict, const phaseInterface &interface)
Construct from a dictionary and an interface.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Definition: autoPtr.H:51
tmp< surfaceScalarField > Ff() const
Return face wall lubrication force.
tmp< volVectorField > F() const
Return wall lubrication force.
static autoPtr< blendedWallLubricationModel > New(const dictionary &dict, const phaseInterface &interface)
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Dimension set for the base types.
Definition: dimensionSet.H:122
Class to represent an interface between phases. Derivations can further specify the configuration of ...
A class for managing temporary objects.
Definition: tmp.H:55
A class which provides on-demand creation and caching of wall distance and wall normal fields for use...
Model for the wall lubrication force between two phases.
static autoPtr< wallLubricationModel > New(const dictionary &dict, const phaseInterface &interface, const bool outer=true)
TypeName("wallLubricationModel")
Runtime type information.
static const bool correctFixedFluxBCs
Does this model require correcting on fixed flux boundaries?
tmp< volVectorField > zeroGradWalls(tmp< volVectorField >) const
Zero-gradient wall-lubrication force at walls.
declareRunTimeSelectionTable(autoPtr, wallLubricationModel, dictionary,(const dictionary &dict, const phaseInterface &interface),(dict, interface))
static const dimensionSet dimF
Coefficient dimensions.
virtual tmp< surfaceScalarField > Ff() const =0
Return face wall lubrication force.
virtual ~wallLubricationModel()
Destructor.
virtual tmp< volVectorField > F() const =0
Return wall lubrication force.
wallLubricationModel(const dictionary &dict, const phaseInterface &interface)
Construct from a dictionary and an interface.
Namespace for OpenFOAM.
void outer(FieldField< Field1, typename outerProduct< Type1, Type2 >::type > &f, const FieldField< Field1, Type1 > &f1, const FieldField< Field2, Type2 > &f2)
Macros to ease declaration of run-time selection tables.
dictionary dict