initial commit for version 1.5.x patch release
[OpenFOAM-1.5.x.git] / src / transportModels / interfaceProperties / gammaContactAngle / gammaContactAngle / gammaContactAngleFvPatchScalarField.H
blob6b90d838e1acbf6a2397c13505669241fb50da0b
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2008 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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     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, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     Foam::gammaContactAngleFvPatchScalarField
28 Description
29     Abstract base class for gammaContactAngle boundary conditions.
31     Derived classes must implement the theta() fuction which returns the
32     wall contact angle field.
34 SourceFiles
35     gammaContactAngleFvPatchScalarField.C
37 \*---------------------------------------------------------------------------*/
39 #ifndef gammaContactAngleFvPatchScalarField_H
40 #define gammaContactAngleFvPatchScalarField_H
42 #include "zeroGradientFvPatchFields.H"
43 #include "fvsPatchFields.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 namespace Foam
50 /*---------------------------------------------------------------------------*\
51                            Class gammaContactAngleFvPatch Declaration
52 \*---------------------------------------------------------------------------*/
54 class gammaContactAngleFvPatchScalarField
56     public zeroGradientFvPatchScalarField
59 public:
61     //- Runtime type information
62     TypeName("gammaContactAngle");
65     // Constructors
67         //- Construct from patch and internal field
68         gammaContactAngleFvPatchScalarField
69         (
70             const fvPatch&,
71             const DimensionedField<scalar, volMesh>&
72         );
74         //- Construct from patch, internal field and dictionary
75         gammaContactAngleFvPatchScalarField
76         (
77             const fvPatch&,
78             const DimensionedField<scalar, volMesh>&,
79             const dictionary&
80         );
82         //- Construct by mapping given gammaContactAngleFvPatchScalarField
83         //  onto a new patch
84         gammaContactAngleFvPatchScalarField
85         (
86             const gammaContactAngleFvPatchScalarField&,
87             const fvPatch&,
88             const DimensionedField<scalar, volMesh>&,
89             const fvPatchFieldMapper&
90         );
92         //- Construct as copy
93         gammaContactAngleFvPatchScalarField
94         (
95             const gammaContactAngleFvPatchScalarField&
96         );
98         //- Construct as copy setting internal field reference
99         gammaContactAngleFvPatchScalarField
100         (
101             const gammaContactAngleFvPatchScalarField&,
102             const DimensionedField<scalar, volMesh>&
103         );
106     // Member functions
108         //- Return the contact angle
109         virtual tmp<scalarField> theta
110         (
111             const fvPatchVectorField& Up,
112             const fvsPatchVectorField& nHat
113         ) const = 0;
117 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 } // End namespace Foam
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
123 #endif
125 // ************************************************************************* //