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-2018 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  //- Construct as copy
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  //- Construct as copy 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  virtual void autoMap
141  (
142  const fvPatchFieldMapper&
143  )
144  {}
145 
146  //- Reverse map the given fvPatchField onto this fvPatchField
147  virtual void rmap
148  (
149  const fvPatchField<Type>&,
150  const labelList&
151  )
152  {}
153 
154 
155  // Evaluation functions
156 
157  //- Update the coefficients associated with the patch field
158  // This only checks to see the case is actually 1D or 2D
159  // for which this boundary condition is valid
160  void updateCoeffs();
161 
162 
163  //- Return the matrix diagonal coefficients corresponding to the
164  // evaluation of the value of this patchField with given weights
166  (
167  const tmp<scalarField>&
168  ) const
169  {
170  return tmp<Field<Type>>(new Field<Type>(0));
171  }
172 
173  //- Return the matrix source coefficients corresponding to the
174  // evaluation of the value of this patchField with given weights
176  (
177  const tmp<scalarField>&
178  ) const
179  {
180  return tmp<Field<Type>>(new Field<Type>(0));
181  }
182 
183  //- Return the matrix diagonal coefficients corresponding to the
184  // evaluation of the gradient of this patchField
186  {
187  return tmp<Field<Type>>(new Field<Type>(0));
188  }
189 
190  //- Return the matrix source coefficients corresponding to the
191  // evaluation of the gradient of this patchField
193  {
194  return tmp<Field<Type>>(new Field<Type>(0));
195  }
196 };
197 
198 
199 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
200 
201 } // End namespace Foam
202 
203 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
204 
205 #ifdef NoRepository
206  #include "emptyFvPatchField.C"
207 #endif
208 
209 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
210 
211 #endif
212 
213 // ************************************************************************* //
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:137
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:57
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.