Loading...
Searching...
No Matches
timeVaryingAlphaContactAngleFvPatchScalarField.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::timeVaryingAlphaContactAngleFvPatchScalarField
29
30Description
31 A time-varying alphaContactAngle scalar boundary condition
32 (alphaContactAngleTwoPhaseFvPatchScalarField)
33
34SourceFiles
35 timeVaryingAlphaContactAngleFvPatchScalarField.C
36
37\*---------------------------------------------------------------------------*/
38
39#ifndef timeVaryingAlphaContactAngleFvPatchScalarField_H
40#define timeVaryingAlphaContactAngleFvPatchScalarField_H
41
43
44// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45
46namespace Foam
47{
49/*---------------------------------------------------------------------------*\
50 Class timeVaryingAlphaContactAngleFvPatch Declaration
51\*---------------------------------------------------------------------------*/
52
54:
56{
57 // Private data
58
59 // Equilibrium contact angle control parameters
60 scalar t0_;
61 scalar thetaT0_;
62 scalar te_;
63 scalar thetaTe_;
64
65
66public:
67
68 //- Runtime type information
69 TypeName("timeVaryingAlphaContactAngle");
70
71
72 // Constructors
73
74 //- Construct from patch and internal field
76 (
77 const fvPatch&,
79 );
80
81 //- Construct from patch, internal field and dictionary
83 (
84 const fvPatch&,
86 const dictionary&
87 );
88
89 //- Construct by mapping given
90 // timeVaryingAlphaContactAngleFvPatchScalarField onto a new patch
92 (
94 const fvPatch&,
97 );
98
99 //- Construct as copy setting internal field reference
101 (
104 );
105
106 //- Return a clone
107 virtual tmp<fvPatchField<scalar>> clone() const
108 {
109 return fvPatchField<scalar>::Clone(*this);
110 }
111
112 //- Clone with an internal field reference
114 (
116 ) const
117 {
118 return fvPatchField<scalar>::Clone(*this, iF);
119 }
120
121
122 // Member Functions
124 //- Evaluate and return the time-varying equilibrium contact-angle
125 virtual tmp<scalarField> theta
126 (
127 const fvPatchVectorField& Up,
128 const fvsPatchVectorField& nHat
129 ) const;
130
131 //- Write
132 virtual void write(Ostream&) const;
133};
134
135
136// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
137
138} // End namespace Foam
139
140// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141
142#endif
143
144// ************************************************************************* //
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
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
virtual tmp< fvPatchField< scalar > > clone(const DimensionedField< scalar, volMesh > &iF) const
Clone with an internal field reference.
timeVaryingAlphaContactAngleFvPatchScalarField(const fvPatch &, const DimensionedField< scalar, volMesh > &)
Construct from patch and internal field.
virtual tmp< fvPatchField< scalar > > clone() const
Return a clone.
TypeName("timeVaryingAlphaContactAngle")
Runtime type information.
virtual tmp< scalarField > theta(const fvPatchVectorField &Up, const fvsPatchVectorField &nHat) const
Evaluate and return the time-varying equilibrium contact-angle.
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