dynamicAlphaContactAngleFvPatchScalarField.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) 2011-2013 OpenFOAM Foundation
9 Copyright (C) 2019 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Class
28 Foam::dynamicAlphaContactAngleFvPatchScalarField
29
30Description
31 A dynamic alphaContactAngle scalar boundary condition
32 (alphaContactAngleTwoPhaseFvPatchScalarField)
33
34SourceFiles
35 dynamicAlphaContactAngleFvPatchScalarField.C
36
37\*---------------------------------------------------------------------------*/
38
39#ifndef dynamicAlphaContactAngleFvPatchScalarField_H
40#define dynamicAlphaContactAngleFvPatchScalarField_H
41
43
44// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46namespace Foam
47{
48
49/*---------------------------------------------------------------------------*\
50 Class dynamicAlphaContactAngleFvPatch Declaration
51\*---------------------------------------------------------------------------*/
54:
56{
57 // Private data
58
59 //- Equilibrium contact angle
60 scalar theta0_;
61
62 //- Dynamic contact angle velocity scale
63 scalar uTheta_;
64
65 //- Limiting advancing contact angle
66 scalar thetaA_;
67
68 //- Limiting receding contact angle
69 scalar thetaR_;
70
71
72public:
73
74 //- Runtime type information
75 TypeName("dynamicAlphaContactAngle");
76
77
78 // Constructors
79
80 //- Construct from patch and internal field
82 (
83 const fvPatch&,
85 );
86
87 //- Construct from patch, internal field and dictionary
89 (
90 const fvPatch&,
92 const dictionary&
93 );
94
95 //- Construct by mapping given
96 // dynamicAlphaContactAngleFvPatchScalarField
97 // onto a new patch
99 (
101 const fvPatch&,
103 const fvPatchFieldMapper&
104 );
105
106 //- Construct as copy
108 (
110 );
111
112 //- Construct and return a clone
113 virtual tmp<fvPatchScalarField> clone() const
114 {
116 (
118 );
119 }
120
121 //- Construct as copy setting internal field reference
123 (
126 );
127
128 //- Construct and return a clone setting internal field reference
130 (
132 ) const
133 {
135 (
137 );
138 }
139
140
141 // Member functions
142
143 //- Evaluate and return dynamic contact-angle
144 virtual tmp<scalarField> theta
145 (
146 const fvPatchVectorField& Up,
147 const fvsPatchVectorField& nHat
148 ) const;
149
150 //- Write
151 virtual void write(Ostream&) const;
152};
153
154
155// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156
157} // End namespace Foam
158
159// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160
161#endif
162
163// ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:62
Abstract base class for two-phase alphaContactAngle boundary conditions.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
A dynamic alphaContactAngle scalar boundary condition (alphaContactAngleTwoPhaseFvPatchScalarField)
virtual tmp< fvPatchScalarField > clone(const DimensionedField< scalar, volMesh > &iF) const
Construct and return a clone setting internal field reference.
virtual tmp< fvPatchScalarField > clone() const
Construct and return a clone.
TypeName("dynamicAlphaContactAngle")
Runtime type information.
virtual tmp< scalarField > theta(const fvPatchVectorField &Up, const fvsPatchVectorField &nHat) const
Evaluate and return dynamic contact-angle.
A FieldMapper for finite-volume patch fields.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:71
A class for managing temporary objects.
Definition: tmp.H:65
Namespace for OpenFOAM.
runTime write()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition: typeInfo.H:73