calculatedFvPatchField.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::calculatedFvPatchField
26 
27 Description
28  This boundary condition is not designed to be evaluated; it is assumed
29  that the value is assigned via field assignment, and not via a call to
30  e.g. \c updateCoeffs or \c evaluate.
31 
32 Usage
33  Example of the boundary condition specification:
34  \verbatim
35  <patchName>
36  {
37  type calculated;
38  value uniform (0 0 0); // Required value entry
39  }
40  \endverbatim
41 
42 SourceFiles
43  calculatedFvPatchField.C
44 
45 \*---------------------------------------------------------------------------*/
46 
47 #ifndef calculatedFvPatchField_H
48 #define calculatedFvPatchField_H
49 
50 #include "fvPatchField.H"
51 
52 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 
54 namespace Foam
55 {
56 
57 /*---------------------------------------------------------------------------*\
58  Class calculatedFvPatchField Declaration
59 \*---------------------------------------------------------------------------*/
60 
61 template<class Type>
63 :
64  public fvPatchField<Type>
65 {
66 
67 public:
68 
69  //- Runtime type information
70  TypeName("calculated");
71 
72 
73  // Constructors
74 
75  //- Construct from patch and internal field
77  (
78  const fvPatch&,
80  );
81 
82  //- Construct from patch, internal field and dictionary
84  (
85  const fvPatch&,
87  const dictionary&,
88  const bool valueRequired=true
89  );
90 
91  //- Construct by mapping given patchField<Type> onto a new patch
93  (
95  const fvPatch&,
97  const fieldMapper&,
98  const bool mappingRequired=true
99  );
100 
101  //- Disallow copy without setting internal field reference
103 
104  //- Copy constructor setting internal field reference
106  (
109  );
110 
111  //- Construct and return a clone setting internal field reference
113  (
115  ) const
116  {
117  return tmp<fvPatchField<Type>>
118  (
119  new calculatedFvPatchField<Type>(*this, iF)
120  );
121  }
122 
123 
124  // Member Functions
125 
126  // Mapping functions
127 
128  //- Map the given fvPatchField onto this fvPatchField
129  virtual void map(const fvPatchField<Type>&, const fieldMapper&);
130 
131 
132  // Evaluation functions
133 
134  //- Return the matrix diagonal coefficients corresponding to the
135  // evaluation of the value of this patchField with given weights
137  (
138  const tmp<scalarField>&
139  ) const;
140 
141  //- Return the matrix source coefficients corresponding to the
142  // evaluation of the value of this patchField with given weights
144  (
145  const tmp<scalarField>&
146  ) const;
147 
148  //- Return the matrix diagonal coefficients corresponding to the
149  // evaluation of the gradient of this patchField
151 
152  //- Return the matrix source coefficients corresponding to the
153  // evaluation of the gradient of this patchField
155 
156 
157  //- Write
158  virtual void write(Ostream&) const;
159 };
160 
161 
162 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
163 
164 } // End namespace Foam
165 
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
167 
168 #ifdef NoRepository
169  #include "calculatedFvPatchField.C"
170 #endif
171 
172 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173 
174 #endif
175 
176 // ************************************************************************* //
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
This boundary condition is not designed to be evaluated; it is assumed that the value is assigned via...
calculatedFvPatchField(const fvPatch &, const DimensionedField< Type, volMesh > &)
Construct from patch and internal field.
virtual void write(Ostream &) const
Write.
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.
tmp< Field< Type > > gradientBoundaryCoeffs() const
Return the matrix source coefficients corresponding to the.
virtual tmp< Field< Type > > valueBoundaryCoeffs(const tmp< scalarField > &) const
Return the matrix source coefficients corresponding to the.
virtual void map(const fvPatchField< Type > &, const fieldMapper &)
Map the given fvPatchField onto this fvPatchField.
TypeName("calculated")
Runtime type information.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:162
Abstract base class for field mapping.
Definition: fieldMapper.H:48
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
Definition: fvPatchField.H:88
tmp< fvPatchField< Type > > clone() const
Disallow clone without setting internal field reference.
Definition: fvPatchField.H:204
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
A class for managing temporary objects.
Definition: tmp.H:55
Namespace for OpenFOAM.