Loading...
Searching...
No Matches
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{
49/*---------------------------------------------------------------------------*\
50 Class dynamicAlphaContactAngleFvPatch Declaration
51\*---------------------------------------------------------------------------*/
52
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 as copy setting internal field reference
114 (
117 );
118
119 //- Return a clone
120 virtual tmp<fvPatchField<scalar>> clone() const
121 {
122 return fvPatchField<scalar>::Clone(*this);
123 }
124
125 //- Clone with an internal field reference
127 (
129 ) const
130 {
131 return fvPatchField<scalar>::Clone(*this, iF);
132 }
133
134
135 // Member functions
136
137 //- Evaluate and return dynamic contact-angle
139 (
140 const fvPatchVectorField& Up,
141 const fvsPatchVectorField& nHat
142 ) const;
143
144 //- Write
145 virtual void write(Ostream&) const;
147
148
149// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
150
151} // End namespace Foam
152
153// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154
155#endif
156
157// ************************************************************************* //
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:59
alphaContactAngleTwoPhaseFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
virtual tmp< fvPatchField< scalar > > clone(const DimensionedField< scalar, volMesh > &iF) const
Clone with an internal field reference.
virtual tmp< fvPatchField< scalar > > clone() const
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.
dynamicAlphaContactAngleFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
A FieldMapper for finite-volume patch fields.
static tmp< fvPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition fvPatch.H:71
A class for managing temporary objects.
Definition tmp.H:75
Namespace for OpenFOAM.
fvsPatchField< vector > fvsPatchVectorField
fvPatchField< vector > fvPatchVectorField
runTime write()
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68