mappedValueFvPatchField.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
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::mappedValueFvPatchField
26 
27 Description
28  This boundary condition maps the values from a neighbouring patch to this
29  patch.
30 
31 Usage
32  \table
33  Property | Description | Required | Default value
34  field | name of field to be mapped | no | this field name
35  setAverage | set the average value? | no | yes if average \\
36  is specified, \\
37  no otherwise
38  average | average value to apply | if setAverage is true |
39  \endtable
40 
41  Example of the boundary condition specification:
42  \verbatim
43  <patchName>
44  {
45  type mappedValue;
46  field T;
47  average 300;
48  value uniform 300;
49  }
50  \endverbatim
51 
52  This boundary condition will usually be applied to a patch which is of
53  mappedPatchBase type, and which holds all the necessary mapping
54  information. It can also create its own mapping data which overrides that
55  in the mapped patch, or so that it can be applied to a non-mapped patch.
56  This is triggered by the presence of controls relating to mappedPatchBase
57  (i.e., neighbourRegion, neighbourPatch, etc ...).
58 
59 See also
60  Foam::mappedPatchBase
61  Foam::mappedPolyPatch
62  Foam::mappedFvPatch
63  Foam::mappedValueFvPatchField
64 
65 SourceFiles
66  mappedValueFvPatchField.C
67 
68 \*---------------------------------------------------------------------------*/
69 
70 #ifndef mappedValueFvPatchField_H
71 #define mappedValueFvPatchField_H
72 
74 #include "mappedFvPatchField.H"
75 
76 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
77 
78 namespace Foam
79 {
80 
81 /*---------------------------------------------------------------------------*\
82  Class mappedValueFvPatchField Declaration
83 \*---------------------------------------------------------------------------*/
84 
85 template<class Type>
86 class mappedValueFvPatchField
87 :
88  public fixedValueFvPatchField<Type>,
89  public mappedFvPatchField<Type>
90 {
91 
92 public:
93 
94  //- Runtime type information
95  TypeName("mappedValue");
96 
97 
98  // Constructors
99 
100  //- Construct from patch, internal field and dictionary
102  (
103  const fvPatch&,
105  const dictionary&
106  );
107 
108  //- Construct by mapping given mappedValueFvPatchField
109  // onto a new patch
111  (
113  const fvPatch&,
115  const fvPatchFieldMapper&
116  );
117 
118  //- Disallow copy without setting internal field reference
120  (
122  ) = delete;
123 
124  //- Copy constructor setting internal field reference
126  (
129  );
130 
131  //- Construct and return a clone setting internal field reference
133  (
135  ) const
136  {
137  return tmp<fvPatchField<Type>>
138  (
139  new mappedValueFvPatchField<Type>(*this, iF)
140  );
141  }
142 
143 
144  // Member Functions
145 
146  // Mapping functions
147 
148  //- Map the given fvPatchField onto this fvPatchField
149  virtual void map
150  (
151  const fvPatchField<Type>&,
152  const fvPatchFieldMapper&
153  );
154 
155  //- Reset the fvPatchField to the given fvPatchField
156  // Used for mesh to mesh mapping
157  virtual void reset(const fvPatchField<Type>&);
158 
159 
160  // Evaluation functions
161 
162  //- Update the coefficients associated with the patch field
163  virtual void updateCoeffs();
164 
165 
166  //- Write
167  virtual void write(Ostream&) const;
168 };
169 
170 
171 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 
173 } // End namespace Foam
174 
175 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
176 
177 #ifdef NoRepository
178  #include "mappedValueFvPatchField.C"
179 #endif
180 
181 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 
183 #endif
184 
185 // ************************************************************************* //
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition: Ostream.H:57
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:160
Foam::fvPatchFieldMapper.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:87
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
Definition: fvPatchField.H:203
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
This boundary condition maps the values from a neighbouring patch to this patch.
virtual void write(Ostream &) const
Write.
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
mappedValueFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &, const dictionary &)
Construct from patch, internal field and dictionary.
virtual void reset(const fvPatchField< Type > &)
Reset the fvPatchField to the given fvPatchField.
virtual void map(const fvPatchField< Type > &, const fvPatchFieldMapper &)
Map the given fvPatchField onto this fvPatchField.
TypeName("mappedValue")
Runtime type information.
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.