Loading...
Searching...
No Matches
dynamicContactAngleForce.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2020-2025 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26Class
27 Foam::regionModels::areaSurfaceFilmModels::dynamicContactAngleForce
28
29Description
30 Film-speed or film-temperature dependent
31 contact-angle force with a stochastic perturbation.
32
33 The contact angle in degrees is specified as a \c Foam::Function1 type,
34 to enable the use of, e.g. \c constant, \c polynomial, \c table values
35 and the stochastic perturbation obtained from a
36 \c Foam::distributionModels::distributionModel.
37
38Usage
39 Minimal example:
40 \verbatim
41 forces
42 (
43 dynamicContactAngle
44 );
45
46 dynamicContactAngleForceCoeffs
47 {
48 // Mandatory entries
49 distribution <subDict>;
50
51 // Conditional entries
52
53 // Option-1
54 Utheta <Function1<scalar>>;
55
56 // Option-2
57 Ttheta <Function1<scalar>>;
58
59 // Inherited entries
60 ...
61 }
62 \endverbatim
63
64 where the entries mean:
65 \table
66 Property | Description | Type | Reqd | Deflt
67 dynamicContactAngle | Type name | word | yes | -
68 Utheta | Contact angle as a function of film speed <!--
69 --> | <Function1<scalar> | choice | -
70 Ttheta | Contact angle as a function of film temperature <!--
71 --> | <Function1<scalar> | choice | -
72 distribution | Probability distribution model | subDict | yes | -
73 \endtable
74
75 The inherited entries are elaborated in:
76 - \link contactAngleForce.H \endlink
77 - \link Function1.H \endlink
78 - \link distributionModel.H \endlink
79
80SourceFiles
81 dynamicContactAngleForce.C
82
83\*---------------------------------------------------------------------------*/
84
85#ifndef areaSurfaceFilmModels_dynamicContactAngleForce_H
86#define areaSurfaceFilmModels_dynamicContactAngleForce_H
87
88#include "contactAngleForce.H"
89#include "Random.H"
90
91// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
92
93namespace Foam
94{
95
96// Forward Declarations
97template<class Type> class Function1;
99
100namespace regionModels
101{
102namespace areaSurfaceFilmModels
103{
104
105/*---------------------------------------------------------------------------*\
106 Class dynamicContactAngleForce Declaration
107\*---------------------------------------------------------------------------*/
108
110:
111 public contactAngleForce
112{
113 // Private Data
114
115 //- Contact-angle field in degrees
116 mutable autoPtr<areaScalarField> thetaPtr_;
117
118 //- Contact angle as a function of film speed
119 autoPtr<Function1<scalar>> U_vs_thetaPtr_;
120
121 //- Contact angle as a function of film temperature
122 autoPtr<Function1<scalar>> T_vs_thetaPtr_;
123
124 //- Random number generator
125 Random rndGen_;
126
127 //- Stochastic perturbation model for contact angle
128 autoPtr<distributionModel> distributionPtr_;
129
130
131protected:
132
133 //- Return the contact angle field
134 virtual tmp<areaScalarField> theta() const;
135
136
137public:
139 //- Runtime type information
140 TypeName("dynamicContactAngle");
141
142
143 // Constructors
144
145 //- Construct from surface film model and dictionary
147 (
149 const dictionary& dict
150 );
151
152
153 //- Destructor
155};
156
157
158// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159
160} // End namespace areaSurfaceFilmModels
161} // End namespace regionModels
162} // End namespace Foam
163
164// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
165
166#endif
167
168// ************************************************************************* //
Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a c...
Definition Function1.H:92
Random number generator.
Definition Random.H:56
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Definition autoPtr.H:65
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
A library of runtime-selectable doubly-truncated probability distribution models. Returns random samp...
Base-class for film contact angle force models.
Film-speed or film-temperature dependent contact-angle force with a stochastic perturbation.
TypeName("dynamicContactAngle")
Runtime type information.
dynamicContactAngleForce(liquidFilmBase &film, const dictionary &dict)
Construct from surface film model and dictionary.
virtual tmp< areaScalarField > theta() const
Return the contact angle field.
const liquidFilmBase & film() const
Return const access to the film surface film model.
const dictionary & dict() const
Return const access to the cloud dictionary.
A class for managing temporary objects.
Definition tmp.H:75
Namespace for OpenFOAM.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68