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-2022 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  constitute 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>
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  //- Disallow copy without setting internal field reference
102 
103  //- Copy constructor setting internal field reference
105  (
108  );
109 
110  //- Construct and return a clone setting internal field reference
112  (
114  ) const
115  {
116  return tmp<fvPatchField<Type>>
117  (
118  new emptyFvPatchField<Type>(*this, iF)
119  );
120  }
121 
122 
123  // Member Functions
124 
125  // Mapping functions
126 
127  //- Map (and resize as needed) from self given a mapping object
128  // Used to update fields following mesh topology change
129  virtual void autoMap( const fvPatchFieldMapper&)
130  {}
131 
132  //- Reverse map the given fvPatchField onto this fvPatchField
133  // Used to reconstruct fields
134  virtual void rmap(const fvPatchField<Type>&, const labelList&)
135  {}
136 
137  //- Reset the fvPatchField to the given fvPatchField
138  // Used for mesh to mesh mapping
139  virtual void reset(const fvPatchField<Type>&)
140  {}
141 
142 
143  // Evaluation functions
144 
145  //- Return the matrix diagonal coefficients corresponding to the
146  // evaluation of the value of this patchField with given weights
148  (
149  const tmp<scalarField>&
150  ) const
151  {
152  return tmp<Field<Type>>(new Field<Type>(0));
153  }
154 
155  //- Return the matrix source coefficients corresponding to the
156  // evaluation of the value of this patchField with given weights
158  (
159  const tmp<scalarField>&
160  ) const
161  {
162  return tmp<Field<Type>>(new Field<Type>(0));
163  }
164 
165  //- Return the matrix diagonal coefficients corresponding to the
166  // evaluation of the gradient of this patchField
168  {
169  return tmp<Field<Type>>(new Field<Type>(0));
170  }
171 
172  //- Return the matrix source coefficients corresponding to the
173  // evaluation of the gradient of this patchField
175  {
176  return tmp<Field<Type>>(new Field<Type>(0));
177  }
178 };
179 
180 
181 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
182 
183 } // End namespace Foam
184 
185 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 
187 #ifdef NoRepository
188  #include "emptyFvPatchField.C"
189 #endif
190 
191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
192 
193 #endif
194 
195 // ************************************************************************* //
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:156
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:63
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.
virtual void reset(const fvPatchField< Type > &)
Reset the fvPatchField to the given fvPatchField.
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: PtrList.H:53
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
Definition: fvPatchField.H:199
Namespace for OpenFOAM.