Forward compatibility: flex
[foam-extend-3.2.git] / src / transportModels / interfaceProperties / alphaContactAngle / timeVaryingAlphaContactAngle / timeVaryingAlphaContactAngleFvPatchScalarField.H
blob483afacb172f964f7ac891e9fb04b47eeb0a9a69
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::timeVaryingAlphaContactAngleFvPatchScalarField
27 Description
28     A time-varying alphaContactAngle scalar boundary condition
29     (alphaContactAngleFvPatchScalarField)
31 SourceFiles
32     timeVaryingAlphaContactAngleFvPatchScalarField.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef timeVaryingAlphaContactAngleFvPatchScalarField_H
37 #define timeVaryingAlphaContactAngleFvPatchScalarField_H
39 #include "alphaContactAngleFvPatchScalarField.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47             Class timeVaryingAlphaContactAngleFvPatch Declaration
48 \*---------------------------------------------------------------------------*/
50 class timeVaryingAlphaContactAngleFvPatchScalarField
52     public alphaContactAngleFvPatchScalarField
54     // Private data
56         // Equilibrium contact angle control parameters
57         scalar t0_;
58         scalar thetaT0_;
59         scalar te_;
60         scalar thetaTe_;
63 public:
65     //- Runtime type information
66     TypeName("timeVaryingAlphaContactAngle");
69     // Constructors
71         //- Construct from patch and internal field
72         timeVaryingAlphaContactAngleFvPatchScalarField
73         (
74             const fvPatch&,
75             const DimensionedField<scalar, volMesh>&
76         );
78         //- Construct from patch, internal field and dictionary
79         timeVaryingAlphaContactAngleFvPatchScalarField
80         (
81             const fvPatch&,
82             const DimensionedField<scalar, volMesh>&,
83             const dictionary&
84         );
86         //- Construct by mapping given timeVaryingAlphaContactAngleFvPatchScalarField
87         //  onto a new patch
88         timeVaryingAlphaContactAngleFvPatchScalarField
89         (
90             const timeVaryingAlphaContactAngleFvPatchScalarField&,
91             const fvPatch&,
92             const DimensionedField<scalar, volMesh>&,
93             const fvPatchFieldMapper&
94         );
96         //- Construct and return a clone
97         virtual tmp<fvPatchScalarField> clone() const
98         {
99             return tmp<fvPatchScalarField>
100             (
101                 new timeVaryingAlphaContactAngleFvPatchScalarField(*this)
102             );
103         }
105         //- Construct as copy setting internal field reference
106         timeVaryingAlphaContactAngleFvPatchScalarField
107         (
108             const timeVaryingAlphaContactAngleFvPatchScalarField&,
109             const DimensionedField<scalar, volMesh>&
110         );
112         //- Construct and return a clone setting internal field reference
113         virtual tmp<fvPatchScalarField> clone
114         (
115             const DimensionedField<scalar, volMesh>& iF
116         ) const
117         {
118             return tmp<fvPatchScalarField>
119             (
120                 new timeVaryingAlphaContactAngleFvPatchScalarField(*this, iF)
121             );
122         }
125     // Member functions
127         //- Evaluate and return the time-varying equilibrium contact-angle
128         virtual tmp<scalarField> theta
129         (
130             const fvPatchVectorField& Up,
131             const fvsPatchVectorField& nHat
132         ) const;
134         //- Write
135         virtual void write(Ostream&) const;
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 } // End namespace Foam
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 #endif
147 // ************************************************************************* //