emptyFvPatchField.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-2019 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::emptyFvPatchField
26 
27 Description
28  This boundary condition provides an 'empty' condition for reduced
29  dimensions cases, i.e. 1- and 2-D geometries. Apply this condition to
30  patches whose normal is aligned to geometric directions that do not
31  constitue solution directions.
32 
33 Usage
34  Example of the boundary condition specification:
35  \verbatim
36  <patchName>
37  {
38  type empty;
39  }
40  \endverbatim
41 
42 SourceFiles
43  emptyFvPatchField.C
44 
45 \*---------------------------------------------------------------------------*/
46 
47 #ifndef emptyFvPatchField_H
48 #define emptyFvPatchField_H
49 
50 #include "fvPatchField.H"
51 #include "emptyFvPatch.H"
52 
53 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 
55 namespace Foam
56 {
57 
58 /*---------------------------------------------------------------------------*\
59  Class emptyFvPatchField Declaration
60 \*---------------------------------------------------------------------------*/
61 
62 template<class Type>
63 class emptyFvPatchField
64 :
65  public fvPatchField<Type>
66 {
67 
68 public:
69 
70  //- Runtime type information
71  TypeName(emptyFvPatch::typeName_());
72 
73 
74  // Constructors
75 
76  //- Construct from patch and internal field
78  (
79  const fvPatch&,
81  );
82 
83  //- Construct from patch, internal field and dictionary
85  (
86  const fvPatch&,
88  const dictionary&
89  );
90 
91  //- Construct by mapping given emptyFvPatchField onto a new patch
93  (
95  const fvPatch&,
97  const fvPatchFieldMapper&
98  );
99 
100  //- Copy constructor
102  (
104  );
105 
106  //- Construct and return a clone
107  virtual tmp<fvPatchField<Type>> clone() const
108  {
109  return tmp<fvPatchField<Type>>
110  (
111  new emptyFvPatchField<Type>(*this)
112  );
113  }
114 
115  //- Copy constructor setting internal field reference
117  (
120  );
121 
122  //- Construct and return a clone setting internal field reference
124  (
126  ) const
127  {
128  return tmp<fvPatchField<Type>>
129  (
130  new emptyFvPatchField<Type>(*this, iF)
131  );
132  }
133 
134 
135  // Member Functions
136 
137  // Mapping functions
138 
139  //- Map (and resize as needed) from self given a mapping object
140  // Used to update fields following mesh topology change
141  virtual void autoMap( const fvPatchFieldMapper&)
142  {}
143 
144  //- Reverse map the given fvPatchField onto this fvPatchField
145  // Used to reconstruct fields
146  virtual void rmap(const fvPatchField<Type>&, const labelList&)
147  {}
148 
149 
150  // Evaluation functions
151 
152  //- Update the coefficients associated with the patch field
153  // This only checks to see the case is actually 1D or 2D
154  // for which this boundary condition is valid
155  void updateCoeffs();
156 
157 
158  //- Return the matrix diagonal coefficients corresponding to the
159  // evaluation of the value of this patchField with given weights
161  (
162  const tmp<scalarField>&
163  ) const
164  {
165  return tmp<Field<Type>>(new Field<Type>(0));
166  }
167 
168  //- Return the matrix source coefficients corresponding to the
169  // evaluation of the value of this patchField with given weights
171  (
172  const tmp<scalarField>&
173  ) const
174  {
175  return tmp<Field<Type>>(new Field<Type>(0));
176  }
177 
178  //- Return the matrix diagonal coefficients corresponding to the
179  // evaluation of the gradient of this patchField
181  {
182  return tmp<Field<Type>>(new Field<Type>(0));
183  }
184 
185  //- Return the matrix source coefficients corresponding to the
186  // evaluation of the gradient of this patchField
188  {
189  return tmp<Field<Type>>(new Field<Type>(0));
190  }
191 };
192 
193 
194 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
195 
196 } // End namespace Foam
197 
198 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
199 
200 #ifdef NoRepository
201  #include "emptyFvPatchField.C"
202 #endif
203 
204 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
205 
206 #endif
207 
208 // ************************************************************************* //
TypeName(emptyFvPatch::typeName_())
Runtime type information.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
void updateCoeffs()
Update the coefficients associated with the patch field.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:61
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:66
tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
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.
Pre-declare SubField and related Field type.
Definition: Field.H:56
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.
Foam::fvPatchFieldMapper.
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 constitue solution directions.
A class for managing temporary objects.
Definition: PtrList.H:53
virtual tmp< fvPatchField< Type > > clone() const
Construct and return a clone.
Namespace for OpenFOAM.