Forward compatibility: flex
[foam-extend-3.2.git] / src / finiteVolume / fields / fvsPatchFields / constraint / ggi / ggiFvsPatchField.H
blobc2c2a32c7f2a69b29e5a9b50525f7099ea35f546
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     ggiFvsPatchField
27 Description
28     Generalized grid interface patch field.
30 Author
31     Hrvoje Jasak, Wikki Ltd.  All rights reserved
33 SourceFiles
34     ggiFvsPatchField.C
36 \*---------------------------------------------------------------------------*/
38 #ifndef ggiFvsPatchField_H
39 #define ggiFvsPatchField_H
41 #include "coupledFvsPatchField.H"
42 #include "ggiFvPatch.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 /*---------------------------------------------------------------------------*\
50                       Class ggiFvsPatchField Declaration
51 \*---------------------------------------------------------------------------*/
53 template<class Type>
54 class ggiFvsPatchField
56     public coupledFvsPatchField<Type>
58     // Private data
60         //- Local reference cast into the ggi patch
61         const ggiFvPatch& ggiPatch_;
64 public:
66     //- Runtime type information
67     TypeName(ggiFvPatch::typeName_());
70     // Constructors
72         //- Construct from patch and internal field
73         ggiFvsPatchField
74         (
75             const fvPatch&,
76             const DimensionedField<Type, surfaceMesh>&
77         );
79         //- Construct from patch, internal field and dictionary
80         ggiFvsPatchField
81         (
82             const fvPatch&,
83             const DimensionedField<Type, surfaceMesh>&,
84             const dictionary&
85         );
87         //- Construct by mapping given ggiFvsPatchField onto a new patch
88         ggiFvsPatchField
89         (
90             const ggiFvsPatchField<Type>&,
91             const fvPatch&,
92             const DimensionedField<Type, surfaceMesh>&,
93             const fvPatchFieldMapper&
94         );
96         //- Construct as copy setting internal field reference
97         ggiFvsPatchField
98         (
99             const ggiFvsPatchField<Type>&,
100             const DimensionedField<Type, surfaceMesh>&
101         );
103         //- Construct and return a clone
104         virtual tmp<fvsPatchField<Type> > clone() const
105         {
106             return tmp<fvsPatchField<Type> >
107             (
108                 new ggiFvsPatchField<Type>(*this)
109             );
110         }
112         //- Construct and return a clone setting internal field reference
113         virtual tmp<fvsPatchField<Type> > clone
114         (
115             const DimensionedField<Type, surfaceMesh>& iF
116         ) const
117         {
118             return tmp<fvsPatchField<Type> >
119             (
120                 new ggiFvsPatchField<Type>(*this, iF)
121             );
122         }
126 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
128 } // End namespace Foam
130 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
132 #ifdef NoRepository
133 #   include "ggiFvsPatchField.C"
134 #endif
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 #endif
140 // ************************************************************************* //