emptyFvPatchField.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 | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2011-2016 OpenFOAM Foundation
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 Class
27  Foam::emptyFvPatchField
28 
29 Group
30  grpConstraintBoundaryConditions
31 
32 Description
33  This boundary condition provides an 'empty' condition for reduced
34  dimensions cases, i.e. 1- and 2-D geometries. Apply this condition to
35  patches whose normal is aligned to geometric directions that do not
36  constitute solution directions.
37 
38  The "value" entry is NO_READ, NO_WRITE.
39 
40 Usage
41  Example of the boundary condition specification:
42  \verbatim
43  <patchName>
44  {
45  type empty;
46  }
47  \endverbatim
48 
49 SourceFiles
50  emptyFvPatchField.C
51 
52 \*---------------------------------------------------------------------------*/
53 
54 #ifndef Foam_emptyFvPatchField_H
55 #define Foam_emptyFvPatchField_H
56 
57 #include "fvPatchField.H"
58 #include "emptyFvPatch.H"
59 
60 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
61 
62 namespace Foam
63 {
64 
65 /*---------------------------------------------------------------------------*\
66  Class emptyFvPatchField Declaration
67 \*---------------------------------------------------------------------------*/
68 
69 template<class Type>
71 :
72  public fvPatchField<Type>
73 {
74 public:
75 
76  //- Runtime type information
77  TypeName(emptyFvPatch::typeName_()); // fieldTypes::emptyTypeName_()
78 
79 
80  // Constructors
81 
82  //- Construct from patch and internal field
84  (
85  const fvPatch&,
87  );
88 
89  //- Construct from patch, internal field and dictionary.
90  //- The "value" entry is NO_READ.
92  (
93  const fvPatch&,
95  const dictionary&
96  );
97 
98  //- Construct by mapping given emptyFvPatchField onto a new patch
100  (
102  const fvPatch&,
104  const fvPatchFieldMapper&
105  );
106 
107  //- Construct as copy
109  (
111  );
112 
113  //- Construct as copy setting internal field reference
115  (
118  );
119 
120  //- Return a clone
121  virtual tmp<fvPatchField<Type>> clone() const
122  {
123  return fvPatchField<Type>::Clone(*this);
124  }
125 
126  //- Clone with an internal field reference
128  (
130  ) const
131  {
132  return fvPatchField<Type>::Clone(*this, iF);
133  }
134 
135 
136  // Member functions
137 
138  // Mapping functions
140  //- Map (and resize as needed) from self given a mapping object
141  virtual void autoMap
142  (
143  const fvPatchFieldMapper&
144  )
145  {}
146 
147  //- Reverse map the given fvPatchField onto this fvPatchField
148  virtual void rmap
149  (
150  const fvPatchField<Type>&,
151  const labelList&
152  )
153  {}
154 
156  // Evaluation functions
157 
158  //- Update the coefficients associated with the patch field
159  // This only checks to see the case is actually 1D or 2D
160  // for which this boundary condition is valid
161  void updateCoeffs();
162 
163 
164  //- Return the matrix diagonal coefficients corresponding to the
165  // evaluation of the value of this patchField with given weights
167  (
168  const tmp<scalarField>&
169  ) const
170  {
171  return tmp<Field<Type>>::New();
172  }
173 
174  //- Return the matrix source coefficients corresponding to the
175  // evaluation of the value of this patchField with given weights
177  (
178  const tmp<scalarField>&
179  ) const
180  {
181  return tmp<Field<Type>>::New();
182  }
183 
184  //- Return the matrix diagonal coefficients corresponding to the
185  // evaluation of the gradient of this patchField
186  tmp<Field<Type>> gradientInternalCoeffs() const
187  {
189  }
190 
191  //- Return the matrix source coefficients corresponding to the
192  // evaluation of the gradient of this patchField
194  {
195  return tmp<Field<Type>>::New();
196  }
197 
198 
199  // Member Functions
200 
201  //- Write without "value" entry!
202  virtual void write(Ostream&) const;
203 };
204 
205 
206 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
207 
208 } // End namespace Foam
209 
210 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
211 
212 #ifdef NoRepository
214 #endif
215 
216 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
217 
218 #endif
219 
220 // ************************************************************************* //
TypeName(emptyFvPatch::typeName_())
Runtime type information.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
void updateCoeffs()
Update the coefficients associated with the patch field.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:70
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
static tmp< fvPatchField< Type > > Clone(const DerivedPatchField &pf, Args &&... args)
Clone a patch field, optionally with internal field reference etc.
Definition: fvPatchField.H:597
virtual void autoMap(const fvPatchFieldMapper &)
Map (and resize as needed) from self given a mapping object.
virtual void rmap(const fvPatchField< Type > &, const labelList &)
Reverse map the given fvPatchField onto this fvPatchField.
emptyFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the.
A FieldMapper for finite-volume patch fields.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
Definition: Ostream.H:56
tmp< Field< Type > > gradientInternalCoeffs() const
Return the matrix diagonal coefficients corresponding to the.
virtual tmp< Field< Type > > valueInternalCoeffs(const tmp< scalarField > &) const
Return the matrix diagonal coefficients corresponding to the.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
This boundary condition provides an &#39;empty&#39; condition for reduced dimensions cases, i.e. 1- and 2-D geometries. Apply this condition to patches whose normal is aligned to geometric directions that do not constitute solution directions.
A class for managing temporary objects.
Definition: HashPtrTable.H:50
virtual tmp< fvPatchField< Type > > clone() const
Return a clone.
virtual void write(Ostream &) const
Write without "value" entry!
Namespace for OpenFOAM.
static tmp< fvPatchField< Type > > New(const word &patchFieldType, const fvPatch &, const DimensionedField< Type, volMesh > &)
Return a pointer to a new patchField created on freestore given.