FreeFOAM The Cross-Platform CFD Toolkit
outletMappedUniformInletFvPatchField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 Class
25  Foam::outletMappedUniformInletFvPatchField
26 
27 Description
28  Averages the field over the "outlet" patch specified by name
29  "outletPatchName" and applies this as the uniform value of the field
30  over this patch.
31 
32 SourceFiles
33  outletMappedUniformInletFvPatchField.C
34 
35 \*---------------------------------------------------------------------------*/
36 
37 #ifndef outletMappedUniformInletFvPatchField_H
38 #define outletMappedUniformInletFvPatchField_H
39 
41 
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 
44 namespace Foam
45 {
46 
47 /*---------------------------------------------------------------------------*\
48  Class outletMappedUniformInletFvPatch Declaration
49 \*---------------------------------------------------------------------------*/
50 
51 template<class Type>
53 :
54  public fixedValueFvPatchField<Type>
55 {
56  // Private data
57 
58  //- Name of the outlet patch to be mapped
59  word outletPatchName_;
60 
61  //- Name of the flux transporting the field
62  word phiName_;
63 
64 
65 public:
66 
67  //- Runtime type information
68  TypeName("outletMappedUniformInlet");
69 
70 
71  // Constructors
72 
73  //- Construct from patch and internal field
75  (
76  const fvPatch&,
78  );
79 
80  //- Construct from patch, internal field and dictionary
82  (
83  const fvPatch&,
85  const dictionary&
86  );
87 
88  //- Construct by mapping given outletMappedUniformInletFvPatchField
89  // onto a new patch
91  (
93  const fvPatch&,
95  const fvPatchFieldMapper&
96  );
97 
98  //- Construct as copy
100  (
102  );
103 
104  //- Construct and return a clone
105  virtual tmp<fvPatchField<Type> > clone() const
106  {
107  return tmp<fvPatchField<Type> >
108  (
110  );
111  }
112 
113  //- Construct as copy setting internal field reference
115  (
118  );
119 
120  //- Construct and return a clone setting internal field reference
121  virtual tmp<fvPatchField<Type> > clone
122  (
124  ) const
125  {
126  return tmp<fvPatchField<Type> >
127  (
129  );
130  }
131 
132 
133  // Member functions
134 
135  // Access
136 
137  //- Name of the outlet patch to be mapped
138  const word& outletPatchName() const
139  {
140  return outletPatchName_;
141  }
142 
143 
144  // Evaluation functions
145 
146  //- Update the coefficients associated with the patch field
147  virtual void updateCoeffs();
148 
149 
150  //- Write
151  virtual void write(Ostream&) const;
152 };
153 
154 
155 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
156 
157 } // End namespace Foam
158 
159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
160 
161 #ifdef NoRepository
163 #endif
164 
165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
166 
167 #endif
168 
169 // ************************************************************************* //