Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / transportModels / twoPhaseInterfaceProperties / alphaContactAngle / constantAlphaContactAngle / constantAlphaContactAngleFvPatchScalarField.H
blobae9e754b90f687891762223ce4757a9a028f4767
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2008-2010 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by
13     the Free Software Foundation, either version 3 of the License, or
14     (at your option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::constantAlphaContactAngleFvPatchScalarField
27 Description
28     A constant alphaContactAngle scalar boundary condition
29     (alphaContactAngleFvPatchScalarField)
31 SourceFiles
32     constantAlphaContactAngleFvPatchScalarField.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef constantAlphaContactAngleFvPatchScalarField_H
37 #define constantAlphaContactAngleFvPatchScalarField_H
39 #include "alphaContactAngleFvPatchScalarField.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                            Class constantAlphaContactAngleFvPatch Declaration
48 \*---------------------------------------------------------------------------*/
50 class constantAlphaContactAngleFvPatchScalarField
52     public alphaContactAngleFvPatchScalarField
54     // Private data
56         //- Equilibrium contact angle
57         scalar theta0_;
60 public:
62     //- Runtime type information
63     TypeName("constantAlphaContactAngle");
66     // Constructors
68         //- Construct from patch and internal field
69         constantAlphaContactAngleFvPatchScalarField
70         (
71             const fvPatch&,
72             const DimensionedField<scalar, volMesh>&
73         );
75         //- Construct from patch, internal field and dictionary
76         constantAlphaContactAngleFvPatchScalarField
77         (
78             const fvPatch&,
79             const DimensionedField<scalar, volMesh>&,
80             const dictionary&
81         );
83         //- Construct by mapping given
84         //  constantAlphaContactAngleFvPatchScalarField
85         //  onto a new patch
86         constantAlphaContactAngleFvPatchScalarField
87         (
88             const constantAlphaContactAngleFvPatchScalarField&,
89             const fvPatch&,
90             const DimensionedField<scalar, volMesh>&,
91             const fvPatchFieldMapper&
92         );
94         //- Construct as copy
95         constantAlphaContactAngleFvPatchScalarField
96         (
97             const constantAlphaContactAngleFvPatchScalarField&
98         );
100         //- Construct and return a clone
101         virtual tmp<fvPatchScalarField> clone() const
102         {
103             return tmp<fvPatchScalarField>
104             (
105                 new constantAlphaContactAngleFvPatchScalarField(*this)
106             );
107         }
109         //- Construct as copy setting internal field reference
110         constantAlphaContactAngleFvPatchScalarField
111         (
112             const constantAlphaContactAngleFvPatchScalarField&,
113             const DimensionedField<scalar, volMesh>&
114         );
116         //- Construct and return a clone setting internal field reference
117         virtual tmp<fvPatchScalarField> clone
118         (
119             const DimensionedField<scalar, volMesh>& iF
120         ) const
121         {
122             return tmp<fvPatchScalarField>
123             (
124                 new constantAlphaContactAngleFvPatchScalarField(*this, iF)
125             );
126         }
129     // Member functions
131         //- Return the equilibrium contact-angle
132         virtual tmp<scalarField> theta
133         (
134             const fvPatchVectorField& Up,
135             const fvsPatchVectorField& nHat
136         ) const;
138         //- Write
139         virtual void write(Ostream&) const;
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 } // End namespace Foam
147 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
149 #endif
151 // ************************************************************************* //