Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / finiteVolume / fields / fvPatchFields / derived / directMappedVelocityFluxFixedValue / directMappedVelocityFluxFixedValueFvPatchField.H
blobc3463c28d6bdde33bca6f94620424963b76cddb0
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::directMappedVelocityFluxFixedValueFvPatchField
27 Description
28     Recycles the velocity and flux at a patch to this patch
30 SourceFiles
31     directMappedVelocityFluxFixedValueFvPatchField.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef directMappedVelocityFluxFixedValueFvPatchField_H
36 #define directMappedVelocityFluxFixedValueFvPatchField_H
38 #include "fixedValueFvPatchFields.H"
39 #include "directMappedFvPatch.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47           Class directMappedVelocityFluxFixedValueFvPatch Declaration
48 \*---------------------------------------------------------------------------*/
50 class directMappedVelocityFluxFixedValueFvPatchField
52     public fixedValueFvPatchVectorField
54     // Private data
56         //- Name of flux field
57         word phiName_;
59 public:
61     //- Runtime type information
62     TypeName("directMappedVelocityFlux");
65     // Constructors
67         //- Construct from patch and internal field
68         directMappedVelocityFluxFixedValueFvPatchField
69         (
70             const fvPatch&,
71             const DimensionedField<vector, volMesh>&
72         );
74         //- Construct from patch, internal field and dictionary
75         directMappedVelocityFluxFixedValueFvPatchField
76         (
77             const fvPatch&,
78             const DimensionedField<vector, volMesh>&,
79             const dictionary&
80         );
82         //- Construct by mapping given
83         //  directMappedVelocityFluxFixedValueFvPatchField
84         //  onto a new patch
85         directMappedVelocityFluxFixedValueFvPatchField
86         (
87             const directMappedVelocityFluxFixedValueFvPatchField&,
88             const fvPatch&,
89             const DimensionedField<vector, volMesh>&,
90             const fvPatchFieldMapper&
91         );
93         //- Construct as copy
94         directMappedVelocityFluxFixedValueFvPatchField
95         (
96             const directMappedVelocityFluxFixedValueFvPatchField&
97         );
99         //- Construct and return a clone
100         virtual tmp<fvPatchVectorField> clone() const
101         {
102             return tmp<fvPatchVectorField>
103             (
104                 new directMappedVelocityFluxFixedValueFvPatchField(*this)
105             );
106         }
108         //- Construct as copy setting internal field reference
109         directMappedVelocityFluxFixedValueFvPatchField
110         (
111             const directMappedVelocityFluxFixedValueFvPatchField&,
112             const DimensionedField<vector, volMesh>&
113         );
115         //- Construct and return a clone setting internal field reference
116         virtual tmp<fvPatchVectorField> clone
117         (
118             const DimensionedField<vector, volMesh>& iF
119         ) const
120         {
121             return tmp<fvPatchVectorField>
122             (
123                 new directMappedVelocityFluxFixedValueFvPatchField(*this, iF)
124             );
125         }
128     // Member functions
130         // Evaluation functions
132             //- Update the coefficients associated with the patch field
133             virtual void updateCoeffs();
135         //- Write
136         virtual void write(Ostream&) const;
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 } // End namespace Foam
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146 #endif
148 // ************************************************************************* //